From 8b8900bce0c42e0d24298727f3fd36083c7338e6 Mon Sep 17 00:00:00 2001 From: Gabriel Guerra Trigo Date: Wed, 11 Jun 2025 14:35:02 -0400 Subject: [PATCH 01/34] feat: reinforcement learning PR#2; several additions/improvements to rl pipeline --- poetry.lock | 380 +- pyproject.toml | 1 + smart_control/environment/environment.py | 4 +- smart_control/environment/environment_test.py | 3 - .../agents/ddpg_agent.py | 141 + .../agents/networks/ddpg_networks.py | 131 + .../agents/networks/sac_networks.py | 3 + .../agents/networks/td3_networks.py | 0 .../notebooks/plots.ipynb | 4897 +++++++++++++++++ .../notebooks/test.ipynb | 1255 +++++ .../observers/rendering_observer.py | 25 +- .../observers/trajectory_recorder_observer.py | 152 + .../policies/saved_model_policy.py | 75 + .../reinforcement_learning/scripts/eval.py | 314 ++ .../scripts/generate_gin_config_files.py | 189 + .../scripts/populate_starter_buffer.py | 35 +- .../reinforcement_learning/scripts/train.py | 252 +- .../utils/MultiEpisodeWrapper.py | 268 + .../reinforcement_learning/utils/config.py | 72 +- .../visualization/__init__.py | 0 .../visualization/trajectory_plotter.py | 148 + smart_control/simulator/constants.py | 8 +- smart_control/utils/constants.py | 1 + 23 files changed, 8063 insertions(+), 291 deletions(-) create mode 100644 smart_control/reinforcement_learning/agents/ddpg_agent.py create mode 100644 smart_control/reinforcement_learning/agents/networks/ddpg_networks.py create mode 100644 smart_control/reinforcement_learning/agents/networks/td3_networks.py create mode 100644 smart_control/reinforcement_learning/notebooks/plots.ipynb create mode 100644 smart_control/reinforcement_learning/notebooks/test.ipynb create mode 100644 smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py create mode 100644 smart_control/reinforcement_learning/policies/saved_model_policy.py create mode 100644 smart_control/reinforcement_learning/scripts/eval.py create mode 100644 smart_control/reinforcement_learning/scripts/generate_gin_config_files.py create mode 100644 smart_control/reinforcement_learning/utils/MultiEpisodeWrapper.py create mode 100644 smart_control/reinforcement_learning/visualization/__init__.py create mode 100644 smart_control/reinforcement_learning/visualization/trajectory_plotter.py diff --git a/poetry.lock b/poetry.lock index 0b77f13f..075faa08 100644 --- a/poetry.lock +++ b/poetry.lock @@ -220,18 +220,19 @@ dev = ["backports.zoneinfo ; python_version < \"3.9\"", "freezegun (>=1.0,<2.0)" [[package]] name = "backrefs" -version = "5.8" +version = "5.9" description = "A wrapper around re and regex that adds additional back references." optional = false python-versions = ">=3.9" groups = ["docs"] files = [ - {file = "backrefs-5.8-py310-none-any.whl", hash = "sha256:c67f6638a34a5b8730812f5101376f9d41dc38c43f1fdc35cb54700f6ed4465d"}, - {file = "backrefs-5.8-py311-none-any.whl", hash = "sha256:2e1c15e4af0e12e45c8701bd5da0902d326b2e200cafcd25e49d9f06d44bb61b"}, - {file = "backrefs-5.8-py312-none-any.whl", hash = "sha256:bbef7169a33811080d67cdf1538c8289f76f0942ff971222a16034da88a73486"}, - {file = "backrefs-5.8-py313-none-any.whl", hash = "sha256:e3a63b073867dbefd0536425f43db618578528e3896fb77be7141328642a1585"}, - {file = "backrefs-5.8-py39-none-any.whl", hash = "sha256:a66851e4533fb5b371aa0628e1fee1af05135616b86140c9d787a2ffdf4b8fdc"}, - {file = "backrefs-5.8.tar.gz", hash = "sha256:2cab642a205ce966af3dd4b38ee36009b31fa9502a35fd61d59ccc116e40a6bd"}, + {file = "backrefs-5.9-py310-none-any.whl", hash = "sha256:db8e8ba0e9de81fcd635f440deab5ae5f2591b54ac1ebe0550a2ca063488cd9f"}, + {file = "backrefs-5.9-py311-none-any.whl", hash = "sha256:6907635edebbe9b2dc3de3a2befff44d74f30a4562adbb8b36f21252ea19c5cf"}, + {file = "backrefs-5.9-py312-none-any.whl", hash = "sha256:7fdf9771f63e6028d7fee7e0c497c81abda597ea45d6b8f89e8ad76994f5befa"}, + {file = "backrefs-5.9-py313-none-any.whl", hash = "sha256:cc37b19fa219e93ff825ed1fed8879e47b4d89aa7a1884860e2db64ccd7c676b"}, + {file = "backrefs-5.9-py314-none-any.whl", hash = "sha256:df5e169836cc8acb5e440ebae9aad4bf9d15e226d3bad049cf3f6a5c20cc8dc9"}, + {file = "backrefs-5.9-py39-none-any.whl", hash = "sha256:f48ee18f6252b8f5777a22a00a09a85de0ca931658f1dd96d4406a34f3748c60"}, + {file = "backrefs-5.9.tar.gz", hash = "sha256:808548cb708d66b82ee231f962cb36faaf4f2baab032f2fbb783e9c2fdddaa59"}, ] [package.extras] @@ -352,14 +353,14 @@ files = [ [[package]] name = "certifi" -version = "2025.4.26" +version = "2025.6.15" description = "Python package for providing Mozilla's CA Bundle." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" groups = ["main", "docs", "notebooks"] files = [ - {file = "certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"}, - {file = "certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6"}, + {file = "certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057"}, + {file = "certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b"}, ] [[package]] @@ -992,54 +993,54 @@ test = ["pytest", "pytest-cov", "pytest-mpl", "pytest-subtests"] [[package]] name = "fonttools" -version = "4.58.2" +version = "4.58.4" description = "Tools to manipulate font files" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "fonttools-4.58.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4baaf34f07013ba9c2c3d7a95d0c391fcbb30748cb86c36c094fab8f168e49bb"}, - {file = "fonttools-4.58.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2e26e4a4920d57f04bb2c3b6e9a68b099c7ef2d70881d4fee527896fa4f7b5aa"}, - {file = "fonttools-4.58.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0bb956d9d01ea51368415515f664f58abf96557ba3c1aae4e26948ae7c86f29"}, - {file = "fonttools-4.58.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d40af8493c80ec17a1133ef429d42f1a97258dd9213b917daae9d8cafa6e0e6c"}, - {file = "fonttools-4.58.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:60b5cde1c76f6ded198da5608dddb1ee197faad7d2f0f6d3348ca0cda0c756c4"}, - {file = "fonttools-4.58.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f8df6dc80ecc9033ca25a944ee5db7564fecca28e96383043fd92d9df861a159"}, - {file = "fonttools-4.58.2-cp310-cp310-win32.whl", hash = "sha256:25728e980f5fbb67f52c5311b90fae4aaec08c3d3b78dce78ab564784df1129c"}, - {file = "fonttools-4.58.2-cp310-cp310-win_amd64.whl", hash = "sha256:d6997ee7c2909a904802faf44b0d0208797c4d751f7611836011ace165308165"}, - {file = "fonttools-4.58.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:024faaf20811296fd2f83ebdac7682276362e726ed5fea4062480dd36aff2fd9"}, - {file = "fonttools-4.58.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2faec6e7f2abd80cd9f2392dfa28c02cfd5b1125be966ea6eddd6ca684deaa40"}, - {file = "fonttools-4.58.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:520792629a938c14dd7fe185794b156cfc159c609d07b31bbb5f51af8dc7918a"}, - {file = "fonttools-4.58.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12fbc6e0bf0c75ce475ef170f2c065be6abc9e06ad19a13b56b02ec2acf02427"}, - {file = "fonttools-4.58.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:44a39cf856d52109127d55576c7ec010206a8ba510161a7705021f70d1649831"}, - {file = "fonttools-4.58.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5390a67c55a835ad5a420da15b3d88b75412cbbd74450cb78c4916b0bd7f0a34"}, - {file = "fonttools-4.58.2-cp311-cp311-win32.whl", hash = "sha256:f7e10f4e7160bcf6a240d7560e9e299e8cb585baed96f6a616cef51180bf56cb"}, - {file = "fonttools-4.58.2-cp311-cp311-win_amd64.whl", hash = "sha256:29bdf52bfafdae362570d3f0d3119a3b10982e1ef8cb3a9d3ebb72da81cb8d5e"}, - {file = "fonttools-4.58.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c6eeaed9c54c1d33c1db928eb92b4e180c7cb93b50b1ee3e79b2395cb01f25e9"}, - {file = "fonttools-4.58.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bbe1d9c72b7f981bed5c2a61443d5e3127c1b3aca28ca76386d1ad93268a803f"}, - {file = "fonttools-4.58.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85babe5b3ce2cbe57fc0d09c0ee92bbd4d594fd7ea46a65eb43510a74a4ce773"}, - {file = "fonttools-4.58.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:918a2854537fcdc662938057ad58b633bc9e0698f04a2f4894258213283a7932"}, - {file = "fonttools-4.58.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3b379cf05bf776c336a0205632596b1c7d7ab5f7135e3935f2ca2a0596d2d092"}, - {file = "fonttools-4.58.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:99ab3547a15a5d168c265e139e21756bbae1de04782ac9445c9ef61b8c0a32ce"}, - {file = "fonttools-4.58.2-cp312-cp312-win32.whl", hash = "sha256:6764e7a3188ce36eea37b477cdeca602ae62e63ae9fc768ebc176518072deb04"}, - {file = "fonttools-4.58.2-cp312-cp312-win_amd64.whl", hash = "sha256:41f02182a1d41b79bae93c1551855146868b04ec3e7f9c57d6fef41a124e6b29"}, - {file = "fonttools-4.58.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:829048ef29dbefec35d95cc6811014720371c95bdc6ceb0afd2f8e407c41697c"}, - {file = "fonttools-4.58.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:64998c5993431e45b474ed5f579f18555f45309dd1cf8008b594d2fe0a94be59"}, - {file = "fonttools-4.58.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b887a1cf9fbcb920980460ee4a489c8aba7e81341f6cdaeefa08c0ab6529591c"}, - {file = "fonttools-4.58.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27d74b9f6970cefbcda33609a3bee1618e5e57176c8b972134c4e22461b9c791"}, - {file = "fonttools-4.58.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec26784610056a770e15a60f9920cee26ae10d44d1e43271ea652dadf4e7a236"}, - {file = "fonttools-4.58.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ed0a71d57dd427c0fb89febd08cac9b925284d2a8888e982a6c04714b82698d7"}, - {file = "fonttools-4.58.2-cp313-cp313-win32.whl", hash = "sha256:994e362b01460aa863ef0cb41a29880bc1a498c546952df465deff7abf75587a"}, - {file = "fonttools-4.58.2-cp313-cp313-win_amd64.whl", hash = "sha256:f95dec862d7c395f2d4efe0535d9bdaf1e3811e51b86432fa2a77e73f8195756"}, - {file = "fonttools-4.58.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e6f6ca4337e37d287535fd0089b4520cedc5666023fe4176a74e3415f917b570"}, - {file = "fonttools-4.58.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b269c7a783ec3be40809dc0dc536230a3d2d2c08e3fb9538d4e0213872b1a762"}, - {file = "fonttools-4.58.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1902d9b2b84cc9485663f1a72882890cd240f4464e8443af93faa34b095a4444"}, - {file = "fonttools-4.58.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a94a00ffacbb044729c6a5b29e02bf6f0e80681e9275cd374a1d25db3061328"}, - {file = "fonttools-4.58.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:25d22628f8b6b49b78666415f7cfa60c88138c24d66f3e5818d09ca001810cc5"}, - {file = "fonttools-4.58.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4bacb925a045e964a44bdeb9790b8778ce659605c7a2a39ef4f12e06c323406b"}, - {file = "fonttools-4.58.2-cp39-cp39-win32.whl", hash = "sha256:eb4bc19a3ab45d2b4bb8f4f7c60e55bec53016e402af0b6ff4ef0c0129193671"}, - {file = "fonttools-4.58.2-cp39-cp39-win_amd64.whl", hash = "sha256:c8d16973f8ab02a5a960afe1cae4db72220ef628bf397499aba8e3caa0c10e33"}, - {file = "fonttools-4.58.2-py3-none-any.whl", hash = "sha256:84f4b0bcfa046254a65ee7117094b4907e22dc98097a220ef108030eb3c15596"}, - {file = "fonttools-4.58.2.tar.gz", hash = "sha256:4b491ddbfd50b856e84b0648b5f7941af918f6d32f938f18e62b58426a8d50e2"}, + {file = "fonttools-4.58.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:834542f13fee7625ad753b2db035edb674b07522fcbdd0ed9e9a9e2a1034467f"}, + {file = "fonttools-4.58.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2e6c61ce330142525296170cd65666e46121fc0d44383cbbcfa39cf8f58383df"}, + {file = "fonttools-4.58.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9c75f8faa29579c0fbf29b56ae6a3660c6c025f3b671803cb6a9caa7e4e3a98"}, + {file = "fonttools-4.58.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:88dedcedbd5549e35b2ea3db3de02579c27e62e51af56779c021e7b33caadd0e"}, + {file = "fonttools-4.58.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae80a895adab43586f4da1521d58fd4f4377cef322ee0cc205abcefa3a5effc3"}, + {file = "fonttools-4.58.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0d3acc7f0d151da116e87a182aefb569cf0a3c8e0fd4c9cd0a7c1e7d3e7adb26"}, + {file = "fonttools-4.58.4-cp310-cp310-win32.whl", hash = "sha256:1244f69686008e7e8d2581d9f37eef330a73fee3843f1107993eb82c9d306577"}, + {file = "fonttools-4.58.4-cp310-cp310-win_amd64.whl", hash = "sha256:2a66c0af8a01eb2b78645af60f3b787de5fe5eb1fd8348163715b80bdbfbde1f"}, + {file = "fonttools-4.58.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a3841991c9ee2dc0562eb7f23d333d34ce81e8e27c903846f0487da21e0028eb"}, + {file = "fonttools-4.58.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c98f91b6a9604e7ffb5ece6ea346fa617f967c2c0944228801246ed56084664"}, + {file = "fonttools-4.58.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab9f891eb687ddf6a4e5f82901e00f992e18012ca97ab7acd15f13632acd14c1"}, + {file = "fonttools-4.58.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:891c5771e8f0094b7c0dc90eda8fc75e72930b32581418f2c285a9feedfd9a68"}, + {file = "fonttools-4.58.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:43ba4d9646045c375d22e3473b7d82b18b31ee2ac715cd94220ffab7bc2d5c1d"}, + {file = "fonttools-4.58.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33d19f16e6d2ffd6669bda574a6589941f6c99a8d5cfb9f464038244c71555de"}, + {file = "fonttools-4.58.4-cp311-cp311-win32.whl", hash = "sha256:b59e5109b907da19dc9df1287454821a34a75f2632a491dd406e46ff432c2a24"}, + {file = "fonttools-4.58.4-cp311-cp311-win_amd64.whl", hash = "sha256:3d471a5b567a0d1648f2e148c9a8bcf00d9ac76eb89e976d9976582044cc2509"}, + {file = "fonttools-4.58.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:462211c0f37a278494e74267a994f6be9a2023d0557aaa9ecbcbfce0f403b5a6"}, + {file = "fonttools-4.58.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0c7a12fb6f769165547f00fcaa8d0df9517603ae7e04b625e5acb8639809b82d"}, + {file = "fonttools-4.58.4-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2d42c63020a922154add0a326388a60a55504629edc3274bc273cd3806b4659f"}, + {file = "fonttools-4.58.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8f2b4e6fd45edc6805f5f2c355590b092ffc7e10a945bd6a569fc66c1d2ae7aa"}, + {file = "fonttools-4.58.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f155b927f6efb1213a79334e4cb9904d1e18973376ffc17a0d7cd43d31981f1e"}, + {file = "fonttools-4.58.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e38f687d5de97c7fb7da3e58169fb5ba349e464e141f83c3c2e2beb91d317816"}, + {file = "fonttools-4.58.4-cp312-cp312-win32.whl", hash = "sha256:636c073b4da9db053aa683db99580cac0f7c213a953b678f69acbca3443c12cc"}, + {file = "fonttools-4.58.4-cp312-cp312-win_amd64.whl", hash = "sha256:82e8470535743409b30913ba2822e20077acf9ea70acec40b10fcf5671dceb58"}, + {file = "fonttools-4.58.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5f4a64846495c543796fa59b90b7a7a9dff6839bd852741ab35a71994d685c6d"}, + {file = "fonttools-4.58.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e80661793a5d4d7ad132a2aa1eae2e160fbdbb50831a0edf37c7c63b2ed36574"}, + {file = "fonttools-4.58.4-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fe5807fc64e4ba5130f1974c045a6e8d795f3b7fb6debfa511d1773290dbb76b"}, + {file = "fonttools-4.58.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b610b9bef841cb8f4b50472494158b1e347d15cad56eac414c722eda695a6cfd"}, + {file = "fonttools-4.58.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2daa7f0e213c38f05f054eb5e1730bd0424aebddbeac094489ea1585807dd187"}, + {file = "fonttools-4.58.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:66cccb6c0b944496b7f26450e9a66e997739c513ffaac728d24930df2fd9d35b"}, + {file = "fonttools-4.58.4-cp313-cp313-win32.whl", hash = "sha256:94d2aebb5ca59a5107825520fde596e344652c1f18170ef01dacbe48fa60c889"}, + {file = "fonttools-4.58.4-cp313-cp313-win_amd64.whl", hash = "sha256:b554bd6e80bba582fd326ddab296e563c20c64dca816d5e30489760e0c41529f"}, + {file = "fonttools-4.58.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ca773fe7812e4e1197ee4e63b9691e89650ab55f679e12ac86052d2fe0d152cd"}, + {file = "fonttools-4.58.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e31289101221910f44245472e02b1a2f7d671c6d06a45c07b354ecb25829ad92"}, + {file = "fonttools-4.58.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90c9e3c01475bb9602cb617f69f02c4ba7ab7784d93f0b0d685e84286f4c1a10"}, + {file = "fonttools-4.58.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e00a826f2bc745a010341ac102082fe5e3fb9f0861b90ed9ff32277598813711"}, + {file = "fonttools-4.58.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bc75e72e9d2a4ad0935c59713bd38679d51c6fefab1eadde80e3ed4c2a11ea84"}, + {file = "fonttools-4.58.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f57a795e540059ce3de68508acfaaf177899b39c36ef0a2833b2308db98c71f1"}, + {file = "fonttools-4.58.4-cp39-cp39-win32.whl", hash = "sha256:a7d04f64c88b48ede655abcf76f2b2952f04933567884d99be7c89e0a4495131"}, + {file = "fonttools-4.58.4-cp39-cp39-win_amd64.whl", hash = "sha256:5a8bc5dfd425c89b1c38380bc138787b0a830f761b82b37139aa080915503b69"}, + {file = "fonttools-4.58.4-py3-none-any.whl", hash = "sha256:a10ce13a13f26cbb9f37512a4346bb437ad7e002ff6fa966a7ce7ff5ac3528bd"}, + {file = "fonttools-4.58.4.tar.gz", hash = "sha256:928a8009b9884ed3aae17724b960987575155ca23c6f0b8146e400cc9e0d44ba"}, ] [package.extras] @@ -2131,14 +2132,14 @@ files = [ [[package]] name = "markdown" -version = "3.8" +version = "3.8.2" description = "Python implementation of John Gruber's Markdown." optional = false python-versions = ">=3.9" groups = ["main", "docs"] files = [ - {file = "markdown-3.8-py3-none-any.whl", hash = "sha256:794a929b79c5af141ef5ab0f2f642d0f7b1872981250230e72682346f7cc90dc"}, - {file = "markdown-3.8.tar.gz", hash = "sha256:7df81e63f0df5c4b24b7d156eb81e4690595239b7d70937d0409f1b0de319c6f"}, + {file = "markdown-3.8.2-py3-none-any.whl", hash = "sha256:5c83764dbd4e00bdd94d85a19b8d55ccca20fe35b2e678a1422b380324dd5f24"}, + {file = "markdown-3.8.2.tar.gz", hash = "sha256:247b9a70dd12e27f67431ce62523e675b866d254f900c4fe75ce3dda62237c45"}, ] [package.extras] @@ -2796,14 +2797,14 @@ files = [ [[package]] name = "oauthlib" -version = "3.2.2" +version = "3.3.1" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" groups = ["main"] files = [ - {file = "oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca"}, - {file = "oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918"}, + {file = "oauthlib-3.3.1-py3-none-any.whl", hash = "sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1"}, + {file = "oauthlib-3.3.1.tar.gz", hash = "sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9"}, ] [package.extras] @@ -3464,14 +3465,14 @@ files = [ [[package]] name = "pygments" -version = "2.19.1" +version = "2.19.2" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" groups = ["main", "dev", "docs", "notebooks"] files = [ - {file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"}, - {file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"}, + {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, + {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, ] [package.extras] @@ -3550,14 +3551,14 @@ tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""} [[package]] name = "pymdown-extensions" -version = "10.15" +version = "10.16" description = "Extension pack for Python Markdown." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["docs"] files = [ - {file = "pymdown_extensions-10.15-py3-none-any.whl", hash = "sha256:46e99bb272612b0de3b7e7caf6da8dd5f4ca5212c0b273feb9304e236c484e5f"}, - {file = "pymdown_extensions-10.15.tar.gz", hash = "sha256:0e5994e32155f4b03504f939e501b981d306daf7ec2aa1cd2eb6bd300784f8f7"}, + {file = "pymdown_extensions-10.16-py3-none-any.whl", hash = "sha256:f5dd064a4db588cb2d95229fc4ee63a1b16cc8b4d0e6145c0899ed8723da1df2"}, + {file = "pymdown_extensions-10.16.tar.gz", hash = "sha256:71dac4fca63fabeffd3eb9038b756161a33ec6e8d230853d3cecf562155ab3de"}, ] [package.dependencies] @@ -3584,14 +3585,14 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pytest" -version = "8.4.0" +version = "8.4.1" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "pytest-8.4.0-py3-none-any.whl", hash = "sha256:f40f825768ad76c0977cbacdf1fd37c6f7a468e460ea6a0636078f8972d4517e"}, - {file = "pytest-8.4.0.tar.gz", hash = "sha256:14d920b48472ea0dbf68e45b96cd1ffda4705f33307dcc86c676c1b5104838a6"}, + {file = "pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7"}, + {file = "pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c"}, ] [package.dependencies] @@ -3788,105 +3789,91 @@ pyyaml = "*" [[package]] name = "pyzmq" -version = "26.4.0" +version = "27.0.0" description = "Python bindings for 0MQ" optional = false python-versions = ">=3.8" groups = ["main", "notebooks"] files = [ - {file = "pyzmq-26.4.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:0329bdf83e170ac133f44a233fc651f6ed66ef8e66693b5af7d54f45d1ef5918"}, - {file = "pyzmq-26.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:398a825d2dea96227cf6460ce0a174cf7657d6f6827807d4d1ae9d0f9ae64315"}, - {file = "pyzmq-26.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6d52d62edc96787f5c1dfa6c6ccff9b581cfae5a70d94ec4c8da157656c73b5b"}, - {file = "pyzmq-26.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1410c3a3705db68d11eb2424d75894d41cff2f64d948ffe245dd97a9debfebf4"}, - {file = "pyzmq-26.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:7dacb06a9c83b007cc01e8e5277f94c95c453c5851aac5e83efe93e72226353f"}, - {file = "pyzmq-26.4.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6bab961c8c9b3a4dc94d26e9b2cdf84de9918931d01d6ff38c721a83ab3c0ef5"}, - {file = "pyzmq-26.4.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7a5c09413b924d96af2aa8b57e76b9b0058284d60e2fc3730ce0f979031d162a"}, - {file = "pyzmq-26.4.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7d489ac234d38e57f458fdbd12a996bfe990ac028feaf6f3c1e81ff766513d3b"}, - {file = "pyzmq-26.4.0-cp310-cp310-win32.whl", hash = "sha256:dea1c8db78fb1b4b7dc9f8e213d0af3fc8ecd2c51a1d5a3ca1cde1bda034a980"}, - {file = "pyzmq-26.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:fa59e1f5a224b5e04dc6c101d7186058efa68288c2d714aa12d27603ae93318b"}, - {file = "pyzmq-26.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:a651fe2f447672f4a815e22e74630b6b1ec3a1ab670c95e5e5e28dcd4e69bbb5"}, - {file = "pyzmq-26.4.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:bfcf82644c9b45ddd7cd2a041f3ff8dce4a0904429b74d73a439e8cab1bd9e54"}, - {file = "pyzmq-26.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9bcae3979b2654d5289d3490742378b2f3ce804b0b5fd42036074e2bf35b030"}, - {file = "pyzmq-26.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccdff8ac4246b6fb60dcf3982dfaeeff5dd04f36051fe0632748fc0aa0679c01"}, - {file = "pyzmq-26.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4550af385b442dc2d55ab7717837812799d3674cb12f9a3aa897611839c18e9e"}, - {file = "pyzmq-26.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:2f9f7ffe9db1187a253fca95191854b3fda24696f086e8789d1d449308a34b88"}, - {file = "pyzmq-26.4.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3709c9ff7ba61589b7372923fd82b99a81932b592a5c7f1a24147c91da9a68d6"}, - {file = "pyzmq-26.4.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f8f3c30fb2d26ae5ce36b59768ba60fb72507ea9efc72f8f69fa088450cff1df"}, - {file = "pyzmq-26.4.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:382a4a48c8080e273427fc692037e3f7d2851959ffe40864f2db32646eeb3cef"}, - {file = "pyzmq-26.4.0-cp311-cp311-win32.whl", hash = "sha256:d56aad0517d4c09e3b4f15adebba8f6372c5102c27742a5bdbfc74a7dceb8fca"}, - {file = "pyzmq-26.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:963977ac8baed7058c1e126014f3fe58b3773f45c78cce7af5c26c09b6823896"}, - {file = "pyzmq-26.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0c8e8cadc81e44cc5088fcd53b9b3b4ce9344815f6c4a03aec653509296fae3"}, - {file = "pyzmq-26.4.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:5227cb8da4b6f68acfd48d20c588197fd67745c278827d5238c707daf579227b"}, - {file = "pyzmq-26.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1c07a7fa7f7ba86554a2b1bef198c9fed570c08ee062fd2fd6a4dcacd45f905"}, - {file = "pyzmq-26.4.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae775fa83f52f52de73183f7ef5395186f7105d5ed65b1ae65ba27cb1260de2b"}, - {file = "pyzmq-26.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66c760d0226ebd52f1e6b644a9e839b5db1e107a23f2fcd46ec0569a4fdd4e63"}, - {file = "pyzmq-26.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:ef8c6ecc1d520debc147173eaa3765d53f06cd8dbe7bd377064cdbc53ab456f5"}, - {file = "pyzmq-26.4.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3150ef4084e163dec29ae667b10d96aad309b668fac6810c9e8c27cf543d6e0b"}, - {file = "pyzmq-26.4.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4448c9e55bf8329fa1dcedd32f661bf611214fa70c8e02fee4347bc589d39a84"}, - {file = "pyzmq-26.4.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e07dde3647afb084d985310d067a3efa6efad0621ee10826f2cb2f9a31b89d2f"}, - {file = "pyzmq-26.4.0-cp312-cp312-win32.whl", hash = "sha256:ba034a32ecf9af72adfa5ee383ad0fd4f4e38cdb62b13624278ef768fe5b5b44"}, - {file = "pyzmq-26.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:056a97aab4064f526ecb32f4343917a4022a5d9efb6b9df990ff72e1879e40be"}, - {file = "pyzmq-26.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:2f23c750e485ce1eb639dbd576d27d168595908aa2d60b149e2d9e34c9df40e0"}, - {file = "pyzmq-26.4.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:c43fac689880f5174d6fc864857d1247fe5cfa22b09ed058a344ca92bf5301e3"}, - {file = "pyzmq-26.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:902aca7eba477657c5fb81c808318460328758e8367ecdd1964b6330c73cae43"}, - {file = "pyzmq-26.4.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5e48a830bfd152fe17fbdeaf99ac5271aa4122521bf0d275b6b24e52ef35eb6"}, - {file = "pyzmq-26.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31be2b6de98c824c06f5574331f805707c667dc8f60cb18580b7de078479891e"}, - {file = "pyzmq-26.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:6332452034be001bbf3206ac59c0d2a7713de5f25bb38b06519fc6967b7cf771"}, - {file = "pyzmq-26.4.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:da8c0f5dd352136853e6a09b1b986ee5278dfddfebd30515e16eae425c872b30"}, - {file = "pyzmq-26.4.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f4ccc1a0a2c9806dda2a2dd118a3b7b681e448f3bb354056cad44a65169f6d86"}, - {file = "pyzmq-26.4.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1c0b5fceadbab461578daf8d1dcc918ebe7ddd2952f748cf30c7cf2de5d51101"}, - {file = "pyzmq-26.4.0-cp313-cp313-win32.whl", hash = "sha256:28e2b0ff5ba4b3dd11062d905682bad33385cfa3cc03e81abd7f0822263e6637"}, - {file = "pyzmq-26.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:23ecc9d241004c10e8b4f49d12ac064cd7000e1643343944a10df98e57bc544b"}, - {file = "pyzmq-26.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:1edb0385c7f025045d6e0f759d4d3afe43c17a3d898914ec6582e6f464203c08"}, - {file = "pyzmq-26.4.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:93a29e882b2ba1db86ba5dd5e88e18e0ac6b627026c5cfbec9983422011b82d4"}, - {file = "pyzmq-26.4.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb45684f276f57110bb89e4300c00f1233ca631f08f5f42528a5c408a79efc4a"}, - {file = "pyzmq-26.4.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f72073e75260cb301aad4258ad6150fa7f57c719b3f498cb91e31df16784d89b"}, - {file = "pyzmq-26.4.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be37e24b13026cfedd233bcbbccd8c0bcd2fdd186216094d095f60076201538d"}, - {file = "pyzmq-26.4.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:237b283044934d26f1eeff4075f751b05d2f3ed42a257fc44386d00df6a270cf"}, - {file = "pyzmq-26.4.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:b30f862f6768b17040929a68432c8a8be77780317f45a353cb17e423127d250c"}, - {file = "pyzmq-26.4.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:c80fcd3504232f13617c6ab501124d373e4895424e65de8b72042333316f64a8"}, - {file = "pyzmq-26.4.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:26a2a7451606b87f67cdeca2c2789d86f605da08b4bd616b1a9981605ca3a364"}, - {file = "pyzmq-26.4.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:831cc53bf6068d46d942af52fa8b0b9d128fb39bcf1f80d468dc9a3ae1da5bfb"}, - {file = "pyzmq-26.4.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:51d18be6193c25bd229524cfac21e39887c8d5e0217b1857998dfbef57c070a4"}, - {file = "pyzmq-26.4.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:445c97854204119ae2232503585ebb4fa7517142f71092cb129e5ee547957a1f"}, - {file = "pyzmq-26.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:807b8f4ad3e6084412c0f3df0613269f552110fa6fb91743e3e306223dbf11a6"}, - {file = "pyzmq-26.4.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c01d109dd675ac47fa15c0a79d256878d898f90bc10589f808b62d021d2e653c"}, - {file = "pyzmq-26.4.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:0a294026e28679a8dd64c922e59411cb586dad307661b4d8a5c49e7bbca37621"}, - {file = "pyzmq-26.4.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:22c8dd677274af8dfb1efd05006d6f68fb2f054b17066e308ae20cb3f61028cf"}, - {file = "pyzmq-26.4.0-cp38-cp38-win32.whl", hash = "sha256:14fc678b696bc42c14e2d7f86ac4e97889d5e6b94d366ebcb637a768d2ad01af"}, - {file = "pyzmq-26.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:d1ef0a536662bbbdc8525f7e2ef19e74123ec9c4578e0582ecd41aedc414a169"}, - {file = "pyzmq-26.4.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:a88643de8abd000ce99ca72056a1a2ae15881ee365ecb24dd1d9111e43d57842"}, - {file = "pyzmq-26.4.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0a744ce209ecb557406fb928f3c8c55ce79b16c3eeb682da38ef5059a9af0848"}, - {file = "pyzmq-26.4.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9434540f333332224ecb02ee6278b6c6f11ea1266b48526e73c903119b2f420f"}, - {file = "pyzmq-26.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6c6f0a23e55cd38d27d4c89add963294ea091ebcb104d7fdab0f093bc5abb1c"}, - {file = "pyzmq-26.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6145df55dc2309f6ef72d70576dcd5aabb0fd373311613fe85a5e547c722b780"}, - {file = "pyzmq-26.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2ea81823840ef8c56e5d2f9918e4d571236294fea4d1842b302aebffb9e40997"}, - {file = "pyzmq-26.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cc2abc385dc37835445abe206524fbc0c9e3fce87631dfaa90918a1ba8f425eb"}, - {file = "pyzmq-26.4.0-cp39-cp39-win32.whl", hash = "sha256:41a2508fe7bed4c76b4cf55aacfb8733926f59d440d9ae2b81ee8220633b4d12"}, - {file = "pyzmq-26.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:d4000e8255d6cbce38982e5622ebb90823f3409b7ffe8aeae4337ef7d6d2612a"}, - {file = "pyzmq-26.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:b4f6919d9c120488246bdc2a2f96662fa80d67b35bd6d66218f457e722b3ff64"}, - {file = "pyzmq-26.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:98d948288ce893a2edc5ec3c438fe8de2daa5bbbd6e2e865ec5f966e237084ba"}, - {file = "pyzmq-26.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9f34f5c9e0203ece706a1003f1492a56c06c0632d86cb77bcfe77b56aacf27b"}, - {file = "pyzmq-26.4.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80c9b48aef586ff8b698359ce22f9508937c799cc1d2c9c2f7c95996f2300c94"}, - {file = "pyzmq-26.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3f2a5b74009fd50b53b26f65daff23e9853e79aa86e0aa08a53a7628d92d44a"}, - {file = "pyzmq-26.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:61c5f93d7622d84cb3092d7f6398ffc77654c346545313a3737e266fc11a3beb"}, - {file = "pyzmq-26.4.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4478b14cb54a805088299c25a79f27eaf530564a7a4f72bf432a040042b554eb"}, - {file = "pyzmq-26.4.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a28ac29c60e4ba84b5f58605ace8ad495414a724fe7aceb7cf06cd0598d04e1"}, - {file = "pyzmq-26.4.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43b03c1ceea27c6520124f4fb2ba9c647409b9abdf9a62388117148a90419494"}, - {file = "pyzmq-26.4.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7731abd23a782851426d4e37deb2057bf9410848a4459b5ede4fe89342e687a9"}, - {file = "pyzmq-26.4.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:a222ad02fbe80166b0526c038776e8042cd4e5f0dec1489a006a1df47e9040e0"}, - {file = "pyzmq-26.4.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:91c3ffaea475ec8bb1a32d77ebc441dcdd13cd3c4c284a6672b92a0f5ade1917"}, - {file = "pyzmq-26.4.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d9a78a52668bf5c9e7b0da36aa5760a9fc3680144e1445d68e98df78a25082ed"}, - {file = "pyzmq-26.4.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b70cab356ff8c860118b89dc86cd910c73ce2127eb986dada4fbac399ef644cf"}, - {file = "pyzmq-26.4.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acae207d4387780838192326b32d373bb286da0b299e733860e96f80728eb0af"}, - {file = "pyzmq-26.4.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f928eafd15794aa4be75463d537348b35503c1e014c5b663f206504ec1a90fe4"}, - {file = "pyzmq-26.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:552b0d2e39987733e1e9e948a0ced6ff75e0ea39ab1a1db2fc36eb60fd8760db"}, - {file = "pyzmq-26.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd670a8aa843f2ee637039bbd412e0d7294a5e588e1ecc9ad98b0cdc050259a4"}, - {file = "pyzmq-26.4.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d367b7b775a0e1e54a59a2ba3ed4d5e0a31566af97cc9154e34262777dab95ed"}, - {file = "pyzmq-26.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112af16c406e4a93df2caef49f884f4c2bb2b558b0b5577ef0b2465d15c1abc"}, - {file = "pyzmq-26.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c76c298683f82669cab0b6da59071f55238c039738297c69f187a542c6d40099"}, - {file = "pyzmq-26.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:49b6ca2e625b46f499fb081aaf7819a177f41eeb555acb05758aa97f4f95d147"}, - {file = "pyzmq-26.4.0.tar.gz", hash = "sha256:4bd13f85f80962f91a651a7356fe0472791a5f7a92f227822b5acf44795c626d"}, + {file = "pyzmq-27.0.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:b973ee650e8f442ce482c1d99ca7ab537c69098d53a3d046676a484fd710c87a"}, + {file = "pyzmq-27.0.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:661942bc7cd0223d569d808f2e5696d9cc120acc73bf3e88a1f1be7ab648a7e4"}, + {file = "pyzmq-27.0.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50360fb2a056ffd16e5f4177eee67f1dd1017332ea53fb095fe7b5bf29c70246"}, + {file = "pyzmq-27.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf209a6dc4b420ed32a7093642843cbf8703ed0a7d86c16c0b98af46762ebefb"}, + {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c2dace4a7041cca2fba5357a2d7c97c5effdf52f63a1ef252cfa496875a3762d"}, + {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:63af72b2955fc77caf0a77444baa2431fcabb4370219da38e1a9f8d12aaebe28"}, + {file = "pyzmq-27.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e8c4adce8e37e75c4215297d7745551b8dcfa5f728f23ce09bf4e678a9399413"}, + {file = "pyzmq-27.0.0-cp310-cp310-win32.whl", hash = "sha256:5d5ef4718ecab24f785794e0e7536436698b459bfbc19a1650ef55280119d93b"}, + {file = "pyzmq-27.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:e40609380480b3d12c30f841323f42451c755b8fece84235236f5fe5ffca8c1c"}, + {file = "pyzmq-27.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:6b0397b0be277b46762956f576e04dc06ced265759e8c2ff41a0ee1aa0064198"}, + {file = "pyzmq-27.0.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:21457825249b2a53834fa969c69713f8b5a79583689387a5e7aed880963ac564"}, + {file = "pyzmq-27.0.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1958947983fef513e6e98eff9cb487b60bf14f588dc0e6bf35fa13751d2c8251"}, + {file = "pyzmq-27.0.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0dc628b5493f9a8cd9844b8bee9732ef587ab00002157c9329e4fc0ef4d3afa"}, + {file = "pyzmq-27.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7bbe9e1ed2c8d3da736a15694d87c12493e54cc9dc9790796f0321794bbc91f"}, + {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dc1091f59143b471d19eb64f54bae4f54bcf2a466ffb66fe45d94d8d734eb495"}, + {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7011ade88c8e535cf140f8d1a59428676fbbce7c6e54fefce58bf117aefb6667"}, + {file = "pyzmq-27.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2c386339d7e3f064213aede5d03d054b237937fbca6dd2197ac8cf3b25a6b14e"}, + {file = "pyzmq-27.0.0-cp311-cp311-win32.whl", hash = "sha256:0546a720c1f407b2172cb04b6b094a78773491497e3644863cf5c96c42df8cff"}, + {file = "pyzmq-27.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:15f39d50bd6c9091c67315ceb878a4f531957b121d2a05ebd077eb35ddc5efed"}, + {file = "pyzmq-27.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c5817641eebb391a2268c27fecd4162448e03538387093cdbd8bf3510c316b38"}, + {file = "pyzmq-27.0.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:cbabc59dcfaac66655c040dfcb8118f133fb5dde185e5fc152628354c1598e52"}, + {file = "pyzmq-27.0.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:cb0ac5179cba4b2f94f1aa208fbb77b62c4c9bf24dd446278b8b602cf85fcda3"}, + {file = "pyzmq-27.0.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53a48f0228eab6cbf69fde3aa3c03cbe04e50e623ef92ae395fce47ef8a76152"}, + {file = "pyzmq-27.0.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:111db5f395e09f7e775f759d598f43cb815fc58e0147623c4816486e1a39dc22"}, + {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c8878011653dcdc27cc2c57e04ff96f0471e797f5c19ac3d7813a245bcb24371"}, + {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:c0ed2c1f335ba55b5fdc964622254917d6b782311c50e138863eda409fbb3b6d"}, + {file = "pyzmq-27.0.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e918d70862d4cfd4b1c187310015646a14e1f5917922ab45b29f28f345eeb6be"}, + {file = "pyzmq-27.0.0-cp312-abi3-win32.whl", hash = "sha256:88b4e43cab04c3c0f0d55df3b1eef62df2b629a1a369b5289a58f6fa8b07c4f4"}, + {file = "pyzmq-27.0.0-cp312-abi3-win_amd64.whl", hash = "sha256:dce4199bf5f648a902ce37e7b3afa286f305cd2ef7a8b6ec907470ccb6c8b371"}, + {file = "pyzmq-27.0.0-cp312-abi3-win_arm64.whl", hash = "sha256:56e46bbb85d52c1072b3f809cc1ce77251d560bc036d3a312b96db1afe76db2e"}, + {file = "pyzmq-27.0.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c36ad534c0c29b4afa088dc53543c525b23c0797e01b69fef59b1a9c0e38b688"}, + {file = "pyzmq-27.0.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:67855c14173aec36395d7777aaba3cc527b393821f30143fd20b98e1ff31fd38"}, + {file = "pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8617c7d43cd8ccdb62aebe984bfed77ca8f036e6c3e46dd3dddda64b10f0ab7a"}, + {file = "pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:67bfbcbd0a04c575e8103a6061d03e393d9f80ffdb9beb3189261e9e9bc5d5e9"}, + {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5cd11d46d7b7e5958121b3eaf4cd8638eff3a720ec527692132f05a57f14341d"}, + {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:b801c2e40c5aa6072c2f4876de8dccd100af6d9918d4d0d7aa54a1d982fd4f44"}, + {file = "pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:20d5cb29e8c5f76a127c75b6e7a77e846bc4b655c373baa098c26a61b7ecd0ef"}, + {file = "pyzmq-27.0.0-cp313-cp313t-win32.whl", hash = "sha256:a20528da85c7ac7a19b7384e8c3f8fa707841fd85afc4ed56eda59d93e3d98ad"}, + {file = "pyzmq-27.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d8229f2efece6a660ee211d74d91dbc2a76b95544d46c74c615e491900dc107f"}, + {file = "pyzmq-27.0.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:f4162dbbd9c5c84fb930a36f290b08c93e35fce020d768a16fc8891a2f72bab8"}, + {file = "pyzmq-27.0.0-cp38-cp38-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4e7d0a8d460fba526cc047333bdcbf172a159b8bd6be8c3eb63a416ff9ba1477"}, + {file = "pyzmq-27.0.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:29f44e3c26b9783816ba9ce274110435d8f5b19bbd82f7a6c7612bb1452a3597"}, + {file = "pyzmq-27.0.0-cp38-cp38-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e435540fa1da54667f0026cf1e8407fe6d8a11f1010b7f06b0b17214ebfcf5e"}, + {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:51f5726de3532b8222e569990c8aa34664faa97038304644679a51d906e60c6e"}, + {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:42c7555123679637c99205b1aa9e8f7d90fe29d4c243c719e347d4852545216c"}, + {file = "pyzmq-27.0.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a979b7cf9e33d86c4949df527a3018767e5f53bc3b02adf14d4d8db1db63ccc0"}, + {file = "pyzmq-27.0.0-cp38-cp38-win32.whl", hash = "sha256:26b72c5ae20bf59061c3570db835edb81d1e0706ff141747055591c4b41193f8"}, + {file = "pyzmq-27.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:55a0155b148fe0428285a30922f7213539aa84329a5ad828bca4bbbc665c70a4"}, + {file = "pyzmq-27.0.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:100f6e5052ba42b2533011d34a018a5ace34f8cac67cb03cfa37c8bdae0ca617"}, + {file = "pyzmq-27.0.0-cp39-cp39-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:bf6c6b061efd00404b9750e2cfbd9507492c8d4b3721ded76cb03786131be2ed"}, + {file = "pyzmq-27.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ee05728c0b0b2484a9fc20466fa776fffb65d95f7317a3419985b8c908563861"}, + {file = "pyzmq-27.0.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7cdf07fe0a557b131366f80727ec8ccc4b70d89f1e3f920d94a594d598d754f0"}, + {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:90252fa2ff3a104219db1f5ced7032a7b5fc82d7c8d2fec2b9a3e6fd4e25576b"}, + {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ea6d441c513bf18c578c73c323acf7b4184507fc244762193aa3a871333c9045"}, + {file = "pyzmq-27.0.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ae2b34bcfaae20c064948a4113bf8709eee89fd08317eb293ae4ebd69b4d9740"}, + {file = "pyzmq-27.0.0-cp39-cp39-win32.whl", hash = "sha256:5b10bd6f008937705cf6e7bf8b6ece5ca055991e3eb130bca8023e20b86aa9a3"}, + {file = "pyzmq-27.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:00387d12a8af4b24883895f7e6b9495dc20a66027b696536edac35cb988c38f3"}, + {file = "pyzmq-27.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:4c19d39c04c29a6619adfeb19e3735c421b3bfee082f320662f52e59c47202ba"}, + {file = "pyzmq-27.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:656c1866505a5735d0660b7da6d7147174bbf59d4975fc2b7f09f43c9bc25745"}, + {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:74175b9e12779382432dd1d1f5960ebe7465d36649b98a06c6b26be24d173fab"}, + {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8c6de908465697a8708e4d6843a1e884f567962fc61eb1706856545141d0cbb"}, + {file = "pyzmq-27.0.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c644aaacc01d0df5c7072826df45e67301f191c55f68d7b2916d83a9ddc1b551"}, + {file = "pyzmq-27.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:10f70c1d9a446a85013a36871a296007f6fe4232b530aa254baf9da3f8328bc0"}, + {file = "pyzmq-27.0.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd1dc59763effd1576f8368047c9c31468fce0af89d76b5067641137506792ae"}, + {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:60e8cc82d968174650c1860d7b716366caab9973787a1c060cf8043130f7d0f7"}, + {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:14fe7aaac86e4e93ea779a821967360c781d7ac5115b3f1a171ced77065a0174"}, + {file = "pyzmq-27.0.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6ad0562d4e6abb785be3e4dd68599c41be821b521da38c402bc9ab2a8e7ebc7e"}, + {file = "pyzmq-27.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:9df43a2459cd3a3563404c1456b2c4c69564daa7dbaf15724c09821a3329ce46"}, + {file = "pyzmq-27.0.0-pp38-pypy38_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8c86ea8fe85e2eb0ffa00b53192c401477d5252f6dd1db2e2ed21c1c30d17e5e"}, + {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:c45fee3968834cd291a13da5fac128b696c9592a9493a0f7ce0b47fa03cc574d"}, + {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cae73bb6898c4e045fbed5024cb587e4110fddb66f6163bcab5f81f9d4b9c496"}, + {file = "pyzmq-27.0.0-pp38-pypy38_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:26d542258c7a1f35a9cff3d887687d3235006134b0ac1c62a6fe1ad3ac10440e"}, + {file = "pyzmq-27.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:04cd50ef3b28e35ced65740fb9956a5b3f77a6ff32fcd887e3210433f437dd0f"}, + {file = "pyzmq-27.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:39ddd3ba0a641f01d8f13a3cfd4c4924eb58e660d8afe87e9061d6e8ca6f7ac3"}, + {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:8ca7e6a0388dd9e1180b14728051068f4efe83e0d2de058b5ff92c63f399a73f"}, + {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2524c40891be6a3106885a3935d58452dd83eb7a5742a33cc780a1ad4c49dec0"}, + {file = "pyzmq-27.0.0-pp39-pypy39_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a56e3e5bd2d62a01744fd2f1ce21d760c7c65f030e9522738d75932a14ab62a"}, + {file = "pyzmq-27.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:096af9e133fec3a72108ddefba1e42985cb3639e9de52cfd336b6fc23aa083e9"}, + {file = "pyzmq-27.0.0.tar.gz", hash = "sha256:b1f08eeb9ce1510e6939b6e5dcd46a17765e2333daae78ecf4606808442e52cf"}, ] [package.dependencies] @@ -4176,6 +4163,7 @@ description = "Fundamental algorithms for scientific computing in Python" optional = false python-versions = ">=3.10" groups = ["main"] +markers = "python_version == \"3.10\"" files = [ {file = "scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c"}, {file = "scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253"}, @@ -4233,6 +4221,62 @@ dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodest doc = ["intersphinx_registry", "jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.19.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<8.0.0)", "sphinx-copybutton", "sphinx-design (>=0.4.0)"] test = ["Cython", "array-api-strict (>=2.0,<2.1.1)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja ; sys_platform != \"emscripten\"", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] +[[package]] +name = "scipy" +version = "1.16.0" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.11" +groups = ["main"] +markers = "python_version == \"3.11\"" +files = [ + {file = "scipy-1.16.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:deec06d831b8f6b5fb0b652433be6a09db29e996368ce5911faf673e78d20085"}, + {file = "scipy-1.16.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d30c0fe579bb901c61ab4bb7f3eeb7281f0d4c4a7b52dbf563c89da4fd2949be"}, + {file = "scipy-1.16.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:b2243561b45257f7391d0f49972fca90d46b79b8dbcb9b2cb0f9df928d370ad4"}, + {file = "scipy-1.16.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:e6d7dfc148135e9712d87c5f7e4f2ddc1304d1582cb3a7d698bbadedb61c7afd"}, + {file = "scipy-1.16.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:90452f6a9f3fe5a2cf3748e7be14f9cc7d9b124dce19667b54f5b429d680d539"}, + {file = "scipy-1.16.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a2f0bf2f58031c8701a8b601df41701d2a7be17c7ffac0a4816aeba89c4cdac8"}, + {file = "scipy-1.16.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6c4abb4c11fc0b857474241b812ce69ffa6464b4bd8f4ecb786cf240367a36a7"}, + {file = "scipy-1.16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b370f8f6ac6ef99815b0d5c9f02e7ade77b33007d74802efc8316c8db98fd11e"}, + {file = "scipy-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:a16ba90847249bedce8aa404a83fb8334b825ec4a8e742ce6012a7a5e639f95c"}, + {file = "scipy-1.16.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:7eb6bd33cef4afb9fa5f1fb25df8feeb1e52d94f21a44f1d17805b41b1da3180"}, + {file = "scipy-1.16.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:1dbc8fdba23e4d80394ddfab7a56808e3e6489176d559c6c71935b11a2d59db1"}, + {file = "scipy-1.16.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:7dcf42c380e1e3737b343dec21095c9a9ad3f9cbe06f9c05830b44b1786c9e90"}, + {file = "scipy-1.16.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:26ec28675f4a9d41587266084c626b02899db373717d9312fa96ab17ca1ae94d"}, + {file = "scipy-1.16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:952358b7e58bd3197cfbd2f2f2ba829f258404bdf5db59514b515a8fe7a36c52"}, + {file = "scipy-1.16.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:03931b4e870c6fef5b5c0970d52c9f6ddd8c8d3e934a98f09308377eba6f3824"}, + {file = "scipy-1.16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:512c4f4f85912767c351a0306824ccca6fd91307a9f4318efe8fdbd9d30562ef"}, + {file = "scipy-1.16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e69f798847e9add03d512eaf5081a9a5c9a98757d12e52e6186ed9681247a1ac"}, + {file = "scipy-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:adf9b1999323ba335adc5d1dc7add4781cb5a4b0ef1e98b79768c05c796c4e49"}, + {file = "scipy-1.16.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:e9f414cbe9ca289a73e0cc92e33a6a791469b6619c240aa32ee18abdce8ab451"}, + {file = "scipy-1.16.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:bbba55fb97ba3cdef9b1ee973f06b09d518c0c7c66a009c729c7d1592be1935e"}, + {file = "scipy-1.16.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:58e0d4354eacb6004e7aa1cd350e5514bd0270acaa8d5b36c0627bb3bb486974"}, + {file = "scipy-1.16.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:75b2094ec975c80efc273567436e16bb794660509c12c6a31eb5c195cbf4b6dc"}, + {file = "scipy-1.16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6b65d232157a380fdd11a560e7e21cde34fdb69d65c09cb87f6cc024ee376351"}, + {file = "scipy-1.16.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1d8747f7736accd39289943f7fe53a8333be7f15a82eea08e4afe47d79568c32"}, + {file = "scipy-1.16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eb9f147a1b8529bb7fec2a85cf4cf42bdfadf9e83535c309a11fdae598c88e8b"}, + {file = "scipy-1.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d2b83c37edbfa837a8923d19c749c1935ad3d41cf196006a24ed44dba2ec4358"}, + {file = "scipy-1.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:79a3c13d43c95aa80b87328a46031cf52508cf5f4df2767602c984ed1d3c6bbe"}, + {file = "scipy-1.16.0-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:f91b87e1689f0370690e8470916fe1b2308e5b2061317ff76977c8f836452a47"}, + {file = "scipy-1.16.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:88a6ca658fb94640079e7a50b2ad3b67e33ef0f40e70bdb7dc22017dae73ac08"}, + {file = "scipy-1.16.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:ae902626972f1bd7e4e86f58fd72322d7f4ec7b0cfc17b15d4b7006efc385176"}, + {file = "scipy-1.16.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:8cb824c1fc75ef29893bc32b3ddd7b11cf9ab13c1127fe26413a05953b8c32ed"}, + {file = "scipy-1.16.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:de2db7250ff6514366a9709c2cba35cb6d08498e961cba20d7cff98a7ee88938"}, + {file = "scipy-1.16.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e85800274edf4db8dd2e4e93034f92d1b05c9421220e7ded9988b16976f849c1"}, + {file = "scipy-1.16.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4f720300a3024c237ace1cb11f9a84c38beb19616ba7c4cdcd771047a10a1706"}, + {file = "scipy-1.16.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:aad603e9339ddb676409b104c48a027e9916ce0d2838830691f39552b38a352e"}, + {file = "scipy-1.16.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f56296fefca67ba605fd74d12f7bd23636267731a72cb3947963e76b8c0a25db"}, + {file = "scipy-1.16.0.tar.gz", hash = "sha256:b5ef54021e832869c8cfb03bc3bf20366cbcd426e02a58e8a58d7584dfbb8f62"}, +] + +[package.dependencies] +numpy = ">=1.25.2,<2.6" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"] +doc = ["intersphinx_registry", "jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.19.1)", "jupytext", "linkify-it-py", "matplotlib (>=3.5)", "myst-nb (>=1.2.0)", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<8.2.0)", "sphinx-copybutton", "sphinx-design (>=0.4.0)"] +test = ["Cython", "array-api-strict (>=2.3.1)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja ; sys_platform != \"emscripten\"", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + [[package]] name = "seaborn" version = "0.13.2" @@ -4835,14 +4879,14 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.4.0" +version = "2.5.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" groups = ["main", "docs", "notebooks"] files = [ - {file = "urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"}, - {file = "urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466"}, + {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"}, + {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"}, ] [package.extras] diff --git a/pyproject.toml b/pyproject.toml index 202f1d0d..37268d9a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -92,6 +92,7 @@ single_line_exclusions = ['typing'] known_first_party = ["smart_control"] skip_glob = ['smart_control/proto/*'] + [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" diff --git a/smart_control/environment/environment.py b/smart_control/environment/environment.py index fb252059..de98252d 100644 --- a/smart_control/environment/environment.py +++ b/smart_control/environment/environment.py @@ -413,7 +413,9 @@ def __init__( self._end_timestamp: pd.Timestamp = self._start_timestamp + pd.Timedelta( num_days_in_episode, unit="days" ) - self._step_interval = step_interval + self._step_interval = self.building.time_step_sec * pd.Timedelta( + 1, unit="seconds" + ) self._num_timesteps_in_episode = int( (self._end_timestamp - self._start_timestamp) / self._step_interval ) diff --git a/smart_control/environment/environment_test.py b/smart_control/environment/environment_test.py index 614ed0ec..fc9bca02 100644 --- a/smart_control/environment/environment_test.py +++ b/smart_control/environment/environment_test.py @@ -719,7 +719,6 @@ def __init__( obs_normalizer, action_config, discount_factor: float = 1, - step_interval: pd.Timedelta = pd.Timedelta(1, unit="minute"), ): super().__init__( building, @@ -727,7 +726,6 @@ def __init__( obs_normalizer, action_config, discount_factor, - step_interval=step_interval, ) self.counter = 0 @@ -747,7 +745,6 @@ def _step(self, action) -> ts.TimeStep: reward_function, obs_normalizer, action_config, - step_interval=step_interval, ) utils.validate_py_environment(env, episodes=5) diff --git a/smart_control/reinforcement_learning/agents/ddpg_agent.py b/smart_control/reinforcement_learning/agents/ddpg_agent.py new file mode 100644 index 00000000..af370cd0 --- /dev/null +++ b/smart_control/reinforcement_learning/agents/ddpg_agent.py @@ -0,0 +1,141 @@ +"""DDPG Agent implementation. + +This module provides a function to create a DDPG agent with customizable parameters. +""" + +from typing import Optional, Sequence + +import tensorflow as tf +from tf_agents.agents import tf_agent +from tf_agents.agents.ddpg import ddpg_agent +from tf_agents.networks import network +from tf_agents.typing import types + +from smart_control.reinforcement_learning.agents.networks.ddpg_networks import create_sequential_actor_network +from smart_control.reinforcement_learning.agents.networks.ddpg_networks import create_sequential_critic_network + + +def create_ddpg_agent( + time_step_spec: types.TimeStep, + action_spec: types.NestedTensorSpec, + # Actor network parameters + actor_fc_layers: Sequence[int] = (128, 128), + actor_network: Optional[network.Network] = None, + # Critic network parameters + critic_obs_fc_layers: Sequence[int] = (128, 64), + critic_action_fc_layers: Sequence[int] = (128, 64), + critic_joint_fc_layers: Sequence[int] = (128, 64), + critic_network: Optional[network.Network] = None, + # Optimizer parameters + actor_learning_rate: float = 3e-4, + critic_learning_rate: float = 3e-4, + # Agent parameters + ou_stddev: float = 1.0, + ou_damping: float = 1.0, + gamma: float = 0.99, + target_update_tau: float = 0.005, + target_update_period: int = 1, + reward_scale_factor: float = 1.0, + # Training parameters + gradient_clipping: Optional[float] = None, + debug_summaries: bool = False, + summarize_grads_and_vars: bool = False, + train_step_counter: Optional[tf.Variable] = None, +) -> tf_agent.TFAgent: + """Creates a DDPG Agent. + + Args: + time_step_spec: A `TimeStep` spec of the expected time_steps. + + action_spec: A nest of BoundedTensorSpec representing the actions. + + actor_fc_layers: Iterable of fully connected layer units for the actor network. + + actor_network: Optional custom actor network to use. + + critic_obs_fc_layers: Iterable of fully connected layer units for the critic + observation network. + + critic_action_fc_layers: Iterable of fully connected layer units for the critic + action network. + + critic_joint_fc_layers: Iterable of fully connected layer units for the joint + part of the critic network. + + critic_network: Optional custom critic network to use. + + actor_learning_rate: Actor network learning rate. + + critic_learning_rate: Critic network learning rate. + + ou_stddev: Standard deviation for the Ornstein-Uhlenbeck (OU) noise added for + exploration. + + ou_damping: Damping factor for the OU noise. + + gamma: Discount factor for future rewards. + + target_update_tau: Factor for soft update of target networks. + + target_update_period: Period for soft update of target networks. + + reward_scale_factor: Multiplicative scale for the reward. + + gradient_clipping: Norm length to clip gradients. + + debug_summaries: Whether to emit debug summaries. + + summarize_grads_and_vars: Whether to summarize gradients and variables. + + train_step_counter: An optional counter to increment every time the train + op is run. Defaults to the global_step. + + Returns: + A TFAgent instance with the DDPG agent. + """ + # Create train step counter if not provided + if train_step_counter is None: + train_step_counter = tf.Variable(0, trainable=False, dtype=tf.int64) + + # Create networks if not provided + if actor_network is None: + actor_network = create_sequential_actor_network( + actor_fc_layers=actor_fc_layers, action_tensor_spec=action_spec + ) + + if critic_network is None: + critic_network = create_sequential_critic_network( + obs_fc_layer_units=critic_obs_fc_layers, + action_fc_layer_units=critic_action_fc_layers, + joint_fc_layer_units=critic_joint_fc_layers, + ) + + # Create agent + tf_agent = ddpg_agent.DdpgAgent( + time_step_spec=time_step_spec, + action_spec=action_spec, + actor_network=actor_network, + critic_network=critic_network, + actor_optimizer=tf.keras.optimizers.Adam( + learning_rate=actor_learning_rate + ), + critic_optimizer=tf.keras.optimizers.Adam( + learning_rate=critic_learning_rate + ), + ou_stddev=ou_stddev, + ou_damping=ou_damping, + target_update_tau=target_update_tau, + target_update_period=target_update_period, + td_errors_loss_fn=tf.math.squared_difference, + gamma=gamma, + reward_scale_factor=reward_scale_factor, + gradient_clipping=gradient_clipping, + debug_summaries=debug_summaries, + summarize_grads_and_vars=summarize_grads_and_vars, + train_step_counter=train_step_counter, + ) + + # Initialize the agent + tf_agent.initialize() + + return tf_agent diff --git a/smart_control/reinforcement_learning/agents/networks/ddpg_networks.py b/smart_control/reinforcement_learning/agents/networks/ddpg_networks.py new file mode 100644 index 00000000..bfc54ddc --- /dev/null +++ b/smart_control/reinforcement_learning/agents/networks/ddpg_networks.py @@ -0,0 +1,131 @@ +"""Network architectures for DDPG agent. + +This module provides functions to create actor and critic networks for DDPG agents. +""" + +import functools +from typing import Sequence + +import tensorflow as tf +from tf_agents.keras_layers import inner_reshape +from tf_agents.networks import nest_map +from tf_agents.networks import sequential +from tf_agents.typing import types +from tf_agents.utils import common + +# Utility to create dense layers with consistent initialization and activation +dense = functools.partial( + tf.keras.layers.Dense, + activation=tf.keras.activations.relu, + kernel_initializer=tf.compat.v1.variance_scaling_initializer( + scale=1.0 / 3.0, mode='fan_in', distribution='uniform' + ), +) + + +def create_identity_layer() -> tf.keras.layers.Layer: + """Creates an identity layer. + + Returns: + A Lambda layer that returns its input. + """ + return tf.keras.layers.Lambda(lambda x: x) + + +def create_fc_network(layer_units: Sequence[int]) -> tf.keras.Model: + """Creates a fully connected network. + + Args: + layer_units: A sequence of layer units. + + Returns: + A sequential model of dense layers. + """ + return sequential.Sequential([dense(num_units) for num_units in layer_units]) + + +def create_sequential_actor_network( + actor_fc_layers: Sequence[int], + action_tensor_spec: types.NestedTensorSpec, +) -> sequential.Sequential: + """Create a sequential actor network for DDPG. + + Args: + actor_fc_layers: Units for actor network fully connected layers. + action_tensor_spec: The action tensor spec. + + Returns: + A sequential actor network. + """ + flat_action_spec = tf.nest.flatten(action_tensor_spec) + if len(flat_action_spec) > 1: + raise ValueError('Only a single action tensor is supported by this network') + flat_action_spec = flat_action_spec[0] + + fc_layers = [dense(num_units) for num_units in actor_fc_layers] + num_actions = flat_action_spec.shape.num_elements() + action_fc_layer = tf.keras.layers.Dense( + num_actions, + activation=tf.keras.activations.tanh, + kernel_initializer=tf.keras.initializers.RandomUniform( + minval=-0.003, maxval=0.003 + ), + ) + + scaling_layer = tf.keras.layers.Lambda( + lambda x: common.scale_to_spec(x, flat_action_spec) + ) + return sequential.Sequential(fc_layers + [action_fc_layer, scaling_layer]) + + +def create_sequential_critic_network( + obs_fc_layer_units: Sequence[int], + action_fc_layer_units: Sequence[int], + joint_fc_layer_units: Sequence[int], +) -> sequential.Sequential: + """Create a sequential critic network for DDPG. + + Args: + obs_fc_layer_units: Units for observation network layers. + action_fc_layer_units: Units for action network layers. + joint_fc_layer_units: Units for joint network layers. + + Returns: + A sequential critic network. + """ + + def split_inputs(inputs): + return {'observation': inputs[0], 'action': inputs[1]} + + obs_network = ( + create_fc_network(obs_fc_layer_units) + if obs_fc_layer_units + else create_identity_layer() + ) + action_network = ( + create_fc_network(action_fc_layer_units) + if action_fc_layer_units + else create_identity_layer() + ) + joint_network = ( + create_fc_network(joint_fc_layer_units) + if joint_fc_layer_units + else create_identity_layer() + ) + value_fc_layer = tf.keras.layers.Dense( + 1, + activation=None, + kernel_initializer=tf.keras.initializers.RandomUniform( + minval=-0.003, maxval=0.003 + ), + ) + + return sequential.Sequential([ + tf.keras.layers.Lambda(split_inputs), + nest_map.NestMap({'observation': obs_network, 'action': action_network}), + nest_map.NestFlatten(), + tf.keras.layers.Concatenate(), + joint_network, + value_fc_layer, + inner_reshape.InnerReshape([1], []), + ]) diff --git a/smart_control/reinforcement_learning/agents/networks/sac_networks.py b/smart_control/reinforcement_learning/agents/networks/sac_networks.py index d6646ab6..5150500e 100644 --- a/smart_control/reinforcement_learning/agents/networks/sac_networks.py +++ b/smart_control/reinforcement_learning/agents/networks/sac_networks.py @@ -116,6 +116,9 @@ def call(self, inputs, **kwargs): kwargs['outer_rank'] = self.predefined_outer_rank if 'step_type' in kwargs: del kwargs['step_type'] + del kwargs[ + 'network_state' + ] # was getting error saying that this argument was unexpected in the call below return super(_TanhNormalProjectionNetworkWrapper, self).call( inputs, **kwargs ) diff --git a/smart_control/reinforcement_learning/agents/networks/td3_networks.py b/smart_control/reinforcement_learning/agents/networks/td3_networks.py new file mode 100644 index 00000000..e69de29b diff --git a/smart_control/reinforcement_learning/notebooks/plots.ipynb b/smart_control/reinforcement_learning/notebooks/plots.ipynb new file mode 100644 index 00000000..77c05488 --- /dev/null +++ b/smart_control/reinforcement_learning/notebooks/plots.ipynb @@ -0,0 +1,4897 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "13f90667", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-05-03 14:13:55.136451: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", + "2025-05-03 14:13:55.136513: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", + "2025-05-03 14:13:55.139222: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", + "2025-05-03 14:13:55.154889: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "To enable the following instructions: AVX2 AVX512F FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "2025-05-03 14:13:56.585302: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n" + ] + } + ], + "source": [ + "import json\n", + "import numpy as np\n", + "import os\n", + "from typing import List, Tuple\n", + "\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.dates as mdates\n", + "from datetime import datetime, timedelta\n", + "import matplotlib.ticker as ticker\n", + "from tensorboard.backend.event_processing import event_accumulator\n", + "from tensorflow.python.framework import tensor_util\n", + "\n", + "def update_plot_config():\n", + " plt.rcParams.update({\n", + " \"text.usetex\": True,\n", + " \"font.family\": \"serif\",\n", + " \"font.serif\": [\"Times\"],\n", + " \"axes.labelsize\": 10,\n", + " \"font.size\": 10,\n", + " \"legend.fontsize\": 9,\n", + " \"xtick.labelsize\": 8,\n", + " \"ytick.labelsize\": 8,\n", + " })\n", + "\n", + "def plot_actions(file_path: str, name: str):\n", + "\n", + " update_plot_config()\n", + " \n", + "\n", + " with open(file_path, 'r') as f:\n", + " data = json.load(f)\n", + "\n", + "\n", + " actions = np.array(data['actions'])\n", + " timestamps = data['timestamps']\n", + " parsed_times = [datetime.fromisoformat(t) for t in timestamps]\n", + "\n", + "\n", + " plt.figure(figsize=(4, 2), dpi=300)\n", + "\n", + " # Plot actions\n", + " plt.plot(parsed_times, actions[:, 0], color='crimson', linewidth=1.5, label='Action 1')\n", + " plt.plot(parsed_times, actions[:, 1], color='navy', linewidth=1.5, label='Action 2')\n", + "\n", + "\n", + " ax = plt.gca()\n", + " locator = mdates.AutoDateLocator()\n", + " formatter = mdates.ConciseDateFormatter(locator)\n", + " ax.xaxis.set_major_locator(locator)\n", + " ax.xaxis.set_major_formatter(formatter)\n", + "\n", + "\n", + " plt.xticks(rotation=30, ha='right', fontsize=8)\n", + " plt.xlabel('Time', fontsize=12)\n", + " plt.ylabel('Action Value', fontsize=12)\n", + " plt.grid(True, which='both', linestyle='--', linewidth=0.5, alpha=0.7)\n", + " plt.tight_layout()\n", + " plt.legend(loc='upper right')\n", + " \n", + "\n", + " plt.savefig(f'plots/{name}.pdf', bbox_inches='tight')\n", + " \n", + " return parsed_times, actions\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "bf68676b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([datetime.datetime(2023, 8, 6, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 6, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 7, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 8, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 9, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 10, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 11, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 12, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 13, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 14, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 15, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " datetime.datetime(2023, 8, 16, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200))),\n", + " ...],\n", + " array([[-1. , -0.77777779],\n", + " [-1. , -0.77777779],\n", + " [-1. , -0.77777779],\n", + " ...,\n", + " [-1. , -0.77777779],\n", + " [-1. , -0.77777779],\n", + " [-1. , -0.77777779]]))" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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GIWFhSgoKAi4fejQoZgzZ45hzyKXy+ULCuXn5xsGghYvXoyFCxdi8eLFyMzMRE5ODgoLCzF58mRs3rwZs2bNis0vRERERERERERxxYykY5jewyia55t9jVmzZjFgRERERERERHSMY0YSERERERERERGZwkASERERERERERGZwtI26jIaGxsDft60aVOctuTY4vF4fKv6paSkwG63x3mLqC1xvLsOjnXXwvHuOjjWXQvHu+vgWHctweeywee6bY2BJOoytm3bFvDzhRdeGJ8NISIiIiIiIoqRbdu2ITc3t93ej6VtRERERERERESdlNvtbtf3YyCJiIiIiIiIiKiTqqmpadf3Y2kbdRmnn3463njjDd/PAwcOhNPpjN8GHSM2bdoUUCb4xhtvYNiwYfHbIGpTHO+ug2PdtXC8uw6OddfC8e46ONZdy7p16zB79mzfz5MnT27X92cgiboMl8uFCy64IN6bccwbNmwYxowZE+/NoHbC8e46ONZdC8e76+BYdy0c766DY921pKent+v7sbSNiIiIiIiIiIhMYSCJiIiIiIiIiIhMYSCJiIiIiIiIiIhMYSCJiIiIiIiIiIhMYSCJiIiIiIiIiIhMYSCJiIiIiIiIiIhMYSCJiIiIiIiIiIhMYSCJiIiIiIiIiIhMYSCJiIiIiIiIiIhMYSCJiIiIiIiIiIhMYSCJiIiIiIiIiIhMccR7A4ioc+vZsyfuu+++gJ/p2MXx7jo41l0Lx7vr4Fh3LRzvroNj3bXEe7w1IYRo13ckIiIiIiIiIqJOiaVtRERERERERERkCgNJRERERERERERkCgNJRERERERERERkCgNJRERERERERERkCgNJRERERERERERkCgNJRERERERERERkCgNJRERERERERERkCgNJRERERERERERkCgNJRERERERERERkCgNJRERERERERERkCgNJRERERERERERkCgNJRERERERERERkCgNJRERERERERERkCgNJRERdiBAi3ptARERERESdGANJRIQtW7bgyiuvZJDhGFRbW4va2lps27YNAKBpWpy3iIiIIuXxeOK9CURERAwkEXVl9fX1uOGGG5CdnY033ngDlZWV8d4kipHa2loUFRXh1FNPxdChQzFkyBAMGzYMf/3rX33jzMAhEVHn4Xa7sXTp0nhvBrWj+vp6tLS0xHszqI1xPkadEQNJRF2Q1+vFiy++iLS0NMybNw+apsHr9eLAgQPx3jSKkhAC8+fPx4gRI3Dcccfh4Ycfxq9//WtceOGFqKqqQnFxMc466yx8/vnnqK+vj/fmElEUvF5vvDeB2klNTQ0uuugiLFq0KN6bQu3A6/Xi+eefR1paGl588cV4bw7FkNfrxdtvv42HH34Yc+bMwXPPPYfly5f77mdQ6dgmhEBVVRUAdPogsSPeG0BE7eurr77COeecg4MHDwIATjvtNDQ3N+OLL77AokWLcPzxx8d5Cykar776Kt566y18//33SEhIAACce+65AIDrrrsOixcvRmVlJa688kqcc845+Mtf/hLPzaUY83q9sNl4jehY19jYCKfTybHuIv7whz/gt7/9LRoaGtCvXz80NTUhMTEx3ptFbSR4nrZ9+/Y4bxHFytKlS3HFFVdgxIgRqK6uxpo1a/Dss88CAK699lrcddddyMnJifNWUlt68MEHMX/+fFRWVsLpdHbqeVvn3Goismz37t0444wzcMIJJ+DgwYMYNWoUfv3rX6O0tNQXTPjmm2/gdrvju6EUESEEDhw4gPvvvx8nnngiEhIS0NzcDABoamoCADz00EO44YYbAACbN2/GX//6V7z88stx22aKjYaGBsyZMwfbtm2DzWZjD5Vj2N69e3H99dfj/PPPx7Bhw3DLLbdg8eLFANg751j09ttvY9iwYZg7dy4aGhrgcrkwZswYBpGOUcHztP79+wMAPvvsszhvGUWrpaUFN910Ex599FF8/PHHWLJkCT799FN88803OPPMM6FpGl544QX8+Mc/xrx58+K9udRGPvnkE/ztb3/Dzp078dBDD8V7c6IniOiY1tDQIG6//XahaZrQNE306dNH/PSnPxULFy4Ue/fuFUIIsWfPHjFixAgxdepUUV1dLbxeb5y3miLx/vvvC03TxP/+9z8hhJCO4+HDh8V1113n+zz07dtXbN68uZ23lGLpn//8p9A0TVx77bVCCPm4U+fW3NwsSkpKfN9b/T+73S4SExPF6tWr472JFEPr168X06dP941zZmamOOOMM0RJSYmoqqqK9+ZRjDU0NIji4uKAedo111wj/v73v4vMzEyhaZpYs2ZNvDeTorBkyRIxevRosW/fPiGEEE1NTb779u/fL+655x6RlJQkNE0TCQkJ4sknn4zXplIb8Xg8vv26zWYT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2Lp1a1v/OhRGtPtymYULFwqbzSauv/56IQT35/Gij+WmTZtE7969fd+9n//85wH3+9OPzd9//33A/vn8888Xr7/+esjjP/zwQ3HBBReIRYsWidGjRwtN08SJJ57Ydr8UmbZv3z4xYcIEoWmab56VkZERMK52u11ccMEFll73Jz/5ScDnojNhIImoE9APTq+88orQNE0sXLhQCNF6Rcv/wHXw4EExZMgQX5T80ksvFatWrTL9Pl9//bXIzMwU559/vqipqWFAoZ15PB5RX18vxo8fL5KSkkR1dbUQInByogeSmpqaxB133CEyMzOFpmkiOztbzJs3TwjReuLywQcfiHHjxoVcLTnttNPEf/7zH9/rffLJJ6Jnz57C4XBIJzXUPh544AFfMOCLL74QQli/IqV/Nm6//XbfmE+dOtV3P7/PHUMsxloIIR5//HGRlJQkLrvsMnH77beL++67T5x//vnC5XL5Xv/KK68Uhw4divWvQBb4j/eXX34phAg/3kuXLhV33XWXeP/990VlZaXv9uDvcFNTkygqKhL9+vUTmqaJ3/zmN7H/BcgSq99vo/2yft+KFSt8FwkbGhpiu8Fk2c033xySFWg01vptTz/9tBgwYEBABsr9998v3nzzTfH555+Ln//850LTNFFSUiKamppEr169hKZpYvbs2crXpranfw9LSkqEpmli4sSJ4tprrxX/+te/xPr168Vzzz0nZs6cGfB50OfZRmOm31dVVRXweXrrrbeEEJ0jYMxAElEnoO/Efvazn4kePXqITZs2hTxG3yG99957YtKkSb7AweWXXy6+//57IUT4tNiKigqRlZUlevbs6XssTz7bV01Nje8qlF6qEDwG+tisXr1a/PjHP/ZlJBx//PFiw4YNvsft2LFDvPXWW2LBggXixhtvFCtXrhS7du0KOLCVl5eLhIQE4XA4pBlQ1PZWrVolunXr5ptETJ8+PaLX0T8XtbW1on///r7X+9vf/iaE4CS0I4jVWG/btk2Ulpb60uCbmpp8961cuVLcdNNNvmPAihUrYrLtZF3weE+bNi3i1wr+/upjvnv3bvHoo4/63mP//v1RbTNFLlbfb5mTTz5ZJCUliY8++ihmr0nWvfDCC2Lu3Lni4MGD4uqrrzb13fafw913331i4MCBARks+r568ODBASXJl156acw/RxSZI0eOiD59+ogR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9+8XM2bMEJqmiWXLlsVku8k6fbUOTdPEpEmTTD3nkksuETabTSQmJor33ntP+hiv1ytaWlrEggULhMvlEo899lgsN5uioDdVXLt2rUhMTPSN/4cffiiEsL4UrP49919JZMyYMWLHjh3i6aefFnPnzpWuPEJtL9ZjLUTofv3uu+8W5513XvQbS1GL5XjrzdWDx/u8884TDzzwQIy2mKLRVvvyX/3qV0LTNPGnP/0pthtMEWuL7/aWLVtEv379xAknnBCwIifF15YtW4QQ6oWO9LE666yzxFlnnWX59RsaGoQQQqxbt873ORo4cKBYvnx5hFvc9piRRNSJXHvttb4rHN988w1eeOEFAFBmqgDA1KlTkZ2dDaA1U2Xnzp2G0fSsrCz06NHDV6NN8XHzzTf7xmnVqlV47rnnAMjHWr9Kol/FSE5ORu/evQHIeyvt3bsXb7/9Nu69917cfvvt0sdR+9MbdB533HH45S9/6btdL0lzOBwRjdMjjzyCnj17AgDWrVuHQYMGoVevXvj973/va+BP7SsWY61q5trS0oJ3330XdXV1vt54FF+x/G4H97yrq6vDvHnz4HA4fPtziq9Y78v1MR80aBASEhJ8i3Cw3138tcV3+5VXXsGuXbtwww03ICEhgWVtHcTgwYMBqHsWJSQkAAC+++47nHbaaSH365+D+vr6gJ91TqcTAPD3v/8dNpsNr732GrZu3dqhW08wkETUifTo0QN33XWX7+c77rgDTU1NcDgcIQcafUc3btw4jB8/HkDryh9ff/218vX1ndojjzyCuro65OXlxfpXIJMmTZqE66+/3vdzcXExWlpafKnU/vQTih//+MfIy8tDTU2Nr0l38AHvm2++wbnnnoukpCRcccUVvtuZNt2x3HfffejTpw+A1l5Wzz77LAB1KauM/rlISEjwBZNvu+021NXV4eKLL+aYdxCRjrU+vhUVFXjnnXdQVlaGv/zlL3j44Yfx4osv4oILLkD37t3bduPJsmi+242NjViyZAmefPJJvPnmm/jjH/+IkpISLF68GL/5zW+QnJzcpttO1sViX67vq/v374/m5ma88cYbALiKV0cTzVjrj/nvf/+Ld999F//61798Dda5CErncfjwYWRmZuKUU04JuU/TNFRXV+Pdd9/1/eyvuroad9xxB3r16oXa2loUFhZ2/HlafBKhiChS3333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7oYrthEREcXTnDlzUFZWFnYl0mDxCiIB7JFERERERMcYvQwg+N9EREQdjd7Tb/ny5aYfH8/m5QAzkoiIiIjoGON2uwP+7Xa7O+TyyURERNnZ2aiqqkJpaSncbjfmzJkTkm3kdruxYMECX9ZSNP0QY4EZSURERER0TLO6MhEREVF7Wbhwoe9ix/z585GXlwdN05CZmYnMzEzfv4uLi1FYWBj3IBLAQBIRERERHWOCs4/YI4mIiDqq3NxcVFdXY968ecjPzw8oW+vevTuKioqwcOFCVFdXo6ioKI5behRL24iIiIjomBLcO2LBggURB5OKi4tRUlISi80iIiJSKioq6jCBonCYkUREREREx5QpU6YE/Ox2u7Fo0SLLrzNnzhyWxREREQVhRhIRERFRJ8TVyNTy8/NDbrvuuuuQn59vuun2okWLMH/+fFRWVsZ464iIiDo3ZiQRERERUafgvxqbEZfLFRJMcrvdKCwsNPX8RYsWobCwEEVFRXFfYpmIiKijYSCJiIiIqBOSZcpEW4YVHKgxG7iJJDsq+LUj3XbVe8v6GpWVlSEvLw8VFRXKbdJXxXG5XOyNREREJMHSNiIiIqJOaP78+SG3VVVVoaKiArm5uRG9pmxJ4aqqqrBZOcFBIDPlYMGPcbvdcLvdhqVnK1asML19ubm5KCoqCvk7VVRUIC8vD7m5uZg8eTJycnJw4MABVFVVBfRRWrJkiekyOCIioq5EE0KIeG8EEREREYXndruxYsUKFBcXK7NqXC4X7rrrLsyaNctSWZZezhUsPz8fCxcuVAZViouLUVpaGrINS5YsUQa0ysrKUFBQYOm9qqqqUFhYGPJ75+bmGgZ9CgoKUFZWJr1Ppby8POJgHBER0bGOgSQiIiKiTkDTtIieV1JSgrlz50rv04MzVVVVYcvY9ADV3LlzlUEd2XP04BDQugraggULwr5XdnY25s2bh/z8fJSVlaGwsNDUc4qLi6VLJ8uCXTLhgmZERETEQBIRERERdQF66dprr73mC5y5XC5kZ2cjPz8fl1xyCbOQiIiITGAgiYiIiIiIiIiITOGqbUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZAoDSUREREREREREZMr/BzeZUxBBgRZAAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJIAAAI6CAYAAAB8cmKmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAC4jAAAuIwF4pT92AAEAAElEQVR4nOy9eXwb13nv/ZsBQHAnSGq3NpLWYlmWLVJy3DZt04hs0ja5TRrSSZr23t68MZm425smJq3ktrdpbyOT7nLT99YJqaRJ07SJRGaps9zYpOw6q22J1GJZO0FqF0mRBHdimTnvHxCGWM4ZDNbB8nz90cfEzMHMAQ7mzMxvfs/zSIwxBoIgCIIgCIIgCIIgCIKIgmx2BwiCIAiCIAiCIAiCIIjsgIQkgiAIgiAIgiAIgiAIwhAkJBEEQRAEQRAEQRAEQRCGICGJIAiCIAiCIAiCIAiCMAQJSQRBEARBEARBEARBEIQhSEgiCIIgCIIgCIIgCIIgDEFCEkEQBEEQBEEQBEEQBGEIEpIIgiAIgiAIgiAIgiAIQ5CQRBAEQRAEQRAEQRAEQRiChCSCIAiCIAiCIAiCIAjCECQkEQRBEARBEARBEARBEIYgIYkgCIIgCIIgCIIgCIIwBAlJBEEQBEEQBEEQBEEQhCFISCIIgiAIgiAIgiAIgiAMQUISQRAEQRAEQRAEQRAEYQgSkgiCIAiCIAiCIAiCIAhDkJBEEARBEARBEARBEARBGIKEJIIgCIIgCIIgCIIgCMIQJCQRBEEQBEEQBEEQBEEQhiAhiSAIgiAIgiAIgiAIgjAECUkEQRAEQRAEQRAEQRCEIUhIIgiCIAiCIAiCIAiCIAxBQhJBEARBEARBEARBEARhCBKSCIIgCIIgCIIgCIIgCEOQkEQQBEEQBEEQBEEQBEEYgoQkgiAIgiAIgiAIgiAIwhAkJBEEQRAEQRAEQRAEQRCGsJrdAYJIFy6XC6+88or2etOmTbDb7Sb2iCAIgiAIgiAIgiBiw+124/r169rrX/3VX4XD4Ujb/klIIvKGV155Be95z3vM7gZBEARBEARBEARBJI3vfOc7+O3f/u207Y9C2wiCIAiCIAiCIAiCIAhDkJCUJ/T09KChoSEl2x4YGEBLSwvq6upQWVmJuro6tLW1wel0pmR/BEEQBEEQBEEQBEGYA4W25Tg9PT3o6OiAy+VKScxkS0sL+vr60N7ejt7eXgCA0+lEU1MTenp60Nvbi+bm5qTvNx42bdoU8vo73/kO7r//fpN6QxAEQRAEQRAEQRCxc+XKlZC0LeH3uqmGhKQcJSDinDhxAi6XKyX7CIhIra2t6Ozs1JbX1tZicHAQlZWVaGlpQX9/PxobG1PSh1gIT6x9//3348EHHzSpNwRBEARBEARBEASROOkuIkWhbTmI0+lEY2Mj+vv7MTIykpJ99PT0oK+vDwBCRKQADocD7e3tAPyCE5G7MMbg9Xrh9XrBGDO7O0SKofHOH2is8wsa7/yBxjq/oPHOH2is8wuzx5iEpByktrYWtbW1AJCyEoAB8aixsVG4j7a2NgCAy+VCV1dXSvpBmI+qqhgcHMTg4CBUVTW7O0SKofHOH2is8wsa7/yBxjq/oPHOH2is8wuzx5iEpDwg2WLSwMCAlki7qalJ2K62tlbbd3d3d1L7QBAEQRAEQRAEQRBE+iEhiYiZQFJtAKivr9dtu2/fPgD+cLuhoaGU9osgCIIgCIIgCIIgiNRCQhIRMwMDA9rfgRA6EcHrT5w4kbI+EQRBEARBEARBEASRekhIImImENYGAFVVVbptg8PqBgcHU9UlgiAIgiAIgiAIgiDSgNXsDhDZhcvlCnkdLf9SdXW19vfU1FTS+jE+Po6JiYmY3nPlypWQ14qiQFGUkGWSJEGW5ZA2IlLVFgAsFktcbVVV1c3gn4q24f2Ltl1ZliFJErWNsy1jTDe5XvBvLZVtAfFvM119SEVbwJzjPtPnCN4+UjX3ZNoxl21t4z02FEWJGO9MOz4zoS2Q/XNE+FibfR0Ra9tMO+YyvW1gvDPtOiJX2wLmzRHBZNp1RDrbmn3MpbOtmZCQRMREsBvJCMFCU7gIlQjPPfccPvOZzyS0jbNnz2JxcTFkmcPhwM6dO7XXelUPysvLsWvXLu31qVOn4PV6uW1LS0uxe/du7fWZM2fgdru5bYuKivDwww+H9HNpaYnb1m63Y+/evdrrc+fOYX5+ntvWZrOhoaFBe33hwgXMzs5y28qyjEcffVR7fenSJeH4BV+cAH7BTk803L9/v3YyGBkZ0RUEGxoaYLPZAABXr17F2NiYsO3evXtht9sBANevX8ft27eFbffs2YPi4mIAwK1bt3Djxg1h2927d6O0tBQAcOfOHVy7dk3YdteuXSgvLwfgFztHR0eFbXfs2IHKykoAwOTkJIaHh4Vtt23bpomyU1NTuHz5srBtXV0dVq9eDcB/zF28eFHYduvWrVi3bh0AYG5uDufOnRO23bx5MzZs2ADAf8ExNzeHwcHBiAsXANi4cSM2btwIAFhaWsKZM2eE212/fj22bNkCAPB4PDh58qSw7dq1a1FTUwMA8Pl8ui7H1atXo66uDoD/RHv8+HFh26qqKmzfvl17rdc2n+aIixcvasd9+FjHMkcAwGOPPab9TXNEZs4RjLGI8Y53jlhYWMDZs2eFbWmO8GPWHBE81mfPng3Jd2nGdQRAc0SAVMwRgZLwBQUFADLjOoLmiNTMEQ888ID2+uzZs/B4PNy22XavAdAcESB4jpienha2SwckJBExkewKcET2I0mSdsHBExWI3EKSJFRVVcHj8dB45ziSJGkXTDTWuQ+Nd/4QPNZE7iNJEhwOB0pKSujYznGCr8lnZmZM7g2Rasw+niWm550icoLKykq4XC44HI6ElUuXy6U9/QCga70DgK6uLnR0dAAAmpubQyq+JcJf/uVfJuxIOn36NB588MGQZZlgTQXIbkptxW0zwbady22B7A9b0WtLc0Tut82E4yiX2wI0R5jdNtOOuWxrmwnHUS63BWiOMLttph1zqWr7xhtvYM+ePdq6s2fPRtzbphJyJBExkYgjKVpi7lh48skn0dLSEtN7rly5gve85z3aa4vFEjIp8Yi2PtPaBp9AqG1utpUkyfBvgtrG3hbIjGOZ5ghqG2/bTDiOcrktkBnHsl5bxhhcXziC2a/8B9T5RShTM6j+dCvKfve3YKn0h0QsDLyK+W8fw+KLP4VlbTWKfnEvyj/0W7A/vMNwHzLh905tY2+bCcdRLrcFMn+OSKRtJvyGqW3sbVMBCUlEzNTX12NoaAiAP2dSbW2tsG1wvHZwzGyirFmzBmvWrEna9oj4CX5KE6ySE7kJjXf+QGOdX9B45w6uf/o6pj7z+ZBlk3/5HCb/8jlue9U1B+/FUcwd+SE29P09Cvfv5rYjshM6tvMHGuv8wuzAMhKSiJjZt2+fYSEpODl3Y2NjyvtGpJ/gBITBye2I3ITGO3+gsc4vaLxzA9+du5ju/FJc72WLS3B192IdCUkpI3Cjn84bQEVRtATUe/fupWM7h6GxziwC4YapEvSoahuRdbS0tKCnpwdA9CpuJ06cAADU1tbqCk4EQRAEQRBEYsz+63fBlvmVmozgPiGupEXEh8fjwezsLObm5rC8vJz2/TPGNEFheHiYXCo5DI11ZlJYWIiysjKUl5dr1RNzAXMD64ispLGxUcuV1N/fL2zncrm0Mo6BhNsEQRAEQRBEalh8+fWE3s98+kl3CeOoqoobN25geHgYExMTpohIBEGYz/LyMiYmJjA8PIwbN26Y7iRKFiQk5QEBMScWnE4nurq6tBC2cDo7OwEAfX19wu0HXEsOhwOtra0x94EgCIIgCIIwhjq/CPfJ8wluhIo5JwNVVXHz5k3Mzc2Z3RVIkoSioiIUFRWRQyXHobHOfObm5nDz5s2cEJNISCK4NDQ0oKOjAw0NDdzwtdbWVtTX1wMADh06FLHe5XJpy3t7e1PbWYIgCIIgiDxn+cSbQMKOIhKSksGtW7cwPz9vdjcIgshA5ufncevWLbO7kTCUIynHGRgY0P4OhJoFwtJEBIekAeKE2oODg2hqakJXVxeqq6vR3t6utW9paQHgF5EoyTZBEARBEERqcQ+eE65b1fVn8F66Cs+Va/CcG4YyPsVtZ3YVoFzA4/FEOJFkWUZ5ebmWIyWdbhHGGBYXFwEAxcXF5FTJYWisMwvGmJYjbXZ2NsSFNDc3B4/Hk9U5k0hIylE6OjrgdDrR19cXsrympgaPP/44HA6HFp4WjsPhQHt7O7q6utDY2KgrBPX396Ovrw/d3d04dOgQqqqq4HA4sG/fPhw7diyqaEUQBEEQBEEkzvLgm9zlxe/4JVT89/dqrxVFwZm//yLKu74W2ZiEpISZnZ0NeS3LMjZt2oTi4mJT+hOcgNlqtZK4kMPQWGceNpsNJSUlqKiowPXr1yPEpOrqahN7lxgkJOUoIpEolvcb3UZzczOam5sT2h+RvUiShKqqKu1vIreh8c4faKzzCxrv7IYxhuUhviOpsH5XyGtJklBSXibYULJ7ln+Eu5HKy8tNE5ECWK10y5cv0FhnJsXFxSgvLw+J+pmdnU1ISDL7XE2/NIIgEkKWZWzfvt3sbhBpgsY7f6Cxzi9ovLMb39XbUCdnuOvs+0KFJFmWsWHDBozxGudAAlgzYYxFVGcrLy83qTd+JElCYWGhqX0g0gONdWYTLiQtLy+DMRa3ICTL5qa7pmTbBEEQBEEQBJHFiMLaIEko3PsAdzkXCm1LCF4lpmzOgUIQRPKw2WwRy7K5ehsJSQRBEARBEASRxbiHznOX27ZvgVxWErlCKCQlsVN5CC9ZudnhJwRBZAY8B1E2Fzig0DaCIBJCURQcP34cALB//34tyR+Rm9B45w801vkFjXd2s3ySLySF50cC/GN96fIlVPDekMU3NQQfxhgWFhYAACUlJSRs5TA01vmFoiim7p8cSQRBEARBEASRpTCvD543LnHX2RsihSQAQkcSy+IwC4IgCCJ9kJBEEARBEARBEFmK57wTbNnDXcfNjwRQaBtBEASRECQkEQRBEARBEESWIgprkwoLUPBAbYxbIyWJIAiCiA4JSQRBEARBEASRpYgSbRc8tB2STZAOVaaqbQRBEET8ULJtgiCILEaZmcPSy8chV1egcN9uyEV2s7tEEARBpBH36Yvc5cKwNgCAQEhSSUgiCIIgokNCEkEQRJay+MoJ3Pm9Di03RsGD92Pd156BbeNak3tGEARBpAPGGLyjN7nr7A9vF79PaEgiIYkgCIKIDoW2EQSREJIkweFwwOFwUJnRNMK8Pox9+M9DEqx63ryCqUNfTOl+abzzBxrr/ILGOztRp2fBFpa462w1G7nLJUlCaWkpf4MkJOUkFosFFovF7G4QaYDGOn8w+1xNQhJBEAkhyzJ27tyJnTt3QpZpSkkX7lMXoM7ORyyfP/pDMEVJ2X5pvPMHGuv8gsY7O/FdvyNcZ920jrtclmVs2ryZ/yYSknIOSZJQVFSEoqIi028885mBgQFUVlamdB/JHuuenh5UVlaioaEBTqczCT3MHgYGBjL+c5t9rqYrBYIgiCxkWZBcFQDm/+NlCk8gCILIA7wiIanABsuaKvEbRTcgdOogiJTQ2dkJl8uFvr4+s7timLa2NrhcLgwNDaGzs9Ps7qSFgIDU1NSEoaEhs7uT0ZCQRBAEkYVYdW4Qxts+g7sd/wCmqmnsEUEQBJFufDf4QpLtvrWQ9J5Wi8wKdN4giKTjdDoxMDAAADh06JDJvYkPh8NhdhdSytDQEJqamkhAigESkgiCSAhFUfD666/j9ddfh5LCkCoiFMlu010/++VvY/nVM0nfL413/kBjnV/QeGcnvmt8Icm6mR/WBvjH+sJFfqU3Cm3LPRhjWFhYwMLCArmVTaK7u1v7e2hoKGVCRaxj3dPTo7u+v78fjY2NaG5uxsGDB5PVzYyjq6sLAwMD6OzsRGtrq9ndMYzZ52oSkgiCSBhVVaHSU8y0wpTo3/fisVdTsm8a7/yBxjq/oPHOPrwCR5I1SvVOEhTyC8YYjbmJhAs2qXQlGR3rrq4u9Pb26rZpbGxEf38/ent7c9qR1N7ejvb2dtTX16Ojo8Ps7mQNJCQRBEFkIwaEJGV8Kg0dIQiCIMxC6EgSJNrW0EnES4IDQSSPnp4euFwu1NfXa8v6+vpMTeI8NDREgomA2tpas7uQNZCQRBAEkYUYyX+kTM2koScEQRCEWYiqttkSEJIoTxJBJI/Ozk7U1tZGuH+Cw93SicvlwoEDB0zZN5FbkJBEEASRjRiIi1amZ9PQEYIgCMIMlJk5qLPz3HXWjdGEJJ115EgiiKQwMDAAp9OJjo4O1NbWorGxUVvX1dWV9v64XC40NDTA5XKlfd9E7mE1uwMEQRBE7BjJkaROulLfEYIgCMIUfDfHheuihbYxPSWJdKS0w3w++G5NpGbbjEFZWgIAeIuKIOm50bIc64bVkKyZc3sbcB0FEjh3dHRo1dsAf9hbIsmdu7q6cOTIETidTi187uGHH8bHP/5x7N69O6Tt0NAQDhw4ECIiDQwMhPwe2tvb0dnZGfK+gYEBdHd3o6qqKqqLyul0oru7WxPQXC4XHA4H9u3bh5aWFkOfdWhoCEeOHEFPTw+mp6cB+AWwjo4OHD16VPucbW1tWZUYOxfJnCONIAiCMI6RHEkU2kYQBJGzKLfv8ldIEqzrVum/WdYTkkhJSje+WxO41vC42d3IejYPHoVt83qzuwHAL3709fWFiB2NjY2ora3V8iPFWyWsr68PTzzxBGpra9HW1qY5nTo6OvDlL38ZX/7yl/HUU0+FuJ5qa2tx7NgxHDlyRFteX1+Pw4cPh7QB/OJRb2+vJtwAQHNzs26fOjo60NXVhdraWnR2dmo5ofr6+nDo0CEMDAygo6MDvb29Ic4swC9AdXZ2huwvwMDAAFpaWkKWDw0Noa2tDYODg6aFCBIU2kYQRIJIkoTy8nKUl5fn9FOujEONHtqmzsyD+XxJ3S2Nd/5AY51f0HhnH77bfAeLZXUlJJv4WbEkSSgpKRGuN5KDjyAIfQKV2cKTWre1tWl/O51O9PX1xbTdjo4OtLS04PHHH8fg4CBaW1tRW1uL2trakOpwzz77bMhrh8OB+vp61NXVacuqqqpQX1+v/XM4HHA6nRgaGkJdXZ3hELiWlhZ0dXWhvr4ew8PDaG5u1vrU3t6OwcFBOBwOuFwuNDU1RXzmqqoqtLW14fHHQ8XUnp4etLS0oLOzE9PT0xgeHkZ7e3vIejOTlpuN2edqEpIIgkgIWZaxa9cu7Nq1C7JMU0q6MBLaBsaguuaSul8a7/whX8ea+XxYfOUEpv/x37D48utgBvKR5QL5Ot7ZjG+M70iyrl+t+z5ZllGjV5mIDEkEkTA9PT2aAymYcAdSQHAyus2A64fnxKmsrAxx+4Qn+DZCQPxpb2835Jbq6urShKFgd1P4NoP70tLSEiIABUSu8LC67u5ujIyMoLW1FQ6HQ3M7BX/GfHYkmX2upisFgiCIbMSIkARKuE0QscC8Pox99K9xu/njmPrrL+D245/AWOtnwDxes7tGEBGIQtssUYQkAJRsmyBSSE9Pj5bXJxyHwxEi0AwNDWFoaCjqNl0ul+ZmChdcggleFwgvi5dg95KoT4HPGHA1iQgX1YKdWQEcDkfI62PHjkUsA/xCVIB8diSZDQlJBEEQWYghRxIAZZLyJBGEURb+74+x8B8vhS57/mUsvPBTk3pEEGJEoW3WddXR36wXEkFCEkEkRHd3d0SVtmDCBSYjrqTgMDW9fEX19fVgjGF6elpXcEoGwX3at29f1PbB4tHAwEDc1eOqqqq0v0lIMg8SkgiCSAhFUTA4OIjBwUEoeRICkhEYzGGhTidXSKLxzh/ycaxnvvQt7nLX//fvae5J+snH8c52lPEp7nLrOn1HkqIouHDxorgBCUkEETcBhxHPcRMgXGTq6+uLKqocOXIEQKRrJxjGGBYWFrCwsICKioqY+h0P/f392t/R3EtApAAWXMEuFvS+g3zC7HM1VW0jCCJhvF4K+0g7BoWkVDiSaLzzh3wb6+WfneIud588n96OmES+jXe2o84vcpfLleVR3+vTuwEhISntWDesxubBoynZNmMMS0tLAICioiLTE/SmEusGA2GdKSbgLhoeHuaGtum9T89BFAh/C3bj8GBpPH6D3UCTk5NR24fniyI3UXZDQhJBEEQWYjQBsDJFoW0EQRC5iLq4zF0uFRcmtN103ogSfiSrNWVl6xlj8CwsAABsJSU5LSSZjcvl0hJPB4d9GaGnp8dQKFomiS9TUyuuyEzqF5EeKLSNIAgiGzGYIynZoW0EQRBEZsAWl7jLZSNCEuVIIoikE3AjDQ4OgjEW9V9w0m2Xy2VYfIo3t1CyiSdXUbAriULUshsSkgiCILIRSrZNEASR16gLAiGppDjqe5msJyTF2yOCyG96enpQW1truFpaeOib0eTYR4+mJgwyVoI/p1EhKbidkQTdROZCQhJBEEQWwozmSJqeTXFPCIIgiHTDPF7A6+OuSzS0zWgOPoIgVujp6YHL5YopL1J40m2n0ylMQB3czug+2traUhpy1tTUpP3tcrliSp7tcDgMC25EZkJCEkEQRDZiMEeSOulKbT8IgiCItCPKjwRQaBtBmEHATfT444/H9D6jrqTgKnAul0u3KhwAdHV1YWpqKiLBdXA4WnCOo3hobW0NCU/r7u7WbR8sNB08eDChfRPmQ0ISQRAJIUkSSktLUVpaSgkc0wgzGtrmmkvqfmm88wca6/yCxju7EOVHAgCptEj3vZIkoVgv/I2EpJzDYrHAYrGY3Y2cpa+vD06nE83NzTHn/WlsbAx5z8DAgFahLZjm5uYQB09PTw+ampoi8iXNzc3hT//0T/HMM8/g8OHDEdsJ3lcy3ErBwldfX59u/qZA29raWrS3t8e9z1TmiMqU/FNGMPtcTUISQRAJIcsydu/ejd27d0OWaUpJGwaFJLYkfmodDzTe+QONdShGw0mzFRrv7ELfkaQvJMmyjG3btwvXk46UW0iShKKiIhQVFZl+45mrBFxF+/fvj+v9wWFrwdsLJ1wYGhgYQGVlJRoaGtDU1IR9+/Zhw4YN+Od//mccO3aMK2oF5yVyuVzo6uoC4BeVGhoaQsSlycnJkLY8WltbQ5KGHzhwgNuur68PAwMDcDgc6O/v57YxKuIEO6mSLfyEi2uZLCyZfa7O6SuFp59+Gu9///tx9epVs7tCEASRVJhqMLRN52aDIAjjMDqWiAyCCRJtAwZzJOkJCgZDpwmCAFpaWjTx4fjx43FtI1ysGBgY0ASeYOrr69Hf3x8hEA0NDWlOptraWgwODgrzDzkcDjQ3N2uvOzo6IEkS6urqcPDgwZBQuL6+vpA+iUSV7u5uzW00NDSEhoYGrf3Q0BA6OjrQ0tKC+vp6DA4ORoTbBe9D73WA3t5e7W+n05nUPFDh4Xmx5H3KN7JSSHrppZfwsY99DNu2bYPFYsGTTz7JbffMM8/A4XCgtrYWTz75JGZnKeksQRA5gkmOJILIV0QVsgjCDPR+j9EcSQB0haSrD70Xd//HP4L5+Mm8ifhgjEFddoOR5Ssn6OvrQ2VlZYjYElgWnIRahMvlQlNTEyorK7liRUdHB+rq6iLWNTY2YmRkBO3t7ZpY5HA40NjYiM7OTgwPD0dNYt3b26uF4QXeOzg4iObmZgwNDaGlpQWVlZURAk1NTQ1aWlq4/W1vb8f09LQWshbYRkBo6+/vF4pIQ0NDaGpqQktLS8jylpYWNDU1ad9xT08P9ztpaGiIeG8s9PX1oa2tDXV1dejp6QlZ19HRgYaGBrS1tUWsy3cklkWz2UsvvYSOjg4tbjTQ9ba2Nnz+858Xvq+vrw+PP/44qqqqcOzYMTz88MNp6S+RWbz55pvYvXu39vrs2bN48MEHTexRbqAoCs6cOQMA2LNnD8Xgp4m7n/ocZg73RW8IoHbsFUhJsr/SeOcP+TjWw6t/Wbhu82tfh612Yxp7k17ycbyzmYWBV3Hng09Friiwoe7mS7rvVRQFZ7/fj9L/529025X/9/dgddcnEulm3uHz+XD58uWQZdu2bYM0uwDfzTEwRYVkkWG9by0sVRVp6RNjDEtLfuGRwttyGxrrzEY0P1it1ri2d+bMmRBdI933tlnjSDp48CCampowNDQExpgmIhk5QJqbm3H06FFMTU2hoaEBp0+fTnV3CSKvcLvdcLvdZncjrzCabBsA2FJyx4bGO3+gsV4hHxxJNN7Zgyi0zVDFNgAerzdqm/m+fnIlJQF1aRnea7e18zZTVHiv3U7rnKKqKtQcz/NG+KGxJtJFVghJzz77LDo7O0PEo8A/ozQ3N+Opp56CqqpoaGjA3FxyKxkRBEGkFYM5kgDKk0QQRoh2w5wPQhKRPaiCqm1yiYGwNgDMwDW0OrcA95lLMfWLiESdXeAuV1yUcoMgiOwl44WkmZkZLQmYJEmaGynYlWSUT33qUwD8tr9E4igJgiBMRzU+/1GeJIKIDnPrOzTUKVd6OkIQBhAlf5eM5EcCAKPPYmM415gJ83jhvTGWkfmHlPEp/vKJ6TT3hCAIInlkvJAUnNSKMYb6+np0d3djcHAQqqrGdMKoqKhAc3MzGGPo7+/HqVOnUtBjgiCI1MNiqKpD1aYIgs/iy6/j5n/5I4w+9F7c/r2nddt6r4+lqVcEER11ju9yMepI0q3alkUwVcXUs1/GSO07cW1vM67Vt2D59TfM7hZBEETOE19mpzRy5MgR7e/+/n4cOHAgoe0FZ4o/cuQIHnnkkYS2RxAEkW58t8Yx92/fN9xeJUcSQUSw9NoZ3P7ddsDnF2WVO3d12/tu3ElHtwjCEKJwKbmi1OAWDApJGa43zfe+iOmuf9Ze+26M4VbLJ7DlzDdhqSgzsWcEQRC5TcY7kpxOJyRJQnd3d8IiEgBUV1drf/NKFxIEQWQy3pGbuPGOtpjeQ44kgohk9l/+QxORjOAjRxKRQaiz89zlclmJsQ3IRoWkzFaSZv/1uxHL2OISFp5/2YTeEARB5A8ZLyS5XC4AwEc+8pGkbG94eBiAP0zO6XQmZZsEke8UFRWhqMignZ5ICNf/+feozolwkp1sm8Y7f8jlsZ7vfTGm9vngSMrl8c41hEKSQUdSYaGx6m6ZLCQxRcHya2e46+a+dSzNvclsZFmGLGf8bR+RBGisiXSR8aFtDocjxEWUKCdOnNCSdgdEKoIg4sdiseDhhx82uxt5w+xXn4/5Pcl0JNF45w801qH4bo2b3YWUQuOdXSgzAiGpPLqQZLFYsOvBXbia7E6lGe+Va8J17pPn09iTzEaSJBQXF5vdDSIN0FjnFxaLxdT9Z7xcuW/fPkxN8asdxMrJkycxNDSkvXY4HEnZLkEQRCZDOZIIIhRF4ObQfc/kTExJ7gkilQiTbRvNkWTUaZTBjiT3G5eF6yRyZBAEQaSUjJ9lGxsb4XK5MDc3l/C2nnjiiZDXwYm3CYIgchXKkUQQofhuxJHvSFWhTs8mvzMEEQfqDP+6WC4zKCQZFFqkDBaSPBdGhOvUuQX4YgwDJwiCIIyT8UJSW1sbGGMRIlAszM7O4h3veAeGhoa0sDZJkvD+978/iT0liPxEURScPn0ap0+fhkJP6zMSlkRHEo13/pDLY+27GV+YmnLXldyOZBC5PN65iKhqm8WAI0lRFJw7dy7ZXUo73sv6wXnLr7+Rpp5kNowxLC4uYnFxEYwxs7tDpBAa6/zC7HN1xgtJFRUVeOqpp9Db24snn3wy5vd/61vfQk1NDbdCW3NzczK6SBB5z9LSEpaWlszuBiEg2aFtNN75Q66Odbz5jpS700nuSWaRq+OdiySabHvJbfC8kMmOpMviHEkAsPwqPxF3PqKqKlRVNbsbRBqgsSbSRcYLSQDQ2dmJRx55BN3d3aiursbBgwfx8sv8sp6zs7M4deoUPvaxj6G6uhotLS2Ynp7WXEiB/7e3t2Pr1q3p/SAEQRAmwNxes7tAEBkFOZKIbIZ5fcKQZbmsxOBWMlcgMgLz+uAduaHbZklQ0Y0gCIJInIyv2hbgpZdeQnNzM44dO4auri50dXUB8MduHz16FAMDA5iamgqpxBaw9IXHdzc2NuLQoUNp6ztBEKnHe2MMiz/8CZjHi+IDb0HBjhqzu5QxMLfH7C4QREYRv5CU244kIjsQuZEAQK4oM7aRLE+27btzF/Dph3V4zlyCMjMHi9HvhCAIgjBMVjiSAH+IW39/P5566ikwxrR/AOByuTA8PKw5jwL/JEnSRKTAsra2NrzwwgtmfhSCIJLM8snzuPEr/w13D/5vTP7Pf8L1X/swFn7wI7O7lTGwZRKSCCIYCm0jshlRfiQAkMsNOpKyXEhSxiYNtbv79D+kuCcEQRD5SdYISQE6OzsxPT2Np556Cg6HI0RQCidYVGpsbMTg4CA+//nPp7nHBEGkmruf/sfQUsheHyae+jswihEHQI4kgggnrqptANT5xST3hCBiR9+RZLBqm1F9KAU6EmMMXucNqAlUFFXGjQlJ8339mPtWZJ7UTIESIhMEka1kTWhbMBUVFejs7ERnZydOnjyJgYEBDA8Ph4S2ORwO1NbWYv/+/WhsbERFRYW5nSYIIiWo84twHz8bsVwZn8Lyz0+j6Jf2mtCrzIJ5SEgiiACMMSi3J+J8c3L7QhDxoOgJSaXFxjZiktNoeegcxp74S/iu3QZkGRVtLaj+nx+DZLHEtB3f+JThtlOHDqP0t38t5n2kBYZsT1dFEESekpVCUjB79+7F3r10o0gQZmK3203bt94TTc/FURKSkPzQNjPHm0gvuTjW6sx8/C69HHcP5OJ45yLqjKBiW1mJYbGkwOhYJ1FwUucXcfv9n4Tqmru3QMXM54/AtmkdKp6IrZKyEoOQ5Bu9heXX3kDRLz4S0z7SAlMBpF7gkuWsC0Ih4oTGmkgXWS8kEQRhLhaLxVQxV7KJpzHmdqexJ5lLMkPbzB5vIn3k6liHhMHGSC6Hy+bqeOciotA2o/mRLBYL9jzyMEaT2CcjLP3s1IqIFMTs174bu5BkMEdSgOXjZ80TkvTEuDSI05IkobjYoFONyGporPMLi8kuy7yTLGdmZvCOd7zD7G4QBJEsdC7CKMm0H8qRRBArJJTnKLcNSUSWIBSSjOZHQmRFY52GhrcZjflv83MVec45Y84VFEtoGwC4h87F1D6Z6H6FOe5yJAgid8k7IcnpdGJgYACjo6Nmd4UgiGSgJySRgAKABDWCCIYl4Eiimz4iExBVbZPLjAtJpuRI0tknz6mkhzDZtuAJ/fLxN01MbC3+3EylOYUgiOwk74Sk7u5uAMA3v/lNk3tCELmBqqo4e/Yszp49C9WEsA+9izDm8aaxJ5lLMgU1s8ebSB+5OtaJVV7L3Zu+XB3vXESYI8mgI0lVVZw7b9Chk0TxxbphjXCd7/qdmLYlCm0reedb+e0npuA574xpH0nDZEcSYwxLS0tYWlqiKnE5Do11fmH2uTorciQlIxRtamoKTqdTq+r2jW98A5/4xCcS3i5B5DuMMczPz2t/m9AB8Spy4gBIrqBm+ngTaSNXx1qdSyS0LXe+h3BydbxzkURzJDHGML+wiCJjjY13LAqWVZXCdd7rd2Dfs93QdhhjwtC2knf/KhZe+AngUyLWLf3oBOy76ox1NplIEoQidJqONUWJ/D6I3ITGOn8w+1ydFUJSf3+/8VhuAeFf9NDQEGZnZ1FeXp7QdgmCMBkdNZ4cSX5IUCOIFRJJtp3DhiQiixALSWXGN2L0ujqpv3nxxnzXbhneiuqaA7w+7jpb7UYU7tuN5VdPR6zznB8xvI/kYm6ybYIgiFSQN6FtkiSF/AOAw4cPm9wrgiBSCVumqm0AoFKuKILQSCzZNt30EeajiELbDDqSAOiHW6UKnVB09+lLhjejV7HNurYa9t33x/y+lKL3XVOOJIIgspSsEpIYYwn9C9/GF77wBZM/EUEQCZNnjiSp2FAwQgjMTYIaQQRQ5+N3JJltIycIQJyY2lIZg8vesCMpeb95pnO+Xn79DcPb8YkSbcMfPmdZW81/XwYKSTSnEASRrWRFaBvgn2ibm5uxf/9+OBwOw+9zuVyYnJzEwMAATp48ib6+Puzduzd1HSUIIr3kWdU2yWaJOdKAQtsIYgXKkURkO6prlrtcroghtM0oyfzNK2IhyXf9Dnxjk7AKRKCQzdy+y10uV1VAKrAJhSTTHEl6XyE5kgiCyFKyRkjq6enBRz7ykYS20dbWhieeeAJDQ0PYsmVLknpGEISZ6F3jqrkooMRx0ZmLghpBxAuj0DYiy1GmRY6kGIQkOf2OJD0HMQB4zg0bEpI8l69ylweqwlnXCISku9NgPh8kawbd/lCFxLxhYGAALS0tmJ6eNrsrhunp6UFHRwdqa2vR29uL2tpas7uUMpxOJ7q7u9HX1wen01/hsb6+Ho2Njejs7DS5d5lJVoS2SZKUsIgEAN3d3VBVFQ0NDZid5T/NIQgidmw2G2w2mzk7z7PQtrhs8D4FLIlVPEwd73u4zw1j7A//Brce/wRc//T1xBIoE0IyYayTDSXbFpOL451rMI8XbHGJuy4WR5LNVpCsLhknyoMQz7lhQ5vxXBrlLi/Y7n9ILHIkgTEod12G9pFUdB1J6RGSgnPEEubQ2dkJl8uFvr6+lO4nmWPd1tYGl8uFoaGhnBZTOjo6UFdXh66uLk1EAvzFubq6ulBZWYmBgQETe5iZZIWQVFFRkbRtHT58GFNTU2htbU3aNgkin7FYLGhoaEBDQwMsFkv6O5BnoW3xPh1m7uSIaqaPNwD3mUu40fgRzB/9IZZefh2Tf/kcrr/9w/COGq/6Q0QnE8Y6FVCybT65Ot65hiLIjwQAssEcSRaLBfX7GpLVJcPo5UgC/A8IjOC9OMpdXrB9KwAdIQlmhbfpXKekIbRNkiSUlJSgpKSExCSTcDqdmhBx6NChlO0nlWMdS2qZbKKtrQ1dXV0A/J+R57pyuVxoamrC0NBQuruni9nn6qwQkkZGkleus6mpCQDQ29uLl156KWnbJQjCJHQuwnJTSIrzbTn0Xdz99D9GlH72jd7CxCe6TOoRkU1QjiQimxHlRwIAiyOG0DaDN5lJTQYdRUjyjtyMugnm9ggfGth2bAUAWKorAMENlm/ChLCiFDiSmE+BMjUD3527UGbmoop0hLl0d3drfw8NDWWMINHT06O7vr+/H42NjWhubsbBgwfT1Kv0MTAwgJ6eHjQ3N2N6ehrT09MYHh4GYwyDg4Oor68PaX/gwAGTepqZZIWQlExHUkVFhaaoRjt4CILIAvLNkRSnkpQr34Xn4giWXz3NXbf0o0F4hq+luUdEtpFYaBsJSYS5iCq2AYDsMF61zbBbIalCkv622HL0CqPea7eF4kvBts0AAEmW/WISB2ViKuo+ko9eMsfYBSBldh6e88PwXrsN35278I7chPfSVag5GM6fK4Tfc6bSlWSUrq4u9Pb26rZpbGxEf38/ent7c9KR1NLSgubmZu7nq6+vx+DgIJqbm7VlLpeL9IMgskJISjYulwuAX2Ul0svQ0BDFmOYYqqri3LlzOHfuHFQTnogxppMjKUnhXBmFzkV9wZ7t4rclSUgye7yXfjSou37ua99LU09yH7PHOlWoC/E7knJZR8rV8c41FIEjSbIXQCqyG9pGYKyZETEpiT/6qLn6fNFz+XmdN/grJAnWLRu0l5bVVdxmyt3MciTF6iRiHi98o7fAwirgqctu+ASOLsYYlpaWsLS0lFyHGWGInp4euFyuEHdLcELnZGJ0rIeGhtDR0ZH0/WcTgfvRaGLa4cOHQ0SmaO3Tidnn6rwTkp599lkA/gMtICjlA4FKAXV1daisrERdXR3a2tqSPol1dXVpSd54/xoaGrBv376k7pMwF8YYZmdnMTs7a84Fit4FWo64cEIQfMeFjz6EdYc/I36fTtnl2HZv7nj7ouS3mPnKf0BdXE5Tb3Ibs8c6VSSWmD13vodwcnW8cw1Rsmi5otSwyygw1kh3upxojiQDjhqv8zp3uXXjWsiFK0KaZXUlt51iRmibriPJ+LHGGIP32m2h+KQuLUMVuLoURYGSxKIbhHE6Ozu1qmfBBIe7JZNoY+1yuShEC35ByEi4nsPhQGNjo/Z6asoMVyMfs8/VeSUkHT58GB0dHdqJNjzuMVdpaWlBU1MTamtrMTw8jOnpafT392NgYAB1dXVJrR4QzarZ2tqak9ZIwkR01PicrOQlOGc4Pv5fIRUXit+WIw6DaKEPbH4Ry4Nvpqk3RDZCOZKIbEbkyNFLMC0mvY4k6DiIAYD5fLrrAXEeJVvtxpDXYiEp/TeBul9hDOdm1TUXtVhATjqxs5iBgQE4nU50dHSgtrY2RJAIJHhOJy6XCw0NDXllphDR0NCA9vZ2Q23379+v/V1VxXc75iNWsztghHe84x0Jb+PEiRPaQcMYgyRJeeGMaWlpQV9fH1pbW0PKNtbW1mJwcBCVlZVoaWnRkqklQsC6qVcRL99tlEQK0MuRNL8IdXEZso7Akm2Inj5IkiRMLgrAUMhANsCWoufQMKcqD5ENMLcHSCSPCAlJRArwXLmGqWe+BPep87A/tB2Vn/wD2B+8n9vWe4XvyCm4f3PsO5YlIJqOkUwdKYozlnkMCEkCIS1SSBKFtrmi7iOdBB7y+HwqbtwQJ1IHAO+tCagu/QdkVjYFS2Xo98gYw+KiX4AqLvbmdOW2jRvLYbVmjk8i4DoK3Bt1dHSEpPjo6elJqJJ4V1cXjhw5AqfTqYXPPfzww/j4xz+O3bt3h7QdGhrCgQMHQkSkgYGBkN9De3t7yP1ioE13dzeqqqqiuqicTie6u7s1Ac3lcsHhcGDfvn1oaWkx9FmHhoZw5MgR9PT0YHra7yB0uVzo6OjA0aNHtc/Z1taW0HcX73vzxYhihKwQkvr7+xOe9AI3X5IkaX/nuqjR09OjuY3CJwXAb9Vrb29HV1cXWlpatIM1Xjo7O7kTEEGklCgXuZ7zwyhseDA9fUkHohtZCZCsYiGJ5YiQJLLth7RZWEpDT4hsRO9p/n3ffw6q2wPZXoDZrz6PuSM/jGxEOhKRZHy3J3Drt/8YyrjfKeO7ehtLPzuFjS/0wLZ1Q0R7UUEBWzxCkhHSWLUNRhxJIiGp5r6Q15ZVDm47U5JtMyaukncvtO3GjVnU1HwujZ3KTUZG/hRbtzrM7gYAv/gReJgfoLGxEbW1tVpqkc7OzrgEjb6+PjzxxBOora1FW1ubZgbo6OjAl7/8ZXz5y1/GU089FeJ6qq2txbFjx3DkyBFteX19PQ4fPhzSBvCLR729vZpwAyAk6TSPjo4OdHV1oba2Fp2dnZrg0tfXh0OHDmFgYAAdHR3o7e2NMC84nU50dnaG7C9AID1L8PKhoSG0tbVhcHAwZSGCwQwPD2t/v//970/5/rKFzJFsU0wgR09ARHrmmWewdetWczuVYgKCTmNjozCcrK2tDYB/skvEYhlIGpeLpSGJzCZayJb7jctp6kmaEApJEmDRmdJzJDeCEUcSWyQhieCjF9ZmWVuN4l9uQOGjDwE2wXM2ciQRSWbhBz/WRKQA6tQM5p9/OaItU1VhQuW4hKQ0J9tONEeSuuyG78YYd52tdlPIa6EjyZQcSTokKX8hkXkE0n2EGxcC916AX0CJNcVIR0cHWlpa8Pjjj2NwcBCtra2ora1FbW1tSEWxZ599NuS1w+FAfX096urqtGVVVVWor6/X/jkcDjidTgwNDaGurs5wCFxLSwu6urpQX1+P4eFhNDc3a31qb2/H4OAgHA4HXC4XmpqaIj5zVVUV2tra8Pjjj4cs7+npQUtLCzo7OzE9PY3h4eGQcLSenp6UJC0PJ+Aiq62tJUdSEFklJDHGEv5XW1uL/v5+PPXUU2Z/nJQSsBQCQFNTk7BdbW2tJjIlougeOnQItbW1OHr0KIaGhuLeDkHETJSLXNFFZ9Yi+riSBEkntC1qtZwsYP67/4mF7/5n1HaUbJsQoedIkkuLV16IbrBJSCKSzN2n/4G7fOqvvxCxTJ1dEBaR4LmXopLmCKeooW1e/fOU79pt4TEYEdq2SpAjaXIms3IGZlJfiKTS09OjOZCCCXcgRcsvG77NgOuHd9/mcDjwa7/2a9rreCqMBcSf9vZ2Q26prq4uTRgKdjeFbzO4Ly0tLSECUEDkCo9q6e7uxsjIiJZjN+B2CnY0pdqRNDQ0pPU1He6nbCIrQtsAv4gUUDerq2NPKBhQEGtqalLQu8wj+GCNppzu27dPE56GhoZiVloHBgY08ShYZW9ubg6xWxK5iyybqElHecIZ/qQ36xHdyMrRHEnJu1g1Y7xn//V5TPzZs4basgUSkpKFqcd2CtBLwB8sJAnD6XNcSMq18c411KkZ4TpLtSOmbcmybMiRlNSqQNGSbXv1HUneYX5+KMgybJvXhyyyCpJtQ1GgTs/G/H3FDWPQU+wyStQikkYgbywvjYrD4UBra6vmFhoaGjJ0/+VyubT7LL00In/913+Nt771rQASz+cT7F4S9SnwGQOuJhHhYX1tbW3o7+8PaRMeQXPs2DFuVE1LS4vmEkq1IykgHjU3N9M9bRhZIyQNDAzg7W9/u9ndyBqCE7mFK+HhBK8/ceJEzJOOaDLr6+tDX18f6uvr0dvbG7UfRHZisVjw6KOPmteBKBe5puRDSCWii05JSkuOJLPGe/pzXzPclnIkJQfTj+0UIHIkSfYCSPaCoAX8G79c1pFycbxzDUVPSKqqMLydwFg7LVYwREk+n8zffLQHGl6fVhCHh+fSVe5y66a1occvxFXbAH94W9qEpGiQkJSTdHd3R1RpC6ajoyMk7OzQoUNR3UPB7UX5iiRJwi/90i+BMaYluk4lwX0yUsSqra1NE54GBgbi7mNw5bRUCklDQ0Po6elBbW2t0G1lJha9IjtpICsePTkcDhKRYiT4oIpWpjD4AB4cHIx5X729vejv70d3dzeam5sjJoShoSE0NDSkJYaVyEOihbblmiNJQNSqbVkc2qa45uC7ettwe8qRRIhQ5/mOJKm0KGyBYAO5rCQRGY9QSLJZIQWHZhrFSGhbEn/zhtw3OucqkZBUsG1LxDJRaBsAKHczJ08S8ynJdX0RphNwGAVHaYQTLjL19fVFzUd05MgRAJGuHRGpFpEAhDiKormXgEgBLNj4EAvp+GwA8MQTT8DhcKC/vz9t+8wmssKRRFXAYiN8Ior2ww8OFZyaiv2m2+FwaJNhIJY2kKE/EPLmcrnQ0NCQcGW4AOPj45iYmIjpPVeuXAl5rSgKlLALFkmSQqz94evT0RYIVZhjaauqqu4FSSa0lWVZe9qYjLZKlCovysRUxHeY7D6kq61eG0VVoaoqIMvcJ5yK16v7e2eM+d8vwMy2iiAniAhlYQmqqsbVB8Cc457miBVSeRyxZf5vSSosDPseBY4kVc34+SSTj+VcaAsk97jXI/i9kiRBneaXh7dUlkf039AcYSC0TQ27VkrouDcQYs08PjBZ5m7Xc1ngSLp/c+RntMiQK0qhzsxHbmfsLgo430kyjk9FWRGGJEkyZOhiXh/uu68MTuefaO8DQsMKmccrDu0Lo2BnDXdsedsVka1t77uvLGr7VPchkPPoypUrIYmheW2D+exnP8u95w20DdxTVVVVCfsTvF1RG97yeNsGmwTu3r0b4SgMf394ipng94v2FXw8idry3pvoOHd0dGBoaAgnTpxATU1NRD/i2W7IMR00Z1gslrjnHjPJCiHpiSeeMLsLWUWszp9goclodv5oNDc3o7m5GV1dXZqFMRBHmwxh8LnnnsNnPvOZhLZx9uxZLC6Ghjk4HA7s3LlTez04OCg8SMvLy7Fr1y7t9alTp+AVxPeXlpZi9+7d2uszZ87A7eZXnyoqKsLDDz8c0s+lJb7Dwm63Y+/evdrrc+fOYX4+8qIJAGw2GxoaGrTXFy5cwOws/6JUluWQEIdLly7p/jYCv6Ht27fjypUruoLk/v37tYvLkZERXUGwoaEBNpsNAHD16lWMjUUmzrZeug7xc0e/I+n4a6/5BZZ77NmzB8XF/qe3t27dwo0b/HLCALB7926UlpYCAO7cuYNr1/illwFg165dKC8vB+AXO0dHR4Vtd+zYgcpKf88nJydDSouGs23bNr/gq3NiuXjxIrwFPqy28IWki+fOw1sU+v6tW7di3bp1AIC5uTmcO3dOuP3Nmzdjw4YNUFUVZ8+exfj4uPa9hLNx40Zs3OhPfLq0tIQzZ84It7t+/Xps2eJ/muzxeHDy5MmINtL0HFYJtxDJ9K07WBwZ0Z6OqaqK48ePC9tXVVVh+/bt2mu9tvk0R5w/fx63b9/W+hdMrHPEY489pv2d7jkiwN69e4WJit0I/Y1sEdx4T09N4WrY7yOj5gj4HwhdviyuVllXV4fVq1cD8J+XL168qK0L/DYCnyeeOQIAFhYWcPbsWWHbZM8RAdauXavdqPh8Pl2X9erVqzNijrALtxS6n9LSUmyccnHbuQttIW2NzBHz8/PYoihRQxMuXLgAr9V/3CR6HaGMjaEwyv6Yz4fhK9ci5whFRfUFJ7e/N20Mw5wxqSwtgpUjJI0OnsHSfeURy/fu3Qu73T8i169f1+Y/HnrXEYH5q6go4HTUDz9ZmpsDsxdg9WobioqKtPd7vV7tPCAtM1iWSnS3E0CpsoCFhboHBM7Ce6L58rI4l6DdbtfmVZ/PZ7itoijCcxEAFBQUoKCgIOltbTabNm6qqmJhQZwLL7gtYyziPiAYq9WKwsKVX6zedgNtXS5X1MTTIg4fPoy/+Iu/CFlmsViCfkd+nE4nty8WiwWFhYXaeIkECd61xdLSEnee8ngiz5nLy8uacBt8nF6+fBmLi4soKSnhto0Gr+3CwoL2+wq+Dgm+luKNeXAf3G43fDoPnYuLizVhxuPxwOv14jvf+Q6effZZPP/889ixY4e2fV5bEeHHssfjCTExBH7TJ0+ejPs6YnJyUtguHWRFaFsq+NjHPmZ2F1JGJlnv2tvbQzLcx1riksh8AnHYLpfLHHt2tCdPigppLkdCnfQ+a+BJjSBPkhQlKbnxLjDMzs7C6/Wmcbxj248kcJ0QscEYg9frTfNYpxaRIwm2sOMmD0PbcnG8cw1lii/aqOXGBIYAgbFmBhxJSf3NG9mWh39jZrkxDnmJL677Nq/lLlcdZdzlssDZZRo+A66CWJwHnBt3leOmJJJPwI304x//GHNzc9x/i4uLmtMmuCqay+XCP//zPxvaj96DG17ERaoIPOwAoPtgJJhgV1Im3bMGOHXqFH7/938fzz//fEgFvEzE7HN1VjiSUsHRo0fx+c9/3uxupIRoOZHCCZ6MUnFAt7a2orOzE06nE06nMy3J34ywe/duPPjggyHLwq2mwU/ewglv+8gjjxhuu2fPHoO9RIhLIRq7du0yPKns3LnTcNvt27cL2yqKotltAeD++++PaskMUFNTg61btxpqu2XLFmzevDmizbJcjDt6nQewZ+MWv9Wbs90NGzZg/fr1vLdFtF23bh3WruVfsIa3XbNmjfbUP1rb6upq3eNWa6vzve584AEU7t+DqxYLV3bZVluL4v37Q5YF/y7LysqwP2y9qK3FYoHD4UBDQwM30V9w26KiIsPbLSgo4Lb13bkLsWcsklKLFffVhI630T4AiKltLs8RO3bswNzcHAAIxzqA3hwRTrrniOC2iwJHUrHDgfuDxn3qOz/ntqusrMSOsN9HRs0R8F8DGP0NOxwOra2iKJqDJzDe8c4RJSUlhtsmY47gtbVarYbbmjlHjAjXhu5HkiRMfvn/cts5tmzEdp0+hc8RgbGW5OhC0o4dO1C0fy93XazXEeNVVRB7Ovwwn8KdI+aG/y+4z96tFjzc8m7IhZHerontP8TCm5Eu/dWKjF2c7yv4ONq0aZPmmuMhuo7w+XyaezBaSHoAu8UKS0mkGGi1WmG1+m/VFI8C/UD+FQqtBZCDthfuvLFYLCGODT1iaSvLsultJUlKSVsAhtoGEjP/0i/9kqFthifd/tznPoc//uM/jvq+73//+yEiFI+ioiJuCF3AkRXelkfAFRZMsEuroaEBIyP+WWx0dFRz6fHaBgi0B0ITdPPalpSUcL/3gEsJiP77sNvt3M/M4+zZs3j3u9+No0eP4l3vepdu22DXXDRsNhtsNht8Pp92LRXoc11dXch2YrmOCBbyzCAvhaSRkZGkhXBlIomINLGKUEYJztI/NTWVsJD05JNPoqWlJab3XLlyBe95z3u01xaLJWq2+1iy4WdC21hKN+dKW4uBbKFs0iX8HjP5s0Wgcz0q3/s9S1a+kCSpTPe3JEmS4d9a4MLEyDEU63Z5bQ09NQ9uv+QO+U5j6QOQGcdypswRRsfa9GPDYFsmcDvIhfaQzyfMXcP0j6NM+B4SOeb0xjsZx3IutAVSd3xGe68o2balqkJ3P0LB38DcapHlpJ0/jThjmcfL3e7S917hti/YVQdbCT/RuG0z/yGR78ZY1HGJ9/gMzxFj6Ozl83HnnOBliteHu2oBFpkFBRLDatkN/tkegE/Rzb8VLTcXtY2vbU9PD1wuFzo7Ow1vO5B0O7iU/bFjx7jV3oLbPf3009xk3sHCpSRJ+OhHP4qOjo6QytnRfmvRlgcva2pq0qJNXC5XRN/1vgeHwxFSKVy0LyP9Tcbv3el0orGxEYcPHxZWxQtmZmbG8P1soA8hc0PQ+Tb8wYZRYmmbCvIqtG12dhanTp2KWYDIRoIPzGg5k4LzLug9OUtWf5IhVq1ZswYPPvhgTP/uv//+hPdLZB5GnvYpuVK5TTe07d7/LYJp3UCS00yFxRiWpy7kSCgjkXTYMj80RioMe6ooujijiC/CRBRRsu2qipTtM5mhE0bmcuaN9N14nTeweOw1bvvChge5ywEdIenqraj9SCcsShiSqjI4xzy4oxZiltlwVy3AJV8p5hnfD8CiFCEhUkMgB+zjjz8e0/sCD9rDtxNOsHDkcrl0q8IBQFdXF6ampkJEJCD0PiyeIkvBtLa2hogpwelMeARXaTt48GBC+04mTqcTDQ0N6OzsNCQiDQwMhDjJ8hVThKT7779fe9qVzn+VlZVoaGgICcPJVYKtgtGEpOD1PAU8GQRPWpkQ1kbkEAYuTJWJ3BeStKcdgqes0S5UM5oYb2TYIglJBB9Rsm3JHiYk5WGOJCLzUXUcSXFhILQtqRjJ88MRkma+8h3hsVf63gPCTVk38sNDlPEpqIJ8S8nG0IwRpdGNG7NY8IQ2UiBhVCnGXTUytIaEpPTT19cHp9OJ5ubmmO9zGhsbQ94zMDDAvVdtbm4OeTDf09ODpqamiCgbl8uFP/mTP8EzzzzDTfgdvK9YCzTxCBa++vr6dKN+Am1ra2uFFe2MkMzIIpfLhaamJnR2dkYNFwT849PS0mKoba5jipB04MABLcmYGf/ygWDXVbRJ4sSJEwD8B3W4ap0sAvtIlVBF5DF55EjSnb+0ZNuCiOVsFpJiLG+qLoorzBD5jXEhSRzaRhBmIQptk+MVktKdbNvAXM5zJC3+8KfctgUP3o/Cx8T55KwCRxIA+K6LK7IllQS/voUFD8bHxZml7qiFOOsrxyVfKW4oRfAyGfBl8fk+Swm4ivTyp+kRfn8U7lIKEC4MDQwMaEaJpqYm7Nu3D5s2bcKXv/xlDAwMcEWtYLOBy+VCV1cXgBVXTvB9Y3BVMJF409raGiKqHDjAF3f7+vq0PvX393PbGBWIgp1UiYhKLpdL+8ydnZ2oq6vT/VdZWYmmpqYI8S9fMUVIClj+AnGP6f6XDwT/wEUHKwCt2hYgnrSSQSCBZzQbJkHEjIGLXN/4dBo6kgb0PqrmSOJP6yybLyxjrTjn8XJvRghCVLVNstvCFpCQRGQWjDGd0LbIUvbJ23ESN2VISArNY6bOLcA7wi+3UPH/vFf3ut66ca0wTNVzWVxeO1NgjOHqVb54GI4HMlzMhhGlGD5PFp/vs5CWlhZNfDl+/Hhc2wgXQwYGBjSBJ5j6+nr09/dHiBhDQ0Oak6mmpgY//vGPQ9xLwTgcjpDwrY6ODkiShLq6Ohw8eDDEVBBcbXtgYEAo2nR3d2tuo6GhITQ0NGjth4aG0NHRgZaWFtTX12NwcFBoXAgOfeO9DtDb26v9HSjmFCvBIlLwdvT+BT4/3c/6Mc2RFIAcSakjcEDr2QwD8Z0Oh0No0XM6nejq6hKGBBoJnevp6UFjY6OhuFMiu7BYLHjsscfw2GOPJZRUNG4MOZK4tV6yD0M5kgRjkCRHkhnjbeTmIxyVwtsSxvRjOwWIkm2TIyk3xzuXYAtLgOD3a6mMzZEUGGubkYpDSXUkxZ4jyf3mSh7PSdWGf1ioxcdm96Br4X64dorzIwH+JPoiV5L30mj0/iYFI98fv83cnAeLi/wxF+GBjLHF0GWSJKG0tBSlpaV580A9HfT19aGysjJEbAksa2pqivr+QEhVZWUlVzDp6OhAXV1dxLrGxkaMjIygvb1dE4scDgcaGxu1Ktlvfetbdce6t7dXC8MLvHdwcBDNzc0YGhpCS0sLKisrI+7xampq0NLSwu1ve3s7pqentZC1wDYCQlt/f79QRBoaGkJTU1NEHuOWlpaQhN49PT3c76ShoSHmHMjBAmAsBBKkZwJmn6tNq9rW2NioZXYPZJNPVcUwwG+Bc7lcOH78OJ5++mnMzBhT+LOZ1tZWdHd3Y2hoCIcOHYpI3uZyuXDo0CEAocpuOA0NDZoQNTw8HDIBBOec6uzsjIh3dblcmgKt54wiiHgxIg6rM/Np6Eka0BNU7j11FTqSsjjZdjyPxNniMlBRloK+ENlM4jmSktsfgjCKKKwNSHFoWzIx8kAjTEjynL0MALjkK8Hvz9Rjkq2U8e5///dw/PgTqK7mV20DgIIdW+EbvRmx3HP5qsFOpwHBvDI1Fd8DkbteCzYpKiyi4htEUmhubk7oAbleiJeR94qSchtFdO9XX1+ve1+oR7z9MnqfGB5Glwh0X5o4pglJzc3NOHbsGF588cW07K+iwn+S3bt3L2pra/GOd7wjLfs1m8HBQTQ1NaGrqwvV1dWa0ON0OjXltre3V6isBoe+Bd4nsiN2dHSgu7tbEwb7+/vR09OD1tbWhCc7ghBi4AlnXrhTtBxJgqcT+RTahjwZcyJmhKFtYVXbRE9y88nVTGQWqiCsDUgk2bYBocHkqm3e63ewzGS0zT4cIiIBwMiIC3/+5y/jued+S7i9gu1bsPhCZI4l75XrBnttDm63L24hCQAWF70oK7NHb0gQBBEnpknVTU1NpiWpyhQ7Wrro7+9Hb28v+vv7UVlZibq6OrS0tGDfvn0YGRnRVdMdDocmPjU2NkZ8d8eOHUNra6smLjmdTnR0dKCzsxPV1dUYGRkhESnHUVUVly5dwqVLl6DGEYKUMAYuclmulIM3UrVNICQly5FkynjHsR82nyNjbiKmH9spQBU4kmR72A1XHoa25eJ45xLKpIu/QpYhV5TGtK3AWPsUA7nkTE62rbrm8LWljbiu8l1HX/zikG4yalvdZu5yb7qSbcfJ+PgC1DgeogRYnF+pSscYw/LyMpaXl0kMz3ForPMLs8/VpjmSampqTP2B792717R9m0Ei9svOzk6hGORwONDd3Z1I14gshzGmVU8w5Zg2MImqOSIkGfp+RU+Yk5QjyYzxNvIUOxyq3JY4ph/bKUAY2lZgC18i2EBufA88cnG8cwnFNcddLjvKIBlxFgURGOsqlSFqho1k/hTiEJJ8rjn86/ImYXuvV8W3v30ebW37uOutm9fxu3LXBXVhCXJJUdQ+pZ7IL3l21s1pZ5ylsNxKPp//e7WHi+ZEzkFjnT+Yfa42NXg2uHRfugmUoycIIssxMIfmipCkn2w74EjiPx/I6qptcZwoGQlJBAe2zL85Cw9tE+ZIIgiTEIW2WRwJ5IIz8DtP5o2KoYcCYULST4aXcVPVF3u++c3zwnW2Tfxk2wDgu3Enen/SQdjXoqoMS0t8t9hq2Q2HFD0Bt+j9BEEQySLvsrA9++yz2LZtG+bm+E92CILILgxV9MqVcvB61+CBUBxRcs0kOZJMIR5H0sJi9EZE3kFV24hsRRU5kirL499oBibbZt7QY/RnN6Kf43/842vw3Ct5PzY2jyeeeB6PPfZFPPHE8zg3yYROXe+1DBGSwlhaEgtFDsmLKpnvrAzG7aHwVIIgUkveCUlPPfUUhoeH0dDQYHZXCIJIBgZv7HIi+bIRR5KgFCjLaiFJfEEsCcISKLSN4GG8ahsJSURmobhEjqQUC0lJzZEUe7Ltq+Ic4xrLyz6cOnUHIyPT2Lu3G1/84km89tpNfPGLJ7HvsX/Gj4pruO/zXU+DkBTH1ydyE8lgsEsqiiUFRZL+Od2nMihZXa2VIIhMJ++EJMCf12d4eBif+tSnzO4KQRAJY+wqLScSbusKSff+L6rals0XlDqfWy7lJ2Cl0DaCh9GqbSQkEZmGKLRNrkxtaJvZybavLxq7VfnpT6/hgx/8Jm7fng9Z7vOp+KPrW3BHicwXo4xNGtp2ygn7igPuqnAKsPL9bZSXYIly/eN254ATmyCIjMW0ZNuJMDo6CpfLFVOOpUD7/v5+rZx9d3c3PvvZz6aolwRBpAWDYU85kSfJkCOJf9GdzTmS9HJ0yKXF3JsBCm0jeIiTbYcKSZJASCIdiTALUbJtkSNpacmL7373EiYmFrB79xrs27cBJSUGBdMQkpkjyYCQ5F4J62KKghveAp3WK/zZn70oXLeoyPjC0lb8ZenFkOW+sbuGtp16Qr9jr5d/vrZJK+3skoqd5T64VBtuznObY3lZQTH/WQtBEETCZI2QNDo6iu7ubvT09GhCULxIkgTGWMLbIQgiAzAa2pYnQhIEoW3ZnSNJfPMhl5Vwl5MjieAhFJKMJtsmJYkwCaEjiZNs++pVF97yli9ibGwhZPnXv/4+fOADu7XXzFBoW2z91MVIaFvQQ4ClcRfG1eRUnvquex3+vOQiLEEfOT2OpNi/QK+Xf86zInS5xWrBKrsVd+c9cHOCTMiRRBBEKskKIenkyZNobGyEy+VKSvUISZIgSRJqa2uT0DuCyG9kWcb+/fu1v9ON0dLwuRDapq8jRXEkJSm0zZTx1hljSRDaRjmSEsfsYzsVBLsdgpEKbGEL8i+0LRfHO5cQ5UiSwxxJjDG8//19ESISAHzwg9+EqjJ88IO7sX//ftwoKkJapQYDjiR1bqXf1y6MgSWphOIMs+ENXzkesa18j77xNFSPjqNYhBFHEgBIVgskmwUFkgo34wlJK9spKeE/dCFyDxrr/MHsc3VWXCkcOHBAcw+F280DolA0gtsxxsAYQ2dnZ9L7ShD5hiRJsFgssFgsho7FpEOOJD9ajiTB84EkhbaZMt56jiRBsu1cEA7NxvRjO8kwVRU680hIyr3xzjVEVdssYTmSXnppBK+9dlO4nSef/D5mZ93aOHuZhJ97KvHVpU045S2P/Ikn8Tdv5IGGOrsiJI2NJjf07GfeqpDXaXEkGaksG/YVG3Uk+YUkG2zgtw84kgL3QEbvmYjshcY6vzB7jDPekXT48OGQELTa2toQJ5HT6cTIyAjq6+tRVVXF2cJKO6fTiYaGBjz++ONobm5GTQ2/igNBEFmEkYs05IiwkKdV23RzJImqti25U9UdIlvx6ngvwpPUC4Wk5HWHIIzCGBPmSAp3JPX2ntPd1syMG1/4wgl0dLwVy0zGk7N78LJ3tbb+Dwqv4dMll1YOgWSKp8yIkLSS8GfqenIdQ2/6Qr8r5a4LTFGE581kwBTVwGP7le+YMSZ0JFnDJyCLBZLdBrukcucmCm0jCCKVZLyQ1NvbCwBobm7G4cOHUVFREbLe5XKhqqoKH/jAB/DJT35Sd1s9PT04ePAg2traUF6eQLlUgiA0VFXFyMgIAKCmpib9NkuD17jqvLHky4wxuIf8F+IFO2uFQoUp6F3QB753QWhbsnIkmTLeeqFthYL8GR5+Lpx8hzGGr3/9LH74wyv43vcuYdOmCvzGb9yPD394L7Zvrw5pa/qxnWTCq0EFI9nCLofyMEdSro13LsEWlwEPPyzTUhl6PXvyZPSS9t/4xlk0N6/HkTslISISAHxleTN+0z6GetvMvZ0ns2pb9G0FO5Imb7mSt28AF31hIT+KAnV6FpZVlUndTwDmi13IURRV+JVzQ9sKbCHV3ILxeFSoKoMkAW63/+GK3W433cVApA7GGI11HqEafJieKjL+KuHEiRNoamrC0aNHI0QkAHA4HHjf+96H7u7uqNtqbW1FTU0NGhsbU9FVgshLGGOYmJjAxMREUnKYxdEBQ82Cn3KK8I1P4UbjR3DznR/FzXd+FNff9gdYPnk+0R4mDwOhbVK4syLw1iSFtpky3jonSpGQxAQ3XfkMYwyf/OSL+NCHvoV//dczmJ5expkzY+js/Cl+8Re/hLNnxyPam3psJxm9Y0AKDwnNw9C2XBvvXEIV5EcCADlISFJVhjffHBe2DXD69BiuXLmJb4w7uOu/vnxfzH00ghFnbPC5enKM78KKl6tqMZbCcgnpCcwJwRiYJ/Zti8LagMjQNlgtgMWCAh1Dlcfj/859Ph98cQhbRPZBY50/mH2uznghyeVyoaWlRbfNwYMHMTw8jJdffjnq9p5++mmcOHECf/d3f5esLhIEYSLMgFUeAJRJV9Q2d5/6W3jOXNJe+0Zv4eavt2L5+FnTJ2sAUW5iA1XbRI4kc59aJITO546othV4iyCpcj4zMODE3//9q9x1k5NL+Nzn+OtyBr0L6zBHkiSyJGXCPEDkHcq0WFCRK1ZyJI2MTGNhIfrcxxgwNDSFc0t8x+233RtC2iYNA44kJSjZ9tTdyIThAFBTqqJATz0RwCDhSpgrKVmFKMIJDq+O+qmDGojC2gDAGu5Iupfnym4XfxeeOMQsgiAII2S8kORwOLBv3z7dNvX19aitrUVHR0fU7TU1NQEA2tvbMTsrfsJDEESWYPAiV5mY1l3vHbmJhR/8mLvu5m9+DLff/0nzXS56gko+5kiSJEh2gZBEoW0R/O3f/lx3/SuvXE1TT8xB15EUEdrGF5JIRiLMQM+RZHGsCEkXLxpPHv3mmzPGGiY1tC22ZNtTU/zchnWrrDh48K1xdeGSUhq6IMnnRi2UyOvVvjsWw8zh8fC/Iwuvft09B7Jst0W6le4RXLmNIAhz4YWiZXP4YcYLSbW1tXA6nVHbtbe3Y3BwMKorqaKiAg6HA4A/kTdBEFmOwfjgaI6kuW++qLt+6eXXMfnZHqO9Sgn6hqR7JyJBaFtWO5JET7FlGZLdxl1FjqRQFEXFyy+P6LYR3bTlCro5kiJC20QbISmJSD+iRNtSaXGICHrnTvQQ7gAXLhh8mJrMqm2GhKSVz+Ca4RdNqKwowP/4H7+C3//9Pdz1FouEkhL+ueGiL1xISu65MZBbjHl9mkjljSokrawXOZJ4ldkCD46kAltE/qQAJCQRRObg9UZem2ZzPsKM73ltbS2OHDkStV1rayvKy8vR0tKCuTmxBXhmZkarAveNb3wjWd0kCMIsDF7k6glJjDHM9+oLSQAw80/fgC8d5YJFJFK1LUk5kkxBdPMhccq234O5yZEUzK1bc7q5NwB/eJtqIPQka4mlapvowo6EJMIE1Gm+6BOeaDsWIeniRX0hqWvhfigMaU+2zeYXwRQFyvQsJgWhbVXVxbBaZXz1q+/F669/JCTMzWKR8OyzTWhpeZD73othjiSj4fFGkSQJhYWFYF4f1HvVYheY/vk3+FsRzdPhYW3+hStCkijhNlVuI4jMITwaqrCwkBxJqaSxsRF9fX340pe+pC0ThaQdPHgQU1NTOHDggFBMeuKJJwD4bxyHhoaS32GCINKLwRtfnpDEfD4sDLyKsT/4NLzOG4a2c3X3e+C5bFIIkIFk2xCVMc5qIUnHkVQgCm0jR1IwV68aC2OZnXXDNz6FxZdfjxoOmm3oVVCKSFKfh8m2icxFEYS2yUFhbQAwNmZcSJqf1xcYepa24rML2w1vzxAGw8jU+UW4/unrmFH4xaVXb1un/b1//31YXPwUfvzj/45///ffwfnzf4iPf/wX8NBDa7jvvZRiRxIAlJWV+YWkOX+12HmmYFlPsDKQI8kW5moK5EcCAKmgAAWSqHJbFp/7CSKHWFxcjNAwsr2KPH+GziBaW1vx9NNPo7W1Fa2trdryyspKHDt2DA8//LC2rL29Hc888wwGBwexdetWtLa2Yv/+/XA4HHA6nejs7ITT6YQkSWCMaSFuBEFkL0aTYCt3XSGvPcPXMPbhP4fnXPTQ2XBuvfdPsemVr8BS7Yj5vQlhyJHEfz7A1Oy9mBSNsSRLOqFt5EgKZnTUZajdyLP/hvKer2ivy/c/gKXfeRvU3XtgKS1OTefShG5oW0SOJNFGktcfgjCKKki2He5IGhvjO3ji5Vvu9fjfvmSGthk8X09MY+bwNzHDHuauX/XAppDXFouMt751c8gykZA0weyYUm2okv0PG1KRbLu8vBy3vD6wpWWwxWWoxYW4rbpRKllQIllgg3TvPz9MVbUqW8vLXoDjLrLAByXoXChZJO09qlWGlfkARJ4Pl5c98Pl8UJSV6m3Z7IAg9GGM0VhnEKqqwuv1YnZ2FrOzsxE5ksrKygTvzA4yXkgC/JXWnn766ZBlU1NTeOKJJ/D666+HLO/p6cHjjz8Ol8uFrq6ukHXBNyOSJEVN4k0QRHRkWUZDQ4P2d9oxKCSxhSWoy27IhXYwxjDW+pm4RCQAUMYmMf23X8GqQ/9vXO+Pm0RyJCXJkWTKeItC22RZHNoWgyPp1Kk7+OQnX8SZM2PYssWBz3727WhqqounpxnL1asuQ+2uPfdN7A66MrAfPw/78fO4+blerP/3Ltgf2paaDqYDvWPAYLLtXHYkmT6XE0KEjqSK0JuQWELbjDDHbLhwbQGPJWuDBnMa3vyNj4ItLmFG5c/v1dXRRe2HHlorXHfRV4pfKJiOqU+xUFBQAOtZJzxb1sJ3axzWDWugFhdilimY5YS5SfMeSJf9IqBfSIpkFioWgoQ4ye2BdPmy/wVj8MEDIDLPnaIAly+vOFJJWMh9Ave7NNaZTVlZGQoErnqjmH2uzoorhfb2dhw4cACA/6AI/JuejrTdNzc344knntAOIsaY9i/wvgBGqrwRBKGPJEmw2Wyw2WzmnLRiyOkSqAbjuzkOz5lLCe125ivfgWf4ekLbiBkjjiSBkJSsp66mjLfwc0uQCu38txhMtj0xsYB3vONrOHZsBBMTizhx4hbe/e6v48yZsTg7m5lcu2YstM0luHFT7tzF2Ec/Y9gBmInoh7aFCkmi37aRZMHZiulzOSHEaI6kZDuSAMCazDsFg8eP6poDY8AM489HlZWFUbexdm0JVq3iC04XgvMkpcCRpC4uo+Afj8Dy5gigqvDdHIPvxhjUmTnA5xOe0/z3K/xtSuFPkoIPUUkSat/+7SLiHojIXWisM5/S0lJs2LAh4e2YPc6mCUnvf//7Y2rf39+Pp556KkQY6u7u5rbt7u7WxKRg4QlYUWlbW1vx9re/PbEPQRCE+cRwY8vm/fkKlLG7ie/Xp2Du37+f+HZiQeezaucS0dOJJJc4TitCR5Kk40jSD23zeBQMDt7CJz/Zj/Hx0Jsvt1vBn/+5fgXQbGN6etlQO9GNGwB4L12F53x8Lr5MgAlyjwC80Lb8cyQRmYs6ww9tSyRHklHsBcm7UYlFiF2CDK/gNqWqqijq+yVJEoa3veqtiqtPRvFcHIHk9aHoS8/DevoywBjY4hKUsUl4nTfgvXwV3kuj2j/fTf+Di4UFL86fn+D+c18Ke09Y4Q/fjTu4IHjv7Cy/+h1BEOmnrKwM9913n+luomRg2ifo6+vD1auxJazt7OyEqqoYHh6Gqqq6QlB3dzdefPFFPPLIIyHiU21tLXp7e/H5z38+0Y9AEAT88b8jIyMYGRmJiP1NCzFUXFHn/IIBW46eP6e05dex7t86ddssHz9reN/JQNcNEs2RlKTQNlPGW5gjSSe0TSdH0ssvj2DVqi7s23cYX/3qaW6b733vEm7fFlcAzTaM3ki4VP2I98WBV5PRHXPQcSRFhITmYY4k0+dyQogiyJEkBzmSFEWFy8UXjN/ylvvi3ndStdMYHMSisDYAqKyMLiQBwC/+4ibu8le9lfCwewd5KoSks1cAAJJPQdGXvouSv/oSCr77E8g3xvlf6L1FogprFjBYw5Nth81ZcoENVp2E2263G263O6tdpUR0GGM01hlIYWEh1qxZg7q6OmzcuDFpIpLZ52rTciQxxtDZ2Ynnnnsu5vfW1NQYatfY2IjBwUEAwMzMDCoqKmLeF0EQ+jDGMDbmf5q2efPmKK1T0QHjTdV7jiR1KcpNdYENlX/6eyjYUYPV/9CBiY/zBSXP2StgqgopbU8VdD5soA8prtpmxngLE7TKEiS7oGqb26u5UoO5cOEufuM3/g1ut/73oaoMP/vZdbzvfbvi6nOmYVhIYvrx+ks/HkTln3woGV1KO8Jk20HVjzTy0JFk+lxOCFEFOZIsjhUhaWbGLfx57t+/Aa+9djO+fccg/kQlhjAyPXekEUcSAPz6r9fhb/7mxxHLF5gVJ30VeIvNlZLQtvCHTPLdGdj7X4e9/3X/WdxeAGZbOVcX/VI91n3lf+Ho0R/h7/7utYjt7bTM4t8coZWmKz/xB3D86i9pr6e/9yo+eugizvoiq0B1dPwCDhzwf2cPPPAALKLrBCLrURQFJ0+eBEBjnQlIkgRZllMWgma2WGhqsu3u7m5MTU2hp6cn5eXvSEQiiNwkFlu6uuAXktiy+Kbadv9mVP/1H6Ngh1+wLv+9d8Gypgp3PhSZU02dW4Dv6m3YauJ/2hsTBi7oJcFFQ1bndhH1XRKHtoExv3gWFrLU3t4fVUQKcPt28sNEzMKokDSt4wIAgKX/PI7Zr/8A5R/8zWR0K62IhCTJxjtm8tCSRGQsiiBHUrAjaWoqMtFygH374s/FkcwblVjOQ6J8bYCxHEkA8Au/sBFlZQWYm4t0qP7YU4232Fwpqdq29HO+0xW4N7O4PZCCpmR5aRlWqxXnz09hbi4yv9+aghnI1tDxLVhVCWtQbjf7umoUzs9jzhspst26tQjAv9xqtZK4kMMECxY01kSqMT04r7e3F5WVlXjyyScxOjpqdncIgsg2YrjIVef9F2IiIcmyugqbf/5vKGkMrVFT9IuPCB0KngtpzBljILQN3JtiADqlzzMeXUeS+GYjPLzt1q05fO97xpOsT0wkP3GtWRgVkqZ0XABam7/uhqojxmYsotA2K+eZWh46kojMhHm8YAt8kcgSlCNJT0javz+B0DYlib/5GNxNs4z/rLu0tAA20XkuDJvNgre/nR/F8Lq30v9HkvMHKpMu+Eb57i/bti38N92bVy5fnuKu3mKJHNuCutCwPet9a1Et80O6x+/kTpg2QRCZg+lCEgAtcXZdXR0effRRfPvb3za7SwRBZAsxXOMGkm0zQWibVMJ/yimXFsO6eR13nVdwwZgSMiBHkino5kgSh2IxT+iT3b6+czHpABMTi8YbZzhGhaRJNXopWmViCu4TbybapbQjSrYdkWgb0BGSktghgjCA4hKLALIBIclikbBjRzXs9vicCUkNnVCNn4dcAlHbaFhbgMbGWu7yy0qJ/3yQZHHY67whXFf46G7u8kAXhof5QtJWS+S5yBYhJK3BKoGQNHbTWNVOgiCIWDBdSAqcoALJsE+cOIHm5mZYLBY8+eSTOHXqlLkdJAgis4kltG1eP7RNVEoeAGw1G7nLvSPpFJJ01mlCkiBiOYurtglvZCQJUqFxIemFF4Zj2m+uCEmMMW5oB48pA0ISACz9ZCh6owyDCY4B3jEjNiSRkkSkF1HFNgCwBIW2TU/zhaTKyiJYLDJ27lwV3/6TGtoWgyNJkPjfaFhbgEce4T8EmmM2TLCCpIe2iR4uSSVFsK5fzX+TqmJuzo2ZGf61ycYwR5JcWQ5LVWjKDn1HUu6EaRMEkTmYKiQ1NjZCVVWtElt3dzfq6+s1Uam7uxsNDQ3Ytm0bvvSlL2F2lh8jThBEHhNLaNu9qm2iZNtyhgtJejex2o2vyJGU1aFtceRIQmh1PsYYXn1V/KSYR66Eti0ueg0nzDUS2gYA7tMXE+mSOYiOgZgcSSQkEelFFeRHAgDZET1HUsDB8773PRDf/pMa2hZDjqQkOZIeeEAsoF3xlST9IYv36i3uctvWDStFMcJhDDdvigXDdXLoNYutNvJ6RC4txqoS/vYnpvjV/LIREvMJInMwVUjq6FhJXltTU4MnnngCJ06cwPDwMJ566ilUVFSAMYbh4WG0traisrISH/jAB/DSSy+Z2GuCIDKJWJ5wJuRIquXnmNCzsSedfA1tE918yLK+kORZEZKuXJnSzSHCY3w8N4Qko2FtgN+RZOQ6XZT8N5MRJtvmHTMkJBEZgiKo2CbZCyAVrZyzoglJTz/91rj2n9SffAzun1mBkFRZGZuQVF1djNWri7nrriglMV1DGME7IhKS7gNkwbyiMty8KZ5T14YLSVv51yNrqvnfzdScDz5fFhfcAOB2+/CHf/h9rF//d9iy5X/j058+BiUFidIJgjCOqULSvn37uMtramrQ2dmJqakpHD16FI2NjZpLqbe3F01NTdi2bRv+7u/+jlxKBGEysixj79692Lt3L2TR07ZUElOy7WhCkjisx7Z5PXe5MsHPaZASjCTbTnFomynjLYpskyVIdp3QNvdKaNvJk3eE7X7rt7Zxl+dKaFssQpIXMuaZgVwqWSioMEGy7diEpCR2KMMwfS4nuKjTfKeK7CgLqdAkmq8CQpLNZsEHP8jP0aOHkiShhTEW07zhEoS2VVXFFtoGAA88wA8pG1ZKYsrbZASfwJFk3bIBkqgapI4jqVLywC6FCia2LfwqfKurxA/DNm7ckdXH9oc//Dyee+4ExsYWcO3aDD772Z+gtfW7Zncr46B5PL8we4xN23t7ezvKy8ujtmtubsaLL76I6elpPPPMMyEupfb2dlRWVuKd73wnXn755TT0miCIcCRJgt1uh91uD7moTRvM+BOpaMm25WLxBWpwCEHINpfc6QsbM5QjKbWhbWaMt7BkdAyOpJGRaW6bHTuq8cd//Ch33dTUkuGQsEwmFiEJAKaYgTxJ2fi1xBTaJthGFgpoRjF9Lie4iNx/wYm2AeDcuQluu7VrS7S/f/mXN8e8/6SFEsW4nZkkhbYBwK5d/PC2K0pJTC4pI4hyJNm2btB1OoocSeFuJACwbuE/2Fq7iu+8AoCZGW/WHtt37y7i6NHIAg///M+n8J//OZr+DmUwNI/nF2aPsWlC0jPPPBNT+4qKCrS3t2Nqagr9/f143/vep7mU+vv70djYiOrqanzqU5/C6OhoajpNEETmEcO1aaD6jah0uV5om1xeKlynzqYpkaUhR5LATZLFybaFJaMlCZJdR0gKciSNjLi4bWprK4U3JqrKMD9vLEl1JhOzkKQayJMUQ66TTEHsSKIcSUTmogpC2yxBDzcYYzh9eozb7qGH1mh///IvC8rP6+0/WWJ6jIKNSEiKNbQN0HEk+UqSmmxbXVyGMjbJXWfbskEY2sYYE56jeEKSyJFUvboEkuCiKJtDtd98c1wYmtfdPZjm3hAEESArPW8HDhxAb2+v5lKqqakBYwzT09Po7OxEXV0d3vnOd+Lb3/622V0liJxHVVVcvXoVV69ehWrCzaXQrcJBmXT53xOXkFQiXKfOZIKQdO9/gtC2ZOVIMmW8hY4kyf95BdbeYBeW6CK9psaBigqxE83lyv4kpUtLsbnRjFRuy8aEp6JjQKJk2wDMn8sJPoEHIOHIQRXb7tyZx927/NC2hx9eqVq2a9dqVAvy6IhI2rEe429qRhjaFo+QxHck3WV2zBisaGkE37XbwnW2rffpzisiZ819lshzkFUgJBVUlsIhebnrzp3L3mP76tUZ4bpTp8Rh6/kIzeP5hdljnJVCUoCAS+nKlStcl1JzczOqq6vx5JNP4tSpU2Z3lyByEsYYbt++jdu3b5tzcxnDPpUJf3iTKLRNV0iq0HEkzaXpSV8iybaTFNpmznjz9yNJ/lMYVwhAuJDED22rqamEwyEWkmZmsl9IWl6OUUgyEtqWjSF/XoGYyvn9CO3iWfixjWL6XE5wUQVCkiUotE3kRgKAPXvWan/LsoSPfSwyP2mJJJ4jkpVCiHn4AocIsSMp9hxJW7Y4hOvm5mPrlx6iim2QZVg3rhU6km4vSrh8mZ9vcZ817Nxls8K6ni+MyRVlqJb5wpjTOZ61x/bVqy7husuXJ+F2Z3FV2iRD83h+YfYYZ7WQFIyeS6m7uxsNDQ3Yv38/vvSlL5ndVYIgkkksoW13p8EYgyoSkorEN9ByqTj3gJKu0DYdtBtfC19IemHOgd/6rX/Ho48exv/6Xz+CV3RTnYEIq+rI+p8Z90KZFEUVPtHcutWBigqxgJgLjqSYhSQjoW1ZeIEaW7JtwTay8HMT2Y0wR1KQI+n0ab4rY8OGMqwKy5vT0fFW/O7vriTdvk9ewpfLTwr3n6yqZp7LVw23VZi4als8jqSCAnEBAU8Sz4WeCyPc5db71vjz+QkE6pEFQZEMAL9QECok2TaugyQ458kVpVglEJKmp7M3TFvPkaQoDBcv8sMJCYJILTkjJAWoqKjARz/6UbS1tQHw31wFXEqDg4NobW2FxWLBBz7wAZw+fdrk3hIEkTCx2Dp9ClTXnDC0TS4SP+mULBbIZfzwtnSFtunexAYcSRx3xX8sr8OTk7vwgx9cxvHjt/Dnf/4yPvzh57Pnplg0xtpn1ndhjY664PHwbxbq6ipht1tRVMS/kM8FIWlpKbYn7saSbWefZV7kyuO7+ITZtpPWH4IwgpEcSSJH0sMPr41YVlpagK9+9T34/vffhucfHsHLlT/Fg1a+6wkAWJJ+8543hw23nWNiYSWeHEk2m/h2x5dEIcl96gJ3ecH2rQDETsdFQRcKoWB1mDAkSrQNAJaKUlRLfMFoaio3hSTAn0OJIIj0k1NC0ujoKD72sY+hsrISTz/9tLZckiTtH+C/GTt69Cje/va3m9VVgiCSRYxiiHJ3Oq4cSYA4T1Lakm3riWY6yba/vBxZqedrXzuDH/zgMu7cmcfFi3djdq2klWiOJEFoG+7lxLlw4a5w09u3VwOAME9SLghJqXEkxdkZMxE4kkDJtokMRp0W5UhaCW174w3+jTRPSApQVWXHpt9++N40Kv5dJyvZtvvsFcNtJ3XytMWa4wkAbIKHDQCEDxniwX36Ine5fe9O/x+C0DZRGrtCKbJvtq38/EgAIJeXoUrmPziYm0teCF+6EVW0C/Dmm/yKhQRBpJacEJJeeuklvOMd70BdXR16eno0BxIQ+gQ/sLy+vh69vb2YnCQrJEFkPTFe5CoTiQhJ/DxJ6mwG5UgKs7z7mISzvnLeO/Cud30d993399i585+wY8f/wQsvGL/QTyuiz30vybY4wbj/6lwkJG3eXIGSEv8NiyhP0sxMbBXPMpHYhSQDybazMImn0JEUU7LtJHaIIAygzvOTaAc7ZK9d4zs2HnxwDXd5gOXG/f5t6bRJlnN1+eenDLed1HFFrlkjLnwhQs+R5PUkZy5T7k7Dd50fYmh/5J6QJJhXlhX+crsU2TfrevGYyo4yVAiSbWezkBSt4hwJSQRhDlktJH3xi1/Etm3b0NTUhIGBAU0oCnYgBYe2NTY2YnBwECdOnMD73vc+s7tPEEQSiNV277tzF+oi32UiF+sn8RQLSemq2qazThDaNqMTIgCsPG2+dm0GH/rQt4SVf8xElKNDksXhfMCKcHDpEv+hwc6dKwlLRUJSXjqSBLlJQshCZw4ThLDwhSTRRrLvcxPZjbqkf76am3NjdpYveG/eXKG/cZsVpR/8TeHPHYi52BoX39gkPOedhtvfFYjZZWUFKCoyMD+FoedI8iWpEIX79CXhOvvDO/x/SPzbrmVhaFvklx/sRItYV16CMpn/eeZnszO0zedTMTm5pNuGQtsIwhyyTkianZ3FwYMHUV1djba2NgwPD0cISAECy1tbWzE8PIwXX3wRe/fuNbH3BEEknRgdSd6Lo2AL/IsSqVTfMm96aJuuI+ne/8NC22aMhCndY3JyCZ/b+wm4/unrmeU4iZIjSZxs2391PjLi4q7etq1K+5uEpBWMOJKy0pmjCO7WeI42WXB5REISkUYYY2CCBx9Ssf98dfOmOL/Rxo18N2rIdkqKIOuFtiXhN+8+eT6m9iIhae1acfVUPfQcSR5fcs51ovxIlnWrYF1376FFjI4kXmibXKEjJJUWo1xQgW8+Sx1JRh5uDQ9PZ3Z4PkHkKPqPqjOIU6dO4dChQ+jr6wOwYrUNT1wXWO5wOHDw4EE89dRT6e0oQeQZsixjz5492t9pJ8aLXM/FEagCIUkujiYkCRxJc2ly8eh8VkkQ2uYy4i4Jon+sAH/wl88BkgTHkx+IWG/KeIsSO997uhvNkTQ66uKur6lxaH+LKreRkCQgk4RGg4hD2yKFSFFS3FwWkkyfy4lIPF7hsSYV+eesGzfE+WM2bOCLDsFjvfjCUBRHUuK/ed8NfjJw631rIBUXwRtW0U2UI2nt2tjD2gB9R1KyQtvcb/JDwzU3EsQRs0siRxIntM2iJySVlaBcENq2sMiwZ8+erDu2Jyaipw5QVYYLF+7ikUfWpaFHmQ3N4/mF2WNs2t4toifIYXzrW9/C/v370dDQgL6+vqjuo0D+o6mpKRKRCCINSJKE4uJiFBcXi2++UkmMN3buN4eFT3jlkihCUmkxd7koh0WyMVK1LTzxdKxC0gmvA0tMFrqSTBlv0cfWQtsEVdt8ClSVCSu+1NRUan/nco6kJUEm13Xr+MLoEixYYlEuD7JQUGGCZNvcUtr5pyOZP5cTEYjCsIGVBx+iRMSrVhWjsJAvsgePtVxoFwocQJKEpDv8PHXW+9ai6lNPRCwX5UiKJz8SAMiyJHRdJatqm+8mXywr2FUX3BFum9gcSWJXlp4jaW7Bi8LCoqw7tqPlRwpA4W1+aB7PL8weY9OEJMYYZmfFT1H+9m//Ftu2bUNLSwuGhoaiCkjNzc2U/4gg8pEYL3J9ozeF66QoQpIo9E2dS1eybZ11AUdSAqFtAKBAxmVfKZTxKXidN2LtYUoQhdlJgYtyQbJt+Hy4fXtOWJVn61aH9nc+hrZt2iQOe4nmShLlrcpkmJv/pJ6bZD8PHUlE5sEE+ZEAQCrWdyTdd5/YuRKyHbv/WBeGtyXhN++7zReSLOtXo7jxMVjDKpGJQ9viE5IAwCbxP4fHmxxHkugzWu8LSo4tCm1TBUISL0eSjpAklRShTOaf7xiDMJdWJmNcSKKE2wSRbkz1Qw0ODoa8Hh0dxcc+9jFYLBZ0dHREzX9UUVGB9vZ2TE9P4+jRo5T/iCBMQFVV3LhxAzdu3IBqQriLyKVj2aBfrYZHvI4kliZHkpEcSeEVzKZjdCQBwHnFf6G6fPxsxDpTxlskWggSjAdgXp8wrA0gIUkvEe9UVAEy+wQV5uYnm5UKOJ81D4Uks+dyIhIjjqTbt/k5+u67TywUB4817v3+JcExnYyfgnKHf5NvXb8KcqEda/7Pp0PO2ZOF/LkpXkcSAFgFdzw+X+KOJKYoUMan+Ptdv3rlhRxrjiSekCQWCCVJQkWpOGvJ+fMjWXdsj42RkBQLNI/nF2aPsak5klpbW9HZ2Qmn04kjR45gaGgIQPT8R7W1tejo6MATT0TaYQmCSC+MMf/FKID169envwOCSdRWuxHK3Wl/jgmDSNFyJJUKkm0vZIKQdG++jHAkxT7NX/D5L1QXB15F+Qd/M6wLJoy36EQZCG0ThEozn1hIKisrQGXliniUjzmS1q0rhUUGFM7XO6VTfhtAzE7ATEAoJBVyPmseCkmmz+VEBKIwbACQivzzl0hIWr9e7FwJHuud9x6gyAB4kopuSLVBhG6deyJL0Vv2YPNP/xWec8OAzYrJ97wAzEaGJItyPhnBmkJHkjIxLUzmHyIkxZhs284JbbPoOJIAoKJMPHdfvnwdjz66Xff9mcbVqy5D7Si0zQ/N4/lFMubnRDBVSHI6nWhpaQEQ+kWIBKTGxkZ0dHTgwIED6eskQRCZjWASlawWFGzbAo8gASaPuHMkZUCybVFoW6w5kgDgpM//NHjh+Zex9NOTKPolk92eos8dCG0TOJLgVYRC0tatjpBzjThHUu4KScXFNlQWMNxdjryJiZpwOwsFFaGQZCchichM9B1JASGJX7VNT0gK2Y6giITWhyT85H23+W4Ry/pVK/0oLUbhow9BVRlu3+7jtk9ESBIVbvMlQUgSfT7A77oKIMpnIgptKwqT9qQiO3++CqLCwX8oAgDz89lX2UxUdTUcp3Mai4teFBfHfs1DEER8mJ7OPRC6BiBq/qMXX3yRRCSCIEIR3dhJEgp21sS0qUxPtq2L5kgKS7YdY44kADjnK8PsPSfTnT/4tDBRatoQ3MlI0ULbdBxJwWFtgH5om9lPfBJFlGy7sNCKKit/nYtZ+U6dAFlomY9NSBJtJHn9IYhoCHMkWSyagC52JBkTXeRyv9NWlCMp0Xxo6vyiMPzbum51xLLJyUV4BeKO0c/E3ZfgmPb6kuBIEglJBTbI1Y6V1wIhaUmUIykstC2a6AcABWXFKBEl3J4z7tDOFIwKSYwB589TeBtBpBPThaSAeET5jwiCiAs9IWnHVuPbsVr4uVKCkMsEoW3zi+kRG3T2ISXRkaRCwn96qv1/u+Yw/83+mLeRTBgTXOgLPrP2Pp+C0VFRxTZHyGuRkOT1qkIhJlsQOZIKC60oV/jJV5WmX8Xmyz/A7Mc/wF2fjdoaWxYJSZHHiERKEpEBiBxJcnEhJEkCYyxpjiTRDUGiVdv03TqRQpJIGANS40hKhpDkuyXIAbVuVagLSSAkuQVCkj1cSHJE//xyWQnKBEJStjmSGGNwOqcNt79yhZ+niiCI1GC6kBQg4D6qqalBd3c3pqam8Mwzz6CiQpwMlCAIQiTgSLKEggdqDW8nmhsJEFdtg9cndDskE6FYFXRxGiEkxeFIAoBvuleq6HguX41rG0lDdCMTSFwqDG0z7kiqqOALSUD250kSCUl2maHMt8RdN2ct8ju9RHpKNjqSBPnSJLvxqm2iCoIEkQpEjiSpyP+bdbmW4Xbzc/MYdiTdy7kjSrbNy6EWC3pCkmVtdcSyW7f4wpgkJZpsm//5vL5k5IASC0khxJxsO3RsLQYcSXJpCcpzxJE0MbGI+Xnj11axiE4EQSSOqTmSAjDGUF9fj4MHD+J973uf2d0hCCKb0KnoVbBDP7Ttkq8EL3tWwS6p+PVVKqIFwolC24B7ldt4ZcSTSZTqZQAiQttm4nAkAcDPvFW4oRRio2VZWI0mbUTJkSRKtq16vbhxg++42bLFEfJa5EgC/HmSEnkSbjYiIcm2tIAyWXDDwe79jiTB86YstCQlJ0dSEjtEEFEQJduWolRsA2J3JEkSuL9vluCPXhEk2pYryyEXRZ4zRQ6rtWtLYRWVXjNASh1JgvBv64Ywx5UwtI3fuULE4UgqLUK5xP9dZJsj6cyZsZjak5BEEOnFdCGpoqIChw8fJgGJIIj40BEZrFvWQyqygy1Figk/dK/Bx+d2w3vPmPm5ywq+96Or+JVf2SLclSi0DQDU+SVYVlXG1vdYiceRFKeQxCDhefc6PFk86q9IYyaiHEmyfo6kmXmfUEQJF4b0hKRcdSQVzM8LQyDmfPd+U0JHUvYpKmyZLyryQtvEkW3Z97mJ7EUc2uYXYESiC+CvymiEQI4k4U8+RaFtwUmogxE5kowKYyKsAjdQKnMkWcJD92JMth2RIylKxTYAkEqLxfN6ljmSvva1MzG1dzpdqekIQRBcTBWSHA4HnE4nha8RRBYjyzJ2796t/Z12dFw6kiyjYPtWuE9fDFmlMOCvFnZoIhIAzCkWtLf349VXPyLclZ4jSZ1biK3f8SAUkoL+DhKSvEzCPIt/mj91r3qbMrHiSDJjvIXhRJJ+aNudWX7IBxB5U1JUZIXNJnOTvOaqkCRfvyUMgXDNeiDLMjZt2Qx+lqnsE1TEoW1UtQ3IgLmciCBeR1JVVRHsdvHcHzzWliK/iC5Mtp3gb953k+8qsXASbQNiISlRV6i4alsyQtsEjqQwsUwShbaJHElhoW1yuQFHUnEhygVOU6u1LGuO7enpJfzLv5yO6T3Dw5Qjiebx/MLsMTZ174cPHyYRiSCyHEmSUFpaitLSUmFp25SikyMJAGyc8LZzvjKMq5GW+tdeu4nxcbEgpCskpaNymxFHkiT5K/oAmDUgIq2xevFe+y3uuos+v9jim5gOqa6Z9vEWCUmB0DYr/3OOzYpt/OFP6yVJEuZJynYhye3mfw/eH/5ILCS5liFJEgoL+XnBsrGSXXJC27LvcxvF9LmciEAV5EgKhITFm2ibN9bidGiJ/eaXh85zl9s2ruUuF1ehS9SRxF/uTTQJFPRyJBlzJLmZINl2WGibxUBom1RUKJzXFxZ8WXNsHz48JFy3cyffzXbz5hyUJIxnNkPzeH5h9hibKiQ1NjaauXuCIHKAaG6Vgp1bI1a9qZQLtzcyIg7jkgps/JtOpEtIEiwPO5EEwtv0Em2/613b8dnPvh3fWnMSv2Ef57a5qRZhTrUAHi/UGXEujpQT5XOLQtvuzPF/G9XV/Kf1ovC2mRl+SFS2IErGWyCpKJP5Lh3tMwueoGdbaBtjTFy1rZByJBGZSTTxUyy6xO7eETmSEjnU1flFeN4c5q6zP7KTuzxljiR+Kr2Ek22rcwtgC/yiBRGhbQL3gFcgJNniCG2TiwtRLvHn9Wx6KPKVr5wSrmttrecu9/lU3YeBBEEkF9OEpMHBQZSXi2/mCILIDlRVxa1bt3Dr1i2oZlQ0El4D3hOSdmyNWCO6aAOAa9f4gTzaVgWV29T51F+8CCvUhd/03nMk6eVHOnq0GU9/8hewzjOLnRZxno1Liv/CNRDeZsp4M/5+pMBFuSDZ9vg8/32imyyRkJRNF988PB6BkARVmEvD5VqGqqqYdrn4G802Z47XJ3YvFkQKScKHfNn2uWPA9LmciIC59SsNxptPiDfW4p98/L/55RNvAgp//il8y0Pc5ckUx4IRO5JSkwMK4OSBEkwsPpGQFHaBI1cYcySJ5vWJibmsOLbn5z04f54fLvgbv3E/PvShPcL3Xr8+m6puZQU0j+cXZo+xaULS3r17zdo1QRBJhDGGa9eu4dq1a+aEuwiTbd8Lbdt6X8SqMU5YW4CREZfu7kThbczU0Lawl/cevYoqttntFhQV2aDO+i/Y18tulAguPG8ofuEsULnNjPEWJnsN5IMWPGoem+e/T3STlYtCkqoy+ATJZG2SKgyBmJnxC0kTk/yLeWG4YYYiyo8ExOZIysaQPqOYPpcTETCPyJHkn9vv3IkvDCx8rKv+RxskkSMpzkPdO3ITt1v+jLtOriyH7f7NnH0xYbhe4o6k1CTbFuVHAgDrunAhid/OIxCSCuJJtq2TI2lqatGUY1t0DhKh5yr6m795O1avLobdzj/v37iR30ISzeP5hdljTFm4CILIbgRulcCNoHXT+ohVekLS6KhLd3dyKb9yW6bkSAKgJdyeU/khX5WVfnEoEK4mScAGmS+W3L73XQWEJFOIliNJFNomGBLRk+2KCv7vIpuFJK9XnHDcBiYUkhSFYWHBC+GdT5Zdn4oqtgGUI4nIXIQJ4gv8QtLEBH+SM1qxLUD5f3+P8IYg3huV8T85JFxXuH/3iqM0iNFRF7fgAZDCZNspciTJqxwRc4skxRbaZg2baI3kSJJ1ciTNz4vzBqaCc+cm8Ku/+hUUFf0NHnjgn/D1r79h6H16QlJdXRUkScLGjfyolnwXkgginZCQRBBEdiPSVu45kuQiOyxhTwX1hCSRnTqAyJGkzqVBSBJ+2LAcSVGSbQcEk+BKc+uFQpLfpeObEOeOSjlC19m9U5gg2fY4P20FNmyIzZGUzTmSRPmRAP/TbpETDfCHF4hyJAlzk2UoolwzwMpNeejC3BDQiOxGmNfrnkAxNcWf5KqrxYUheFjKS4XOzniSbXsujWL5VXHFrcJH+WFtZ8/y8/UB4gTLRhE7khI7qJVbBhNtA9x5RWEAEwj2kTmSjIS22YU5khYWfAknTzcC8/rw5l/9C97W8H/wox9dhc+n4sKFu/jQh76FF1/k58wKRiQk2e0WlJX5f/siIen6df30BARBJA8SkgiCyGqiloYHYNuyIWQVr2JbgKGh27oXWkIhycxk22EXoQGHzpxASAoIJsrMSgjBBou+kKSMT8bQ0SQjGI+AWBhILh7O2BL/4jyfciSJ8iMBgA0qiiXx+vl5T844c0S5ZgBA5oa2CbeUlP4QhBH0HEmMMaGQVFXFz+WnhyivfjyH+vLrZ3XXFx94jLv8jTfGuMtrahwoLeUXujCKVSQkJepIusUXvyLyIwHcL9mrcytmC6/atsoRtT9ySZEwtI0xYHY2tQ9GmM+HO//1IP78sz/DxHLoZ2MM+Pd/j+5KEglJa9aUaDkhxY4kcc5HgiCSCwlJBEFkN9HcKgCsYULSvEBgAfwXWZcuiUUTucxMIclYjqRAaJvIkRQQTIIrsa2X+ReXt5V7QpKJjqRoYqEkciQt809x+ZQjSU9IKpAYSqIJSSKyTEhS9RxJ3EqMuSGgEdmNsGpbYQEWF73C4zseIUmknaox/OaZqmL677+KiY93CtuU/Jdfg333/dx1Fy7wz727d68x3AcRoqptiYa2uU9d4C633sfpM0eY1yv+YZPCQtuqKqL2RyqyC5NtA6k/n80c7sPoi0P4tnsDd/3Fi9EfSukJSQEotI0gzIeEJIIgspsoiZgBwLY19IJmgQmuKO9x/PhN4TpJlGx7Lg0lZw3mSAoIK7MqP9m2JiTNRg9tuxPIkTRhZo6kKJ+bkyNpXrVgQREJSeRIAvxPu4uiCUnJtCmYiG5oWyHHoZgjTiwiu9FzJE1Pi+elZDqSYolinfyrz2Pq0GHdNqv/oV24bnqa77Cqra003gkBVsEHTMSRpC4uw/3mFe46+8M7IxfyhCSDjiS5rEQgeociFxcJcyQBqT2fMY8X05/7Gv5jOTI3ZQCnM/pDKSNC0qZNJCQRhNmQkEQQRHZjQFyxbVm5qGEMWNBxJAHA8eO3hOvMDW0ThXiFTuWBij5RHUmzKxZwkZA0zQqwxGRzk22Lwom0ZNuRwuAEE4cvihxJuZhs2+0W31DYoKJAYhHhEwHm5jwQ+hTSkGcjmYhyzQCUI4nIXMRCUoEwrA2IU0gS9cGgeOp+4zJmnjui26b6r/4QlnJxIvDFRf7nTTSsDQBs1uQLScuvngZ8fDG+cP+DEcskXmibniMpaMKxrDImppnpSFp48WdQJ2fQ7+Hkh7rH6tXR83cl4ki6eXM2LXmgCIIA9O+mCIIgoiDLMnbt2qX9nXaEYU/80LYlyFDFCVAAAK+/LnYkyWWiqm3ii/pkwQy4r4AVh4UoR5KWbDvYkSTIkQQAd9RClN4LbTNlvKPmSIr8nNMCNxYgrmgkTradvUKSriPpXthEieSDi0XeqC0u+rB56xbwUpeaXXI2VkRl1CFJXEebJBCSsu1zx4LpczkRgajaoGS36QpJlZX8uSwAb6xF2qnRm/K5r/8gqmOvYPc23fUiIam4WDyfG0WUbFugAxli4Qc/5i6XK0ph27YlcgXnS/bpPNO3BoW2yQbyIwGAVFQIq8RQIvm4D81mZ3VClhOAMYapQ4exyGSc8fFFHgCAL3rluESEJK9Xxfj4QsyVC3MFmsfzC7PHmIQkgiASQpIklJfrXDSkGCPRXsHJtqO5kQDg1Kk78PlUWK2RE7S4alsGhbYV+W8ioibbnl6xgK8T5EgCgNuKHTV3p8EYM2W8oyZU5yTbFrmxbDZZeFNSUcG/+Vpa8sHjUVBQoB8SmYno5ki650QqlhS4OD+thQUPileXcIWkmOJdMgBh9avCAr5olCMhfbFg9lxORKIX2iYSksrKCmATJQQKvJ8z1olEczLGMP/d/4zazv4gPzdSAJGQVFKSOiEpEUfS4kuvcZcXH3gswikMQBDapudIWplnLdUOQ32Si/3nsTKBkJSqKqSeM5fgvXQVJ71VuuKYb0lc+CBAIkIS4A9vy1chiebx/EL00CtdkFRJEESWEz3ZtmVtNWw1GwHoJ9oO4HYruHDhLn+zIiFpwcxk26EnEvmeI2lWjRLaFiQkFUoqKiX+zfZttRDweKHOznPXpxyRaBF4ks5xJOmJaKITryi0DcheV5K+I2lFSOLhz5EkuEzIMj1FmLRYlHOEciQRGYCo2qBUKA5tiyesDUgs2bZyewLKHf45M4Blw5qoyaIXFlLnSBJWbYszDEqZmoHv+h3uupLf/BX+mzjzioeJb8UKpGAhKXqibcAf2gZAmCcpVaFtgVxRlxW+azuAZzm6kDQxwb+eChaSVq8uET7cuX6d+/iDIIgkQ0ISQRAJoaoq7ty5gzt37kA1w6UQza0Cv2Jf+cn/BiB6ou0AJ0/e5m9WcOPJPNHt2gkjut6NcCTdE5KYfrJtZSr0YkuUJ+m2ulK5zZTxFn3ugGuEE5oUTUTjIXIkAal7iptq3G69ZNuB0DZ+m7k5N6anBYlRs0xQ0XN28FfkX44k0+dyIgK9HEljY3xh34iQxBtrkQnPyG/ec34kapuiX3g4apuUhrZxHMZA/KFt7rOXhesKH93NX8ENbRM7CqzBOZJWVxnql2SxQCosQLnE/y5FCc0TJXA9Ma6KH8gAgC/KtZKqMkxMRHckybKE++7jF87I54TbNI/nF2aPMQlJBEEkBGMMo6OjGB0dNSd/SDSR4R5lj78T6/7lb7C84T5Dmx0c5AtJKBA4mrzRn7IljNCRFPayyA7GDIS2hQtJFr5YMhao3DY+Zc54R8mDJfGEJIGIpicW6YlMueZIskLVDhGRI2luzoM742P8DWfZBao4tE1w0yO8qc5dJcn0uZyIQJTbSyqwYXTUxV23aVN05wpvrEU3BEZyJC2+cly/gSzD8YcfjL6dFApJRQX8g3o+zlO35w2+kCSvcsCybhV3HS/czavjSLIFOZKs68UJrCP2U1QoTLidKiFJnfKLNxOqfmJ0n1dfuZueXoIiCDcMFpIAcXhbPgtJNI/nF2aPcd4KSbOz+TvJEEROYcCRFKDkN38FRYc+aWizL73Ef8IqFYgcSWYKSWGhbUWFcEMWlhXmhbYBwFpBnqTAE0ZlInrZ3lQgSjIe+Ng8ISmaiMajrEx8AZytjiSRkBRcDUgkJC0seMTOHJh/ARMLFNpGZCNCAdRuw+goP3xnyxZjIVAR2xT85KOlEFLnFzH7L/8hXF/0y/W47wfPwf6QfqJtILVCkqOY70aON/f08utvcJfbd28T5y3hLNbPkbTy5VvXVRvum1RUCIfM/y7HxlKTz1GZ9v8eJ6I5knz6DyFE+ZGASCFJJJreuDHHXU4QRHLJWyGpoaHB7C4QBJEEll7jX8xxE13CH65jhDfeGMedO5GhAzzRAkiPkMQE9qvwi1ap0C5MNg2suHLCHUmrBELS3XtPGJWJKcN9TSosSo4kjhgQj5BkschCMSmVJZNTiUhICs69USJ4cj0/ry8kZZOowtyC6leC0DbhjWAWfWYi+xELoHahI2nrVkdc+xLdEEQTjF2fPwK2yJ8fHX/0QWz41udQ2PBg1P17vYpQZEiOkMT/hC5P7Mlqmapi6eenuesKG3aJ38hLtq3jSAoJbRO4nHjIxYVYLQtyHt5OTa7DwIOpqI6kKA43PSFp9erQHJUbN/JD2yhHEkGkh7ys2jYzMwOn02l2NwgiAt+du3Cfvgjm8YL5fIDXB+ZVIFktKHv/O83uXsax8MJPodwa568UXBvOzhp3lgwMOPF7v7cndLOCG09TcySFfVipyC7MEQT4xRTm9oAthFrc1wguPDVH0l1zHEnCm/d7sVnc0DbB59dLqA34v5u5ucjvIVtD29xu/u8yuBqQONm2VxziBWSVqKKXtJi/wtxKKAQBAPDyj19ms+LaNf7NcrxCkuhYjxbZNvfv3xeuK3v/bxjevSjRNpAkIamI70ia8UCrSCpCXXJDnZmDpdoByWaF5+JohKM3QOEvPiLuBC+0TfDF26CGTEPWGIQkqciOtYKch7wHZMnAcI4kVX9uFfWvvNwOuz30vC4Kbbt5kxxJBJEOslpIijU8bWpqCk6nE+3t7SnqEUEkxvJrb2DsI38RsVyuLCchiYPrc18TrxRcFPJEAhH9/RwhSeBIgqKAKQokSwpLxMeQI0mUIwjwiyUBG3owqyWxI4kx80LbhHcyAUcSR9yLx5EE+N1a169HnltyLrRNYqh6+iMo/MVHsO4rTqDnTESb+XkPmJ5xWWVACn/uySTm0Da9bUW56SSIVDM2pwiP7WQ7kvQEY9/ENHw3+HnUyn7/3SjYWWN4/6KwNgAoKYn9OA3HUcKfrBQmYWHBi9JS/j5mv/Y9TP5NN9S7LsjlpVj17CegugRChdWi777iTBs+wTcfLPZDkgwn2wYAubgIq2W+0JgqR5IyPQsvkzDNojiSogiTvPMvAGzYEOk+WreulNv27t00VNElCCK7hKSXXnoJnZ2dcDqdCTmK6CKQyFQkQSJnJngqmc8wjxfLx8+KG0j8i7P5eeNC0le/ehp/9Vdvw5YtjpXN6tx4Mq/PJCEpMkeSSEix2WQUFVnhGXFFrFsjCG3zQoaL2VBiVmibIA+WNo9zk23HKyTxn6ZmqyNJnCNJhVxVjqJfeBjlP+SP6/y8B5B1KkBllSMpSTmSAP/npmsIwkSu3RWLLvEKSaKftF5efc/5YeG6yv/392Pav56QlAxHUkWp+JZnenqJKyQtD53DxCf/FlD886g6O4/xts+gYFctdzv2vQ9ALhHPmfxk2/wv3ioF5Ufasl78EIu3nyK78Hw+P+/B3JwbZWX6zqFYUadmtDB4PRTO511Y8OCb3zyPwcFb+Md/fJ37vk2bIt1Hq1YVc1r6nederwKbLUuedBBElpIVOZJmZmawf/9+NDU1YWBgAMPDw2CMxf0vHxkYGEBLSwvq6upQWVmJuro6tLW1JT3EL137yVmsggsFHwlJ4UQLsxJVu9G7WOWxdevncOHCXe213sVcyvMkGRSS9HIkORyFkCSJa8tfJQhtA/x5DzIt2bYW2sZ1JImqtulfPIuquuVijiSpyP9ZRU/i/cm2xdtmWVS5TRjaFq+QRBAmcnWcPx+VlhagslJfLBchC37yetfNnvP8ohSW1ZWwbV4f0/5TLSRVlovn/ulp/vfp+sd/10SkYDzn+Ne0RY89rN8JXo4kA46kst9p0t9uGHJxoTBUHUi+K0lddkOZnImaaBuIdCSNjy9g377D+G//7TtCEQngh7GJhCQAmJxMTXU6giBWyAoh6cCBAxgcHNROZpIkJfQv32hpaUFTUxNqa2sxPDyM6elp9Pf3Y2BgAHV1dejr68uq/eQy4kTOmSskybKMHTt2YMeOHZAFCa5TgW9c3x0jstsvLMReouXTn35p5YUgRxIAIFOEpCI75oQ5gviJtgG/kCQJEjGNq3Yod6fNGW/h574X2maLHJMFxn8SGe0prMixlK2hbW63uGqbHEVImp/3YsvWreKNZ5GeknRHUg5i1lxOxM61Mf5N8tatDkPXubyxFo24Xo4k76VR7vJYQtoCpFxIqhILbNPTkd+nOreAhe+/EtM+CvdHTyoejsiRZLvnSCp9/J2o/LP/GtM2peJCoSMJAG7fTm4OIc+ZS4CiRE20DQAqJKhBP6q/+qtXQh7WiYjFkQTkb3gbzeP5hdljnPG/sKeffhpDQ0OaCJSIEykfHUktLS3o6+tDa2srOjs7teW1tbUYHBzU2gwMDGTFfnIdodtFVTP26b8kSaisrERlZWVahVplfFJ3ve/abe5yvYSeIn7wg8ta0mJR+CGQ+hBEkTNHkiND26KFdvGEJJvEUGXlCw8Tqh3K+LQp4y0aS82RZI+8yVgSCEki0SSAOLQtO4UkXUfSve9NLCR5UFbOT2YKQD/mJcNgy4KqbUIhSW9jifcnEzFrLidi59od/k2y0bA23liLQ9t0ciTd5Be7sN2/xVA/gtETkgoLE8/EUVBciGLwz9E8x+nyqQux72MHX0Bzu3341KeO4Rc+/Are59qPby2vuLX0HElbr/wAa//p0zHncpOKClEoqSiT+N9psh1Jy4NvAgAmmLFwuUB1PkVR8fWv66QoCILnSKquJiEpHJrH8wuzxzjjhaS+vr4QAamxsRG9vb0YHBzE9PS04X/Dw8MYHBzEF77wBTgcDrM/Vlro6enRXEDB4k4Ah8OhJR5vaWnJ+P3kA7ox8JQnKQRlXD/MyptEIWl52YfXXrsJgO9+CZAxoW06ybYDQpI6xU9oubqQv48JtQBscQnqQnrt4ssnz8N9+iJ3nXYDxBmTRYGQVFKi/2Q7n3IkBb43PSGJV2VII4sezIgcSbKgapvuxVkWfW4iN7l6k18ifevWiri3KfrJ6/3cfbf5QpL1vjUx71/kFi4qskIWxd3FgGQvQJnMv47ihUGJRDLh9gsLYN3CD+f7r//1Ozh06Cc4fWkGp30VaJ9/EEeWNwAQO5IKCiywVPDL20dDLvaf50XhbbduJdeR5H7jMgBg3IAjCVgRkl599QampoxdUwTnqvTduYu53hfgfennKCvj73NyMj+FJIJIJxkvJAVy60iShI6ODrz44ot43/veh71796KiosLwv5qaGuzduxetra1544oJiDqNjY1C8aytrQ0A4HK50NXVldH7yQv08u9kqJCkqiomJiYwMTEBNY0OBSVKaFvJb/4Kd7noYvU3f3Ob7vZeftmfC4KXjydAyscoBiFJJKQELrp4VdsAYG0J/6I2UNLXOz6V1vGe/MznxSu1qm2hx42XScKnvNGq/+RajqSAky4cm8QMOZKmp02q1JdkRCKv8HjWEZIy1R2aKGbN5UTsXL3BFwKCb7b14I216Bev6lVtuzXBXW7dsNpQP4JZXubPVclwIwF+oada4p//eSXnlTF913M4tvu3cIttXLhwF0ePvhmx/F+XNgHQqdpWEH+i6ED+O1F4W7JD27wj/gdtdw3kSAJWhKSf/OSaofbFxTb84i/6v6+FgVdx7dEPYPzJ/4U7v38QDjffXZWvjiSax/MLs8c444Ukh8OhhaMdOnQoKdusr69HTU3s8dvZxMDAgCbCNTWJk/TV1tZq4k93d3fG7idf0HW7ZKiQxBjD8PCwlgQ/XfiihLaV/pdf4y4XOZL279+Affs2CLf30kujAKIISQLXQ9IQfb3hVdsK7Vhm/Om92O6/OOWFtgHAWgf/oj2Q+0BxzaZtvJnXh+WfnxY3CHzssONGFNYGRA9ty7kcSYKbswKomnAt+k5UlWF49IZw29kkqKjLghxJAkeSfo6kJHQoAzFrLieic8pbjq8v3YefeyqhMOCqoES60dA23lgLk20LDnN1cRmqiy9IWDfE7kgSuSft9iQJSfYCrBUIKzdvRn6fsQpJBTu2cpc/++xPucsvKH63kdCRVBRbOFswgfx3q4VCUnJD27yjfiHJSI4kYEVIunQp+ncsScDhw+9GaWkBmM+HiT/5LNjSyueqVPmOpomJ/BSSaB7PL8we44wXkvbt2wfAL/4kk/7+/qRuL9Po7e3V/o723QW+Y6fTiaGhoYzcT74g6ZQqzVQhySzUOb61H/CX4C1ufIy7TuRIKimx4fOf/y3hNl999QYWF70Z6kgKe1lox7JATCks8DdWBULSOkFC0oAjSZ1J7pNMPZRJl24enkD4YrgjSeTGAvIvtG1Z8Hu3Sar2W9YT1xbd4u9/6eXjUJeyQ2CLPdm23sbo4pxIH4cWtqF55lH8+cID+P3ZBrx75jFhEn2jQhIPYY4kwe/dd5vvRgIA6/rYHUnCfG4JOHOCkewFWGvhz1e3bkUKK75YhaTtW7nLn3/+kvA9KhPnSLKXFcW0/2CkYn1HUjJD29S5Bah3XQCASYNCktfrH+tLl/Sd5du3V+OFF34Pv/u7DwEAll97I6J6rEOQBypbXcQEkU1kvJDU2toKwB8SlUzywZEUoLa2Vrdt8PoTJ05k5H7yBqtejqQU59/JNnQEhvVH/hZyCf8iTJTQs6SkAPv2bcCLL/4ed73Ho+BnP7uun8cqQ3IkwWbFsmB61xxJ0/wn2uvW8JNXBp40qjPJfZKph3Lv4lSE5/y90OeC0IvXJegJSfGFts3MuE1/8hMPMy7+09pSSYmaIwkAFt3izzz2kb/Ajbf9AXx3olfcMRtxaBtVbSMylze8ZfjSUmji6ku+UmH7RISkWKu2KTpCkiUThaTCAqGwkgxHko3jSFpc9OqGWPkgwStQre2Okpj2H0y0HEnJdCQFwtoAYEo1Vl0v4Ei6eJF/7tizZy2Wlz+Nixf/CE1NddryxZdei2hbJvEf4GXrwx+CyCaS4xdNIc3Nzdi7dy9OnTqFq1evYsuW2CtB8PjWt76F3/md30nKtjKRQLgZAFRVVem2Dc5rFKiwlmn7CWd8fBwTE+KLGB5XrlwJea0oChQl9MJFkqSQUorh61PdllnE2q7P7YHEeZ8lKCZfVVXdm91UtA3/LNG2K8uylsg2kbZM4QtJZb/3LkgVpcLvWJzQ0wJFUfC2t21BZWUhpqcjL0JeesmJt/3qJmF/1aCb1dR8D+I2gc8rSRKkAqvQkWS3Sf7f/qSLu37d+lIAkU8Jx1U7GAPU2XmwNUUh+wwn+PfOGNON4dZr640SvljynrdDURQwS+iF+IKOIykwzqI+iELbPB4FCwtuFBcXmDpHBAg+PvXaujhlrQGgXPJCtchQFAVFReLva3FZP3zN67yBu5/6HNZ88TNJm3uSNUcEI6raxgqs3O9PTypSFB9Y0HtS0d9E2sZ7zCmKou0jeD5JxrGcS22B5B73evxfz1rd9cEUF9vgcBRo+9ObI8LH2mKx6IS2sZD3B7brE+QplCtKteMqluNeHNoWOWfHc2zIdrGQdOvmLBRFCdlurI4k67bNEf38j/84r/seFRK8gjB0e2lR3HMEuxeyWylw68zPewz/hqMdG54bY9rfU8x4aNv09JIw/Oxv/7YRNtvK9xLog8q57isXJFCfnl7mfsZsnCPinU+SdR0R3taMe41Y22baeTmVbc0k44UkwB8+df/996OjowPf+MY3krLNjo6OnBWSwt1b0arUVVdXa39PTenbTM3YD4/nnnsOn/nMZxLaxtmzZ7G4GHoSczgc2Llzp/Z6cHBQeJCWl5dj165d2utTp07BK3ANlZaWYvfu3drrM2fOwO2OvKCRJ2dQHbHUzxtDJ6GM3wxZZrfbsXfvXu31uXPnMD/Pf9Jks9nQ0NCgvb5w4QJmZ/muFFmW8eijj2qvL126JHQFMsZCTl5XrlzRHd/9+/drJ4ORkRFdQbChoQG2e66Jq1evYmxs5YKl7O5d8G75JVnG9evXcfs2v2rbzAz/xvr27Ws4ftwvMu3ZU45XXokUkl544TL+y38pxSqrBZIv8qS76JpBwM8zPj6O0dFR4WfbsWMHKisrAQCTk5MYHh4Wtt22bZv/+BGcV5bdHhw/fhwAUFdXB4fNJsyRNDM1juPHj6N6Ypr/BFrm/34WYcU8s6DKNQdFqcLc3BwGBwe5N0IbN27Exo0bAQBLS0s4c+aM8LOtX79ee0Dg8Xhw8uRJbZ399SHoFJ/HtTIbrtz73KtkCdK9R+d6OZLOnz8NqzX0k1dVVWH79u0AxKFtAPDKK6+hrm6tqXMEABQVFeHhhx/WXp89exZLS/zf9a3b/GOxTPLhjQvnoM6MY3lZfAE5OR09BGLhu/+pO0cAwGOPrYSapmuOCKbSNcO94Lk2dhvL935Dwezkzi5+hk4MghWvrN+9ezdKS/0ukTt37uDaNXEC2V27dqG83P+rTskcAf/59fLly8K2dXV1WL3a7xhxuVy4eNFfFZExpo1h4NjeunUr1q1bBwCYm5vDuXPnhNvdvHkzNmzw55lbWFjA2bPist7JmiPCWbt2reY49/l8ug+tVq9ejbo6v9tBVVVtDuURPEcA0G0b63WEXnriyz7jrpS1aws0t3e0OSJ4rM+ePYv6+nphNOfM7Jz2eYOvIxSB0O8pL8bx48djuo4AAI+H/x15vcsR33c8c4RkL8A6gZB05848fv7z17B/fwPsdv+I+O7GUGjAZsWpiZvA1J2Qxc89p5/GwcfEjqSCQlvcc0TBzeuoACALLhq8Xp/ub1g0R/C4b8Q/33mZJKwWG47Pp2J0VDxmc3PXcOtWYcQcUXLzJsI90yJH0rVr49zPmI1zRCzXEQ888ID2+uwbb8A7NQNIElhpqEs/luuITLjXAMy/jgCAvXv3anOE3r0GAOzZswfFxf5f7K1bt3DjhjjnZLzXEWYXRMn40DbAHxL14osv4ujRo/jSl76U8PZGRkZCnDS5RqyfLVgAiiWEMF37ySeYVcfCzREu8hqR3z5KmWDRTXOwK6Ohge+uO316AgsLPkAwTqnOkSR8QhGeI8lmxbIgvKvQJgGKAnmBf8FQvUEcNjGu2qHOpi+0TXaJ91X4yw3w7F25aAseE1GOJKtVihCRwhGFtgHA/Hz25SkT9blM8mmhtHa7DFnwtSwZzR+fgnAvdckNnLkMy8gt2IYuQp7k5/UyguQRjJ2gwEE0pwhBpINLing+Dmf9+vhz6gD60Zw8RJVT1cr4StaLHEnBzpREkOwFWC/zw50UFbh+PcwdI3Axcre9dT0QVrFtYcGHV1/VD/tVIMEjciQlUK2OFflvdC0Sf15WRddP8ezrXr7FaYMiEgB4PT7dAhYVFXxnk8S5bhEJSfPz+Z0OwnJtDCXt/werfvd/ovpDf4myv/86QLlWiSSTFY4kwF9avru7G62traiqqgpRRmPB6XSivb09yb3LLKI5g7JtP6li9+7dePDBB0OWhd88BKvq4YS3feSRRwy33bNnD7edOjsPkQb94I6dsO/ZLljrZ9euXYbzuOzcudNw2+3bt+uGtgUnT7///vujWjID1NTUYOvWrYbabtmyBZs3b9Zej1d+D1xTtCRj06ZN2pOsYHw+FV7vC9x9PfLIg9i/3//Uu7h4K/7+7y9EtFEUhsXF1bAU2rlVoAotK1PqmjVrtCd6PII/W3V1tW5oqNZW8L0WFhVh//79APy/NTY1gyXBxenWjetQX7cD1wX7+pV3vAX4H/xf4bhqh+qah8VigcPhQENDQ4jVOEDw770oqG88gtsWFBSEtJ1+8SRE0sG6r34W64pWnuVftdvB7okFIiGprMzO7Yv3vBM33/1H8FwehXv1WgCbI98MYOPG+7F9e2hoY7rnCB7BTqZw3J6fcJeXyT48sr8BltX+311p6SuYnY28sGeSsXLO27ZtM3wnamSOmPtmPyb+rAtYXEbwkVH+sfej8i8+qn1fenNEMNclGbzb1Jod21DK+02cFTt66vfuhVy+coMf3Id169Zh7VpxOFJw25TMEfA/GTd6zDkcDq2toija0/nAsR3ctqyszPB2S0pKDLdNZI7Qa2u1Wg23lWXZcFsAMbUVzRHM54PrmS8J5ziVAXcNJi8GgIcf3iLsV/gcETzWgXWiw7e4pJS7Xd8YX0iqrNuK7Zz2etcRAPDCCz/mb6+yPGL/8VxHSPYCbLUswgIVCvc5+hoU3MuZxry+mB7eFe/aFtHH1167CZ9P/xrLBwkewTP9wkJr3HOE21qG2zgsdCSpqvHfcPAcwWPq+dfgBTAVw2/Vu+yD283/wcmyhF/5lcdgCUr1EJgjxtg3ES4llQvC93w+/vGfTXMEr2206wjGGCw3J+Do+CfI8/5vS1JVFL48hNU1W1D92T/lvlfvOiIcM+41wknXvYZeW9G9Bq/thg0bsH79ekNtY7mOCDgSzSLjhaSqqirMzKycZhljaG5uTmib4aE4uUa0XEXhBLuDYhGH0rUfHk8++SRaWlpies+VK1fwnve8R3ttsVi4N8HBRFuf7LaSXXzTJqtq1H3IIltBCtvKsuy/iURo3G6q+yB40AaExZMHo/eEqqysUPt+H3poLdasKcH4eGRluB/96CoeErgYgi88UzIWgpOmJEmhse4FNrgFYkqJ3QLouIpKN6xCdXURJicjn/yNqXaw2XnNvm2z2aKOd3jfYmmrChwoJb/9dlhKQw3ukt0Gdi8KSxTaVlJSENEXZWYOt9/zJ1oScevdGVixET7Oxf3MjCdirNI9R8TadmaWbykqk3ywFK385svKCrhCUmGJKNg2FBmAZLDP0X7vnuFrGP/DvwE4ORtmP38ERW/Zg9Lf+pWYtivKkRT8HQTjk/TnPNF3bsYcHE68x5wsy7rHdiLHci61BZJzfI5/4lnM/dv3he8bU+1w6xQOCGfr1krhvsKXh481oG/m5W1XFNpmXVvNbR/1uBfmSLLqft9Gjw2psAB2iWGrZRHDHKfXuXN3V/KOLMWWqLlgx9aIPhpJaK1AglvkSLJb4p4jrPdcYcIE6ipL2rGh3su3aDTRNgB43WJHksNRCFtYUZNAH9SJyDAecbJtd9TPmOlzRDxtGWNY++2fwDsfeQ23+N1XsPqZj3Ov22LpQyac56itH6tekaY0kPFCUktLCw4fPqy9DqithJhERJpYxKF07YfHmjVrsGbNmoS2kYnoVQRjotAMk5EkKST/Vdpg/HhySedqWFSxDQgtCy9JEt7+9hp84xuROT5eemkUf2TnXzCJSownDR3xLOSlTo6kQiugTPHj1QFArqzAhg1lQiFJnZlP23iLKsRZqiIzJ0lB4p7IkRQ8xgFm//W7IfuRJH854bssUtSdnBRX38lEVJVhdoH/my+TfCHfWVVVEW7ejMyHtOw1eHGZxFCJxWOvc0WkAEsvv84VkvQQCUlSkSCUUbdqW0y7zhpMm8vzEHVxGfN9/bptRhV+BU0RsVRs44216BevCI5tZYLvSLKsie/6LuVV2+x+x8wOyzxXSHrjjXHtb7YYm5Bkq410Jdy4IT7PBvAxndA2e/yfWy73C0kWwWSlKMmbxJR7uaSMJtoGAJ/HB5eL/x2LCl4E7ysYUbJtl2s5540DXBiD94WfcVcpE1P+B5561YeJrMLs33fG50j66Ec/CuBeJaJ7X1bg73j/5QP19fXa39FyGQUn8NSzV5q5n7xBJ0cS82WmkGQWTJgjSTytLQhuqoHIsvC/9mtbue1OnryNWVG4T6rjzw3nSLJgSZQjyQKoUy7+ZooLIRfZsWEDP8fFuGqHksYcSep8pCMMAOSyyAS0UsHKhZFISOKVuV/++emIZQ6Z/zuZmuLnlcpU5uc9EBX0KJd8Id9ZVRU/v4pL4GiKIIkPeKb/4V9018/+y3/EtD2mqmCcUFQAkIsEx7KePYMeZhEJsnjs1agPHq6qsQlJO3euSqRL4qptgp+7KEeSdU18YmTahCQr/7ySkJC0ZUPEMp4wH44CCW6d0LZ4sZT7z5Gi0DZFUPU2HjQhKZbQNrc3PiHJFfmdlgscSR6PguXl/Ltu9o7c1F3PolRnI4hYyHghae/evZrzhTGWlH/5wL59+7S/owk8wesbGxszcj/5giRJ4icFGZokjzGGyclJTE5Opvf4Et0h69wALiyIL9zD3Spvf3sNtx1jQJ+LH5PMPClO7ij8zGFTucUitMsX2SShI8lS6Xf63HcfX0jyO5Lm0jbe6lwMQpIhR1Loha5vbBKLL0Y+uXMIci7wXFqZzMyM+GaoTFZCksNWVvKFpDsT0W+GAB1hNw4kUehonIhEJACQREKSriMpN68jTJvL8xAj54qrivHk2Y88sg4PPWTcpc0b61iEJObzQbnr4rbPXEeSf17ZbuE/DHE6p7VrBDVGIcm6OTL3iRFHkm6ybXv8QpJkL4BkLxAm206qI2kiICQZn7d97tgdSczrA+Mk2y4VCEkAdBN65yruU5H5PUOgwj05hdnn6owXkgBouXBaW1sxPDyM6elpqKoa87/p6Wm8+OKLcSfqziaC8wdFE3gC5WJra2tRW1ubkfvJJ0ThbamuCBYvqqri8uXLuHz5srB8aUoQTZ5JciTV1VVi40Z+8fm/GlmNW0rkDSgTlGRNFkJDUthNr8+ncnP8AECRhcF3h18GVa6qAABdR5LqmkvbeKuz8TmSFoTJtlfGWF1y4+pD7+W2EzmSsi20Te8iutwe+rupquJfvN+47TK2syT+Fiyr9ZNHyhXGK1kBANPJdyIVkpAUwLS5PB8x4I43Gtp2//1VOHKkOSbHPW+sRW9XOb935a5LeBxkrJBktQJWC7Zbxa7aN9/0nxv15gwevDnLkCOJ6SfbTgS5vCTljiTm9qwISTGEtsXjSBJVjBU5kgAI95HLLJ/UF5LIkZRbmH2uzioh6Qtf+AJqampQUVER13YqKirQ2NiIY8eOJbN7GUljY6Pm5OrvF8fhu1wuLQl2R0dHxu4nn8g2Ick0BA4IvRxJIkeSLEsR+QgCeZJE/PXCjohlKc9jZTC0bWlJ3I8iC4P71EXuOut9/ioRIiFpTLULL+ZSgdiRFHmDJRWsXMQuMP4xFBzatnjsVeH3mSuOpLt3xcJXedg1vyi0bW7e4G86ieKKdbX+jWjB9q0xbU+UHwkAZEGOJN2b8hwVkog0YkDzuWpASPr7v/91XLjwh9i+PfHcVpKgU7yfuyisDQAscYe28W+IkiUkAX6nziZ5CUXcGo7AyIhfFInFkVTwYB13vrh2TVSPb4VoybYTQS4rEaZqT5YjyXf7rvb3ZCyOJN0cSXxxnxfWBvgrkIrQc+XmKu7T/Os7jSSGNRJEVghJjY2NcYtHPBwOB2pqxDeIuUJnZycAoK+vL6RiWjA9PT0A/N9Ja2srt43T6URXV1dIifdU7Ie4R5aFtpkFE6nwOjeAIkdScTG/+ti73rVNuK1+zxpMhOUESHlom9iSFPJyaUncj0JJhXvoHH/dIzsBRHEkLXmAVH/Oe6hzfCGEH9oWPUdSsCNJ72IrV3Ik3bkjeoLrjXjaLRKSZueNPb0UHo9xENWRVO2IaXvqklhIEoe2ibdHOhKRKCLRJoDK9EPbamsr8a1vPY6Pf/wXQsqkJ9SnGBxJPpGQZLFwiyEYIdWOJMBfuU2WgDUyf06YmPCfc2JxJJX81q9GLPP5VFy/Hl1I8qUotA0A5IoyoSNJVZOT6sN3c0z7O7YcSUrSHEnFUGAB//yTb44kpijwvHFJvw2FthFJJCuEJAAYHBzM6O1lIq2trVoy7EOHDkWsd7lc2vLe3l7hdhoaGtDR0YGGhgZu+Fqy9kP4kQSlHFMdNpV1GBRVghE5knjVvADgve99AG9721bh9l72hCY3Vaej50RIBHFy1tDPrFedTh69rlnRw7E37AIgFpK8kDHFbJA4eQqSDVMUsEX+fnhCEgpWxlAU2hbsSFLG+KWrgdxxJImEpNWyJ8L5KMqRZNiRlMwcScVRcsPEKFoxXSEpnqptpCQRCRIlDO2Oaodb4Cd5vnU1rlz5Y7z3vQ8ktUux5EhSxvnzp2WVA1IMZcSDSYuQZPcLx1Uy/1w6MeF3weo6koLmzqJfrofjY++PaHLjxqwh14/CUpNsG/CHtolyJAF+MSlRfLdWEpRPMeOOJK/Hi+lp/ndcUSEQkgSOJEkSh7flm5Dkuz72/7N33fFRlPn7mdmeXkkhhEDovWMvEMReQSxnP7Cd9/P0BPVO7/S8U1BPz47ioWeXZm8giFiQ3jshQGghPZvtO/P7Y7ObLe93yu5sCuzz+fiR7MzOzO7OvOV5n+f5MnOkQpCwLSegIToNkaS1gkhLhVNHxtq1a1FWVoZZs2Zh1qxZgdfLy8sxfvx4AD5yhwq/Drak+d8Xj/Mk0ArOSJSWdydWEUKgNHg6CBTBEp6P5Idez+OLL64lj7c0jEgKXp3TGkKzHbVPzGZvjFAk0ZN/cenP7A08D9NwaUUSANQIRvDW+BMqgpW2ZckpkihrW2pqq/rEc7SauQ9w4mQkUURSDu8MVDDyg1Yktb21DaLMQFfluaTUBWTVtgSRlEA8IUMkSdnaBpckx6UCMUUksfgGytoWbT4S0DZEEp/sa+eySSKpRZFEEEn64gIU//YB8uY8jq7fvIaCef8GnxL5W/ktcnKQViRpYW2j2yot7G2eQ0FEkgpFktflJa3X2dnsvkhooG31VOD2yRa2LTTLj1ESiqQEtESnIZKksGHDBixduhQLFy7E0qVLsWHDBjQ2xlcZ0JmwePFizJs3D4sXL0ZmZiZKS0sxefJkjBo1Cvv27cOkSZPI92ZkZGD69OkAfBZDKSIolvMk0ApOzx48iJ6EtS0YVJUoLoqwbUqR5NtmxJ//fCpz20+ubDiCBoHBgyqtUfPYq/TGsAmAVMlb3f5K5uvmsYOhS/cRSLm5DMWP/zoEY5sokihbG0CFbcsrkoKtbdSKOgBkEIPSE8XalsuxFEnsVeCmZq8y3kTLVU65DAeVK+mktY3jQpRsEdsoJIikBGKFDA+0X2BPpjM5FzKylIVwqwVpbWM8bxSRpI8yHwloGyLJb5vNIlSnfiKJUiRxSWYYuuUj5bJzYR45kFRf7dtXr+h6vKDDtmO2tqWlkNY2QJvAbf994BE51KtQJG3cVkMuzOTksO9vbwMdXp5QJLVAyW+aCNtOQEPE1kq1IxYuXIjZs2djyZIl5D4jRozANddcg6lTpyItLTrP9omCSZMmRU3kzJw5M5CDFM/zJNACamLTRrk0nQZk1bZorG3SK2mXXtoXzzzza8TrDugwqGYcrjVX4r6kvciOkyLJc7gKTe9/Se8QNgOgBuQAYCCk7skXnhn4t9GoQ2ammSk9rxGN4K3xH5xRQdsAwEVJJAVb2zxRWNuamlxwubyaTmziCVqR5IpQPqalsZU5ogjYoEMyEU4b2E9Da5tc3pLabA8qbJuzmGllh/aCjwQSaIWMoqhKYD+PxTo7raKLEaS1jfEa1X7q8jo6keRTTFHWtt9+8y20UCpGKpw/HBUV9Yr284g8GbatibVNYrsWiiS/crhKMEJU0Wj+89XN5LbsbDaRJKVISuU9YHVRJxuRpKQiW0KRlICW6HSKpKVLl6J3796YPHkylixZAlEUyf/WrVuH6dOnIzMzEw8//HB7X3oCCSgCmZHUQRVJHMehtLQUpaXsyiVxQxTWtmgUSQBw6qndSOsPAHzgKMKk+tGwH2+QDPaNFtWPvCSRjxS5OuyWsEHqiRXK5AvODPmbUiXVCkbkJ6fG/fcWJYgkdtW21t/QRqyR+K1tossNobqePH4mMckAOo8qSRRF7N7NVg3k8s6IUP9g2184qPDyELSlIkktkUSpCyxSBPLJp0hqt7b8ZITM91tD2IRyeBcdEK/q9JG/NXVFahRJHd3apu/iJ5LYY4GDBxtx7bUL4Ghit/NckjIiSRtFUozWtrQU8BIZSVookvxE0lFB2feiBKS1jchIAmhF0klXtS2hSDrp0N59dacikp5++mlMmDAB5eXlAbKI4zjyPz9EUcTMmTPRp08f7N+/vx0/QQIJyCPccuJH3EvLRwme55Gbm4vc3FzwEiSO5qAUEBJtKqVISkqSJpL0eh7jx0vntO0XkvCNMw9eieydaGBbtgrNny2T3MdbUx/yt8dDDyZYmQnGgb1g6F4Y8lqXLmwiqUYwINmLuP/epLXNoI/I9wHCM5KkrW3eaun8inRiUAp0npykdeuOoLyc/TkLdY4IRVKw7S8c1PcZAg3JFVFjIkkgFElS6gLJwdkJSiS1W1t+MiJKIimbc4Ezx04ksX5rnrgmNWHb+g5OJLVa2+jFgg8/3IKXlrLbTqVqMKUZSV6AzEiKXZEkZ23TQJHUYnM/SijoogGpSCKqtgFS1raTKyNJkSJJAwIxgY6D9u6rO81I4Y033sCMGTMCknY/WSSlSPL/58eePXswcuTIBJmUQIcGSSR1UEVSu4FQQHBcNIok+ZDIcePkA/+ftvWStGSphSgIqH74P/I7ukPvDbeb/d3oITDnL8G2Nj9IIkk00qWfNQT1PfKpRNBsCzEiiHTYtt/a5q2RLsucSaxWA51HkfTZZzuZr/MQcaqhLqKdCbb9hcNKfJ8h6NBh24S1TWpCfhISSQm0HeQWkang4mxeGyKJBeqaWLc71QfoOnxGko/o6sJLEwyvr7Qz16pkK0q2QKm1zS3ycMctI0k6bFuLqm1iHBRJZEaShCKJDts+yRRJSmxrCWtbAhqiU2QkrV+/Hrfffntg8uAnhzIyMlBWVobRo0djxIgRyMrKQkZGBrKyslBeXo7y8nLU1tZi7dq1+Pjjj1FfX4/a2tpAGfuTPTcpgQ4KgkiC2+MriW53grOYoi6xqzVEUQxU9svIyGgzmSWZkyKZkRSdtQ0ARo8ulN3nqGAOrNBFA+emXbB+uhQQRaRcUQbR7oB7zwHVx6GsbUptbQDQpQt7MFcjGGE7cAh8XV1cf2+aSGJfF2fw/YZ2iVQIv33LWy9djMHECbDAyzxWTU3nIJIWL2ZX2DzVUMvMSJKytilSJLVp2La6c9EZSdERSScqj6SmLXftPQDnuu1wVxyGeeQAWM4aSdqyE2BATpFEBBdn8S7wCu1VUmD91iSRFPa30GwPEAjh6OjWNv/1DdI3QQ8BHoLEqbYD20ypGKQPJS+UKJKcTg8OH6ZJj2A4JPorTaxtEts1sba1VAk76tWG3DSb9aRCXJAK2yYWf066jCQlfaOWfXUC7Q61mZFao1P0+lOnTg38WxRFlJWVYcaMGYGy8iwMHz4cw4cPD7z/tddew/z58zFt2jTU1dXhwQcfxCuvvBL3a08gAbWgFEm25Wtg/fJHuHfsA5eShOxH7kDaLZe3uz9WEATs3OlTP4wePRq6tiK4SCKJHjrZbNETSaWlygbIzoZmKFuzDEXTwiWouvMfgU6+/sX3wWekRnEkCUUSIy9BX1wA46BeEa9TGUlVggnWfQdxaOfOuP7egpUgklLY18WZfL+hFOnhV90ItfJVPdN5N+wCi0jq+Na2qqpmrFp1iLntXKPPehlOJOn1PMxmPbPiH6XwCoamYdsyExy14yaBCs5lKDtcLi8efXQZvv5sOwz1o3CNuRJXmI/GdgGdBErb8tpn30LdU2+GvGbo3R35c/8BY1955WYCkCWSSEUS5wJnVl5mnQLrt6bWYISw+917nLZtdRYiKY33YJShHivd9PX+4sqKIJKUKJLKy+sUNxFS/ZU2YdtxtrYFFEnaEElUPhIgbW1LTVRt80EBOZhwN5xYENqZGOzw1rb169dj3bp14DgO6enpWLx4Mb777jtJEonCpEmTUF5ejpKSEsyePRuNjfKTiQQSaGtQRJJzzVa4d+wD4JMTV8/4N+zL17TlpXUsUBPXOFRtA4CMDDMpuQ7G3EX7ZPcJh9BsR/WDz0WsFEmFS0qBykgyIPL15PPPYJKR3bqxFZt7vcngauLfdlIZSTyjYhvQ+txIBUMHMpLqpK1tAJBJVG7rDIqkd9/dRE4STje0WFL0kd8TlZPU9ookGem9VtY2hrLj+usXYubMn7Fpey3WejLwgHUQ5jnC1IgnKJGkBM5NuyJIJABw796PI9c8EJdiAyckJIgkqVLq2bw7ftY24vXwR5vKRwIAfQev2hac4XSqQTrHaJMnsg/kkuS/+23bjiu+HrtE2xqrtU3XFmHbgYwktkruhpTDGKRXPl7Iz0+hzxVV2PZJ1h4pIpIS1rYEtEOHJ5I++ugjAD7p7b59+6IikIKRkZGBxYsXQxRFvPHGG1pcYgIJaAqKSGKh/pUP43glHRzUxFVigH7oEHsgIhU0HIxeveRXW1/45KDqAVrzVz9CqNOOnKGsbazVScs5o5n7DhiQy3zdKupxvCr+q3yqrW0tChupPB+/fUvJd01Vbjt2jF4V7Sj48svdzNeLeRt66XzfK8saS9nblCiSSGI3GsgRNWqtbVTVtrAJ+f799ViwYFvEfu/Yi9Rd3wmMpo+/Ibd5Ko+hYc78NryaTgwJQVK9aCBLqWfxLsUl6NWCJxZhwu92Kh+JSzKDS45Gj+tDmyiScjID/+6vl16o2eqJVATzChRJ27crL7gRX0VSStwVSaKMIqm3yYEF6asUH693b5qI9EYVtn1yKZJErwK1USJsOwEN0eGJpCVLloDjOHz//fdIT0/X5Jg9e/bEpEmT8OGHJ/EkPIGOCxU5E/Zlq5R5ok9AUJ+bI6xtHo+AvXvZA2CltjUlRFJFlRM//3xQ0fH8aP5iuar95aDY2sbzsJwyhLkvRSQBwN4GPiLgW2sIjXTYNgv+jCQl1javAiIplyCSjhzp2ESSKIrYsOEoc9uV5iMBnpVToUiyMix+EefVsB2Sr9qm7niUJYJPC72X5sxZx+SItnnTQl8/eXkkODftktxu++bnNrqSzg6aSaoRaKt1Nu+SzvaKAaQiKex+95JB21kxWe3bgkjijAbwmT6l0QCdNJF0UEhCvRA6HlPy3W/ZUqX4eqQVSbFmJMlZ22Jrs0WPB6LDBa/os7yzUGD0QMcBFxiPKTpm797sMZYoipKKJCps22p1SVaxPeGgRJGkoLJbAgkoRYcnksrLy1FWVoZhw4ZpetzRo0ejvJwdRppAAu0Jf9aLUrh3n6RVCFVa2/btqyMJlr59lcnxe/XKlN8JICfyFJxb9qjaXw6UIinc2mYa1pckZjIzLSjIZa++lnuTwRNEj1aQqtrGhFHa2mY266HX+7o8oVbe2kZV9enoRNKhQ01kZbkxwVYOFYqkp2x9FJxZQ3ZFbqCrkrSiVrL5tFAbxdattCXFGzzNDmKVhGY77D+vh2PtVghEqPeJAlEQ4NzMVrv54Vi/PaaCAycNJAgXKh8J8Flu42Vto1zh4WGulLVNnxt9PhLQNkQSAOhyff14Hu9Ed146825rmL1NTpHkdHrw7bd7FV9LPK1t8mHbsbXZ/ue8RjSSoeUFZh/Bk8QpIy9IIsnmkKw2lsbTC1uNjSd2uxwM2UUYIKFISkBTdHgiqb6+HiNGjIjbsRNIoKNBn5+jan/HmkgrxkkBqkQ4x27Wdu6kcx2k5NTBUKJIAsAMLKYg2BzwHFRHPMmBWoELX51MuaJM8ji9CeLskNcMzhrfyaJ6a5tv8kXZsILVNlJlhP2giCSl1Xhihbe+KRBkqgabNtErv311QYQKk0iiJ7ANgsykRktrm9yxVFrLhAY2kaRLD7WuSJGEniAiya++sv2wGvtHXY3Dl/8Rh86/AxW9L0T1oy/BK1FdqDPDve8QWa2rdScPnBt3ts0FdWZIEEk1Ivs5TOfcMHBi/DKSyLDt0L8pa5uuS/T5SEBbEkm+fpzjgLuSpDMNt4TZ2+QUSYsW7VBlp5LK9IvV2sYZ9DBk0JlDMSuS/LY2L221zDf5flOLYiKJfQ9JVWwD6LBtoP3sbYLVhoa5i3D05r+g+q8vwF1eGf+TKsg/SmQkJaAlOjyRlJGRgezs2DonFlavXo2MjAzNj5tAArHCUNJV1f7OdScrkcR+mSOWVXftYhNJxcXpZLnZcCglkihFEHPfvQdjzlzJ+OP1YedXZm2znD1K8rg9erHb3kOCBXwUJIcaUCQKWbWtRZFkJQbmflsboFSRRFnb4ksSeOsacfjq+1HR5yLsK70AR296WDIbIhyUfTOfdyA9aNWWbW2jJ0nrPDLWck2tbdLPj9qnhSKS+PTQSdbRo/T37BaD2xUR3uo6HJv2dwjV9a2vOlxoePUjHL7kD6rIJG9dIxzrt8O150C7l/KVgkvG1uaHex+7YmACrZCygNVQFdta2iQtqraxwBPXFKlIoq1t0cLrFSAQBLLWRFJw4PZV5iN4MXUTue9mFYokURTx3HMrVV2LHfGztgGAsQutoo5ZkdTSRx8n7leDgUd2S5eiRJGUkmLEsGH5zG1ydvQ0ojgGADQ0tD2R5KmqReWEqaie/m80f/kjGmbPQ+XEaXBuU65WiwaKLOYJa1sCGiI2ursN0LNnT+zdq+2Dt2/fPsyfPx+lpaWaHjeBBLSAvnuh/E5BcKzdGqcrUQaO41BSUhL4d1uB7DCJjKSdO9kBmEptbYAaIkn5pNoVozVRl5+DtBsvDTs/ZW0LHTjqC+kcJADoQWRHVXrNyEtKjevvTSmSOJmMJBupSGolSZQQM7mEIqmpyYXmZpeiSn/RoOrOf8C+rCWcVBTR/NUKcOZnkTf7b+R7RFGEc8MOCE3NqDrIrkTUlQ8bTOsin5OioshwWT+qZco7i5oqkmSeH5WkFZ2RFEokSQWpu8AD8D1Xos2JhoXfk6Htru3lqH74BeS9/JfAa6LXC/uPa+HatR8QRSRPPB2GHl1R//p81D7xWqCynKFPd+TNeRym/j0VfTb3waOoe+5/cK7fAX23PGT+6UaYh/dX9N5wyLXlcra2wDVVKCOSREGAbekqONdtg6G0G1IuPhucKT7PVUeDFGFYS2QkZXO+fCQt2l3Wb01Z2xRnJOVFTyQ5nfTkVmsiic8MJcUvMFXhD55yvGSPfOZ2e0PbCKmqbb/+WolVq9SRqFSmH89zASt2LDBI/CaxKpL8RBJVYTAnJwmcwff5lCiSJk8eQKqwPEekA8xTJI7fHoqk4/c+BfeeAyGvCfVNaHjtY3R54aH4nVgJSZQgkk4otOW8i4UOTySNHDkSH3/8MV599VXNjjl58mRwHIeyMmlbRwIJtAcMJeqIJNf2fRDsTvBxCuCUA8/zyM9nryLFFdTElWhUKWubGiIpK0tZRRpViiSVRFLm/TeBS7LAuXYrDL27I+13l8AQRj5S1jY91/o6l2SOmEiHo6Qkg/n6IcGMNE4PniDttIDQRCiS0qQVSdTAPESRFIO1DQAOHmxEv37qLKhK4KmqhW3pbxGvWz9bhpxZ90VYsQBfTsXhSX+Cc42PUK5wDgRQELFfeBU6liLpssv64d//Zq+oV0vktvgupC3DtrWxtoUrkux22h7hFlvv9cpxt8qe0/rxN8i442qYBveG53AVjlw3Ha6trYtiNY+8CPNpw+D4ZUPoeXbtx9EbHkTxr+/LVvB0rNuGI5PvDxBlri27YV++Fl0/exGmoX1lrzEccm25c5Myy5oSRZLo9aLqj0/C+vG3gdcaRg5A4bx/0zloJxIk7mHK2pbFa5ePxPytyYyk0L/JjKQYFEmUrQ3QnkjykxvB6K1ntxGVXjMEsZVkk1IkvfsurWzS63lmv0xlJJlMOk0miKa8LADsdi1mRVJLH11HEZ/ZSYHqoBbIj4lOP70buc17RDrAXM+JSOY8TGt7Q0PbZiSJThdsi39lbrOvWKvqWPaf16Px/a/g3r0fpqF9kPnArZLPmZKMpIS17cRCPMfhis7frmdXgMmTJ6Ourg533XVXzMfasGEDevfujXXr1gWOnUACHQ36rl3UrcoKAtzl6qqEnRAgFUmRgy9RFEkiqU8f5USS0oGdKkXSLnVEUtK4scj84/XIf/tfyP7r7UzikTp/cEaSviBX9vNQRFK9aET9kXrF1xwNRJVh262KJPbAPDj/h1KoBKOAd4IjTFS7d9N5W7HAtWU3e4Lp8ZLVsqof/k+ARAKAOif7N80Il/4zBh9nndWdvDbKbhNAmyqSlJ9LFAQ6byuISJLLNXNL1WsnUDnuVhy6+G7sH3pVCIkUOGcYieSHZ/8R2JZFEorBEL1eVN35j4h7WbTZUXXfLM2reYpeLxxrldmoPQoUSQ2vfRxCIgGAc+02NL77eVTX1+nAeM73epLwn+ae+NBRxHyLr2IbnUcTK+iw7eB/i3HJSGpLIgkMEr2YZ2f+OaELsW5JZSStX8/OOpwwoSeGD2cTtFR/FWvQth/6fPo3iVmR1NL2UIqk7GxLoHiMEkWSVFalnCIJoHOS2lqRJJVt6Kk8pqhqmuh04didj+Pw5X+E9eNv4Fy/HY1vfYpD502Fa6/EeF8JSZQI205AQ3R4IqmsrAw9evTA7Nmzcc0116CxUb5sczgWLlyIiRMnYuTIkdi7dy84jsOIESMwbty4OFxxAgnEBk6vh/n04arec/jSe2Bb+lu75GuIoojGxkY0Nja27fmJySTHmCD/8stBMv+kb191yhKLRX6Ap0qRtEc5kcSZjYqUBkqsbboCaVsbQBNJALBnz/G4/d6iINAZSVTYdsuAlQ7b9k0ARKcrYCOSgokTUBhuB2vB7t3siVSs8FazbWkA0PzZsogBqOfIcTS9/2XIa3XEoD6LDyWSWIokALjxxqHM12UVSVreCxoqkoSmZnL/YIVXZaX02CJYkaQGjt9olYIUbEtXSR939VYyvNW1aRca3/pU9Tml2nLX1r3yQdstkLO2CVYb6p59m7mt+csVyi62syPs+93oTsNVDWPwIsNe5UcW5wKvUT4S67emw7aDqhTWNwFu9oQ9lowkKSJJi6ygYHCMQgNFOppsqBRaVUgcoUgSRRHbt7OrPk6ePIC0qUlVGdUCJoniLTErkloqt9JEUlKA+Ezi5MkLqmIbAHgOSyuSgI5DJInE8+GH96g8KVb1xydhnb844nXPoSocvuRuOhJBwQKCEiIrGniOHIdrVwUEBeOrBLRDe+cqdngiCQBmz54NURQxb948ZGZm4q677sLSpUtRUVERsW9jYyOWLl2KZ555BhMnToROp8PkyZOxZMmSkC/7jTfeaMNPkEAC6pB+y+Wq9hcarTgy5c+omvZ3iB7lFcO0gCAI2LZtG7Zt2wZB41VwKZCNZ9hoWBRFPPBAZIfsBxXuSCEvT9oOBihXJIleL9x7lVfySJpwmiK1mpKwbX2BPIHWtWsadBz7e96282jcfm/R5iAn/6TtpUWRJBe2raRimx8lOvbEOV6KJE8lPVhufOtT7B9xNRwbdgRes36+PGK/OoLwiVAkMSZTAJCXx/5+KbtNABoOZuTUNGoGTpStDQjNSDpwQDqAPRpFUiywLf5V8nuwfvK95PurZ/wbnkN0BT8WpNpyx+otyo/TYJUMx23+egWpEnNu3dPuA+M2QdhnfNHWE1aCBPcji3fJVg1TCtZvTYdtt/6bsrUBncjapo/8njM4N1L17OftgLeVPOIJRdixY82khap//1ySSJKytmkBQwZtE6XCzZVCsPqeYdraZgkQSXKKpJQUI/Lz6bGVEkVSGkEktXXYtuiig78BwH1Qul22/7QO1oVLyO3e43U4cs0DzDZUEUmksSJJ9HpRde9T2D9sEg6efgMOnHIdbD+s1vQcCdBoy3kXC52CSCorK8MDDzwAURQhiiJmz56NCRMmoLS0FDqdDtnZ2dDpdNDpdMjMzMSECRMwY8aMAHnUutri6ySfeuopDBs2rB0/UQIJSCPpvNNgHNRb9fusnyxF3X/ejcMVdUCIysK21649gl9/ZZM1EyeWoksXdXkcjz56luw+ShVJngNHITrZ1cEiwPPI/PPNyo5LZCQFW9uUVAfU63kUprAnF4dr4kdYUpNMQMLa1pKRJGdtU2Jr86M7SSTFR5EkN/H3Hq7C0eumBwaq7p2RpaspRVJmuCJJJZEkp0jS1EqlobVNkkhKV0Mkte1wyXPgCBwr2Womd8VhNL65UPYY1Y+8pNn1ODcrq9jmB0uVJDicqH/5A1Td9QT5PtFqg1Ohha5TI4xI+sEtT+xn8664hpFTVGnw40bZ2gBAl0NXCJNDe1vbOA4oTmJfw8EQRRKbSNqxgyY6+vXLaTdFkt5IV6SN3domp0iyBLI75Yik3r2zJK323mNKiCQ2gdP2iiRpIslTybZA+tHwxnzZc3gOHEH9qx8xNiiwzWmckVT/yodoeu/LQL/tPVyFY3c8Bq+C6rgJdH50CiIJAGbOnImpU6cG/vYTRKIooq6uLuTv4P84jgs0TqIoYubMmXjggQfa62MkkIAicDyP3KfvB2TCVlloeu9L+Z1OBFCTybCgh2XLIifbftx77ymqT3vVVQOQnEwPzgDliiQ1Fdsy77sRpgHKKk3S1rbW6zL0kCeSAKA4k30PHq6P3yqIJJGUQljbDHLWthYiSZUiiZ2bES8iyV0pryDxHq8LZNWwBmr1xOpwhCKJsLZRirtjMlXbtAzb1tTaJkEcBge3l5fTtkIAcIttXxmlgSCLqv40U9H7mz//QbOqnq5t5ar2Dw/cFkURx6b+HTV/f0X2vbUz31R1LsBXvc76+Q9wrN+u+r3tgWiqHGZz2oVts6CkahtVsY3PTIuJ5GpTRRJBohdb2NdQGaJIYn//lK0tJycJOTlJ0DGqZAKAnWe311plJOnMUkRSrGHbLUSSVNh2iyIpkyB5/JDKRwIAb618rEkqTymS2jhs2yW9yGaXUOs4N+5E81fK7L31L74XYW9WEratZdU20eVG/csfRLwu1DSgad53mp0ngY6LTkMkAT6L28cffxyiMJL7z08opaenY/HixQkSKYFOA/Oogch74zHVFWw8B48q8pN3elAT17BVrd9+Y+d1DBmSh4kTlREzwUhLM+GjjyYhNYke6LmdytQ6UhXbArYbgx5ZD09F5nT5SlGB4yqwthl6sANdw1HchT1wrmyM38Q6FkWSXNU2r4RCJRyUte3gwQbZcOZooNSK5B88htuHmkUdHGB//qzwqm3ExKa4OJ35eqNoQL0gMbmRmBgLVhsa3v4U1X99AXUvvie7UilftU05aSU0sIlDLtkSsLh4vYJkxSWg7RVJAND8xfIIBYjnaDUcP61TfIyax16N2Somer1w7VBHJHnCiCT7slWwffOTovfal6+Bt6Ze8bnq/vMuDoy+BsdufQSHzpuGo7c+ErccEM0QxW+SFWdFkpKwbe8xtrUtmnwkm82NRx5ZiokT38VNN31C7tcWiiQA6GZmkx0Hg4gkisijFEn+6p6ktc3L/tK1srbxRj1ZNKItFEn+76srsSjjh1Q+EgAI9QqIpA6SkQQZa5v1i+Vk+6SGRBcdLjS++0Xoi22ckWT7fiWEGnZ/3vzVj5qdJ4GOi05FJAHApEmTIAgCnnrqKfTo0YNUIvn/GzFiBGbPno3a2lqMHz++vS8/gQRUIeWis1C8bh5ynr4fOTPvQ9EPc+lEzCA4VinPs+isoFZ0ubDR8MqVbFvbZZf1jbq87kUX9cHe7y5DDx2b8HDZldnVKEWSZdxYdN+4AEXL5qJkyyfI/NONqq6VUiTpg61tChVJPQrZCqA9zdKqrFjgLyscAZ4nrQWc0TfBoogkf9g2RSywUMKzr0MUgb17tVUliaIIj0x2QmDflhw0IYyQ2euhSeecMCKJmkz16kUP6Pd72fcCQFvbXHsPYP+wq1D952fQMHseah9/DQdOux7uA0fIY8kSRSrm4BRxyLcEbYuiiKlTP8e+ffWSx4k2bBsA0m+fjC6vPoLiNR8h88HblL9REGD/cU3IS+F/y8Hx60bYf1RXcjoc7n2HyIB6KrQ/3NrW9OHXyk8oirAtla5a54f9142ofWJ2yCp78+c/oPHtz5Sfrz0QHGCt8H7O5l3gNArbZoHqY4LDtj0H2bYcfZ66im2CIGL8+P/hiSdW4Lvv9mLDBtruo31GEqFIMrEJgAN+axvHke3mjh1sgq1fP9/3QhFJFLSytnF6fYilPRixh2372tZGQpGUlWUBn+Trd7M4N3iJhluKSBLsTrL9MQ7sFfh3RyGSwsO2m0UdXrWV4LaGYfiHtQ/2N7IDt0WvF/af16s6V3h/oMi2pqG1zfYD3R85ftkAwZEI3j7RoU1L1Q6YPn06pk+fjoaGBixZsgTl5eWoqfE15KWlpcjKykJZWRnS09mrqwkk0Fmgy0hF+s2XB/42Du4NF1EK3A/H6i1IufwEr0pIrbwEZSRVVjbi0CE2cXDKKcoUORQyirJwmqEW+7yRk3eXTRmRFG7/8MPYuxh8ShJMg3oxt8uBykjyK5J0hV3AZylrGwf0zgQQKds/4DTCZnMjNVXj1WLQiiQ+NYmc7LQqktjdml+RpMbaVqSzQwcBXsaay+7dtRg4sIviY8lBqG+CaJNetQ2gZSAYruzZ4WXb0izwoiisvDWruiEAFBSkwGLRw26PHJRv96ZiqIFYGWbMEURRRNVdT0TkFAk1DTh+/9MonPdv9qFkVsq1CNvWteQjzZr1M+bO3SB7HCVh27ouWSHWHz47HQXvz4J5xIDAa5n33QR4BV/VMn/IcXoKeZ325WuQOum8wN+275URLMGwzvsWSWePUv0+P1xb9rA38DySzz8djXM/idjkrjgc+LfodMH6yVJV56y66wk0zv0EppEDkHHP9WSQc/2L7zFfb3z7E6TfeoWqc7Ypgu5hr4J7i4eIDM4NPp6KJILrCH7a3PsPM/fRdy9Uda5PPtlBLvKEw2DQuI+hrG0mdr9dJZjgFHmYTXqy/6Gsbf37+4hWtUSSVtY2zmggCRxPjISCYLXBLXKwEyrY9HRzwNrGcYAgcZ/7lVvM80iokUzD+sK11dc+0WHbbW1tayUkXSKHqQ3DsMrjyw9b7gY+d+ZjxZ46DOiaF/I+9+4DvkIjKhBR6VWB2ojqX72NVjjXbQefkQrT4N6kBTQYclVJ3eWViiMZEuic6LREkh/p6em46qqr2vsyEkigzZB+yxU4LpORoabCTqcFNZkMGg3/9hs9UB0zRpkihwKfngoDNUBzSkubA/sdZg8+9cXqBuXhIK1tLRlJ6TddpljhNGhgDoBI4lIEh6FDZ2PdutuRkcFWCUULv2Q+HFI2T39GkmzYNqVQyUqPUPgYORGFvAMHhUgljly5eLXwKMhH8kOwOyCKYoS1bYeHTST10VuhC/+5iZV1juPQq1cWNm+OtMcucBTgGjNR2p1B7Do37IBzHTuzxv7Dajg27IB5WL/IjXKWCxV5TFRGEp+Wgk2bjuHBB6Wrn/mhRJFU+NlLcK7bBuemXdBlpSPttiuhSwv9TTiOQ9b0W5F67YVo/vwHcMkWJJedgrr/vMskZOwr1gbyHgWrDc1fs/MzUq4+H95j1bAvj1whti1dBVEQSPJQDs6tbCLJUNoNxr49mNuCFUmONVujsnI5Vm+BY/UW2H9cg6Ilb4ILywz01jXCtvhX5ntd28rhLq+EoWdsCwZxg6COSMrg3NBxiG/YtoKqbZSS0FBcoOpc99+vLD9Fr+fBU567KEEpkor0bMJBBIdDXjN6GdnXYbW6cPAguz+Qs7ZR0MraBr2eoHkAr0QulRIIjVbJSoPp6aaQKneFvB2Hg4LLgzFiBH3/SFWANA3ugyb4ckHTiIyk9lQkrXJnBkgkP2pFI954ZxueOzu073Nu3Ekes8vsv6Hq9sciXvfW1Af6B0Bh0YsgsklotqPmsVfROHdRxG6G3t2hy8uGaUApTCP6w7VjH9y7D4BPS0bSuWNgGTcGrm17JU/l3rWfSSTZVqxFzaMvw72vErrMNKReeyEy7r4WfDL7/kig46LTE0kJJHCyIfWa89H4/pdwSpBFzs27INgc4AkbkJbgOA7FxcWBf7cZiIlJ8DWsWsWe9PbqlYWcHNqmowR8WnJI5lAwlFjbRFGE9whBJHWNTelCEUkGsxGZf74ZGff+TvGxevXLgxleZvbOvn31uOSSD7BixS1RXysLtCJJIi/MaIAoylvbvIS1TV/YBS5Gdk8KUW2GUn1FCzWl2kWHE2KzPSKLYbWbXTWpry6STKEmU4Bv8sMiktZ7MjC5fhQeS9mBAfqwYzKex8a3PiXPAfgygNhEkswERwUnQRKH6Sl47LHlio/jUjDZ1+dlwzh5IlInT5Td19AtHxl3XRP423LWKCaR5DlUBXd5JYyl3XzZGoTFI+WK8YDHwySSvMdr4dq8G6ahfSWviWrLqcmCaWApWf3Re7Q60AfFaq1zbStH0wdfIe3GS0Nel6skZ1v6G9I7KpEUbBdTEOSe0VJ1USsiifVbU1fhv1RRFOGhiCQViiRBEFFRUa9oX83zkQCSRO+qd4Lj2EOLg4IFvUzsdmnXLratDYieSNLM2mbQgedEZpvpkQmFloPQZEOTJJFkBhcUTj7OWI13Hd0i9ps8eYCk6kyQIJIMfboH/k1Z2xoa2phICuqXFzrZBNnzb27Gc3OuDHmNIpKMA3vBUJTH3CY6XBCb7eD8RUgU5F757W+C3YnDk+8j5xLu3fvh3r2fmcnX9MFXMPTuLrtAwIpvsH6yFMem/T3wXk+zHXVPz0XzNz+h6xevtMm85URCm867GOh0GUla4ZlnnmnvS0gggajA6fUo+GAWki8+m97J44VTYfUab30TrIu+R/PiX+FVYfvxg+d5FBYWorCwEHyUK97RgFx5CWpU169n5y6MHRubGgnwWYMMhPzc7ZBXJHmr6yE62YRT7EQSe8CbMWUismbcpkqZYMhOw1ADHY78008HsGWLtuHugpUgkoiKbQDAGfRwgmfa0IAgaxtFJBEDNR1BFmpPJCn/DkWbM2KV9rhgxHZvKnP/ISw7Gk8P3K++eiC5bb0nA9c1jML2MPVT+PPoOV4H64LF5HEAkOXtZStaqbK2sX9vb0oyvvtOejU1GMcFE752dsEXzjxm6DiXkiR5f8rBcvpwMv/OvsJHxFg//oa5XZebhaRzRsFyxgiy0qcSS5xQXY+MXYeQ60JIW+7ee5C5v7F/qWTWmt8GZVOZ68RCHcPCJldJTovzxgsi1CmSUlomyVoRSax+m+oW/I+j93gdSWTquytXJKl57uJBJFGWHZPoQdeuacxtB7yWQA5fOChbm8mkQ/fuPgt5u1nbDAY6IylWIqnRKkMkmQLWNgC40sQmIf/v/8ZKnodSJHEpSdAXtma0pRKV4errHTEXHFAFd+t1rHQrD6GniCTT0L7gszPI9wUXJlCUkdRCNlXd8y/JBWk5SBWLCeyzqyLkb8Fq81UdZfwers27UfP4q1Ffz8mKtpx3Mc/frmdvRzz55JPtfQkJJBA1dOmpyJ/7BHoeWgo+nW1ncfy2WfY4tuVrsH/IFTg27e84et107B8+CY3vfK715cYH1GQzSAa/cSNb5SElo1YDA1FaV0nVNq9EZT19YWxEEkVyGI3qm3w+PRVXEQNAP2bN+lnZdVXVwvbDatiWrwkERrNAhW1zUtY2k5FUIwFB1rZ6tkJFn5fNzM6gBuFaE0mUcoYF0e6IsOGtdWeQ+59hiFwxl1IkXXFFP/TpQ4fnWkU95jnCFAhhz2Pj25+QRKkfjvXb2WGccvJ8FdY2L2FtW9VogdWqLMsMAJ5o7ot7mobg3qbBGF93OrZ4Qkk7iohUCl1mGkxD+jC32ZevgbehCfZfNjK3p1xVBk6vB5+SBMspQ5j7NC9hW8D8aHznc+wfPglHJt+HA6OnoOoP/4To9UL0eMhcHEPvYui75ZOZM56KQ4HcDQr5b/8T6XdcLXltvmMdhhBGYri2SxNJ9uVrJG0x7Yqg58WjgEhKblFGxjdsm/16gEhiBAT7oS/KV3yet97aoHjftlQkweNFjx4ZzE2VggWckd3fUxXb+vbNga6lOqYuwlssDbNZo89tkAjbVmjBpyA0NaNJopJnWpopELYN+BY0Hk7eBUOLxd5i0ePJJ8fj9NOLpc9DPMO6zDTocluJGkqR5PWKaG6O7bOqgRhE0GVxdB8TXDVP9Hrh3LKbuZ9paF/ocjLo4wRXuFSUkeSF7YfVaP5UXW5dNAhXJNl/WgfRShRTAdD07hekajyBjomTkkhqaGhAfX19e19GAgnEDM5ogHnMYOY2u0wInufIcRy9+S8hK4yi1Ybj982CY902xdcgiiKsViusVmvbrvrIhG0fO2ZFVRVb2TJkSGyTPj+MBJHkUpA9QFqZDHrJQYMSkNa2KEJLdRmpuMh0FNkcHVj5zjub8J//rCS3i6KImsdfxf5hV+HI5PtwZNKfcODU35Fh4wJR+luXJkck0YPaQNW2RvYghU9PYUqq6Yo3GhNJEoOriH3tjogJcjlRUa27yYUiHUPar6O7f52Ox803D5W8hk2esJX7oGdfFEU0vfel5PsBAC43m2SIs7VtvTsNV32o/PsOR4NowINNA0Jei5X8BQDLWSOZr9t/Xu+zrBHfS3AYd9L4U5j7OFdvgYew0rr3H8bxPz8TYpVs+ugbNP7vM3gqq8gqP4YeReAMeuiL2J/dXXEIjp/Xk211t1/eRfKFZyHzgVtIJVXI8cImJVTVSz9EmwONb30ie9x2QXDVtnZQJLH6bZ7KSGr5vycoSD4EOh102cqKNwiCiO+/36f4OuOiSCKIJNHjRc+ebHvwPm8SOBO7v1+zhr3QEhwgnZSkrsqpdookPR22TSiXlUD0eCDaHKQiKSnJAINBF6JIAoBbLQfwU9YKfN5zByoq7sWDD54hey4vEbbNp6eCT00OPBNU2DbQtvY2MUiRlMnTBFawJdJdcYgM2jYN7QM+LYVsI73V9a1/KMxIanz3C/n9NIBr616IQf2WXEVp0elC86fL4n1ZJxTadN7FwElHJFVUVGDy5MntfRkJJKAZzGPZK9DO1VtCGvBw1M76L7ky0PDqR4rPLwgCtmzZgi1btkBQoRSIGUTbybUokrZtY0+aAGDoUG2IJEqt7lFQVpcM2i7MjToU1w/K2mYwqD8uZzLCnGzCdVTIcgv+9rcf4CSUWE3vfI76F98HgkIoPRWHcOzuJ5idoOd4XcRrAKDrQqtkOLO0IslvbaPsm3xGKjgVRJLmiiQVRJJod8JbF6pI2k8QSb3NbAJQriLLDTcMDXxnLBwVwr6roGfftWWP4vBwx6+RKhs5a5soqgjbDiOSfnFlYnLDGMXvp7DDm4oqofX7oTIs1MByFruymlDXiKp72CpqXUEujEFKpqTzTiOP3/zdL8zXG9/6hDkBsS1ZCXc529YGIGBro3KS3PsOw8bIbAJ8123o5VMi6NJSkHnfjeR5AserCG2DvMfobBo/Gt5YIKuMaxeozEgKKJI0IpJY/TZ1Fd6W59Fbxf6+dTkZiio8AcDmzcdQXa28rWtLa5v3aDWKjex7ZZU7Ex5dJBkkCCJ+/ZX9jAwb1tomZGaqy33RKmzbRySxEUtGkl81TIVtp6f7Fm7CiSQAyObdGIh6dOkikXkYBLGZXc2UT0sGx3HQtVR0pMK2gbYN3A5WJGVKKJIGDHgFn3/us7NJWduN/Ut9n5OotKvW2iZYbbB9p0xFrgVq//lG4N+OVfJOiaYPv47n5ZxwaNN5FwPtQiQ1NDRgypQpyM7Oxvnnn4/GRlp6PGrUKGRnZ2vyn06nQ2lpKZYsWdKGnzaBBOILikgSmprh2s5e+bP/tglNEisStu9/CwkM7IggM5JaSBiqikpWlgW5ucoGMHKgBD5uRUQSe+CghbKBIjnU5jT4waenYlpSheQ+DQ1OrFvHXpltWshuc52rtzA9+l5i5VuXy14tBnyBgzYTXfFDrmqbLj2VWTGkrTKShGZ1iiShNvT+3kcQSSVGQkkmYW0DgKKiNDz77ARye/i3Ekz+UJW0WLCvZNi1ZBVJKjKSgvK2yj1JuLGRrfqJBge9rfeLFs+tecxg8ncRbezJVNK5Y0LCNo29u8PQj6iktrOC+Xr9Sx8wX7d99wtcu9iqH11eduB5oYmkSjJoO+mskSHXnXbthcz9Qo/XSiSJokgSG8HwHq9F8zdtN2lSDJVV25L9iqQ4Wtuo6mgrj3L46acDdLvcJQs//XQADzzwHaZN+zwwOWZh7Vppm3Q42tTaBqDXR5FZXICPMFlnjxw3LF26jywvH2zZUlvZVLuwbb0vbJsBbwxjPH9BDEqRlJ7u+7x8UNh2yPvtyokdgVDq+BXE/nEBZW0D2phIClIkSZFbAHDNNQtgtbpI2yifnd76OQmleojNPUwpvcGdhhdsPfCqrQQHWvor56ZdZNZZPFD/4nsQnS54G5rgWLtVdn/H6i2kWj2Bjod2IZKmTp2KefPmoa6uDosXL0ZZWRm57/jx41FXV6fJf6IotrsELIEEtIZpWF+A8O6z2H/n1j04fPHdkscUmprhkMi16BCQyUg6eJAdEN2tGztMMxoYiPG/IiKJWIGKNWgb0NbaBvjsbRZOwDRLheR+dXXswZpUKGPTx99GvOY9Tk9YpGAzsAfreh0XmJBQ4ct8eiq4JAaR1EaKJKncgIh9GYqkCoJI6mFgExCchLXNj9tuG45BgzKY2ywII3uCiF0q64EFx6otEXlZsiWMVXTjwQPmBUQFnWBYLMoncCau9Tp1Gjy3fJIZxqAqREqQenVkhThmJTxIWJMk4NzM/i2Dr1Nfwq7YZf9hNfnsW84OVV/pu+Yh+SKJAhLwEVN+CE3NEB3KlEZNREh5eyJ4LKokI0lraxsLRWn0dZx55lxsYFRy9IrAk0cKcOaZc/HMM7/ijTfW4dJLP8Tdd3/JHG8fOqQus6otrW0AMNpQFyDtwrGpObR/EUURf/0rO2dGr+cxenTrc6GWSNLK2ga9REaSAgs+BaFRjkhqUSSZ2UQS3B6IbmWKKMry5e+v/UodE4RA/lI4KLIvHghWJHll1IY2mxtLlpTDc4RNJOnzW+2RfDq7mEawyloMIpLet3fF1Q2j8YKtFM/aeuGS+rHY6E5jqoABgEsyI/+dJ0OU2ebTh6NH+Tfo+vVryH3+QXCMxTYlKC8aj4peF5I26XB0xDY7ATbahUiaP38+OI4Dx3EQRRFr19KlYe+44w4ACOyvxX8JJHAigTebYCbKOjsYOUk1j76k6Ljh1RY6HEh7i+8Zr6xkD1iLirQjksjMTk8MRFKBFkSSdtY2oHUA008nHYLIWvUTHE5yJRuIzPISBSHU8x+E4GBN5rH07MF6ipn39TeCEBgAh4PPYCuS9GRGkraLEmqtbcGKpFrBgFqRPcEsIYgk6JVNVC6/nF0+3R0+fAiaNErZocIh2uxwbgor4y5XtU2FlDuYbPhUhkjq3TsLI0cqL2MebEmSql6mBsZB7MBtFpLOP8NX7S0MFOHKUvDIhVG7tuxivm4c3HqdpkG9JY/BguWMERGvZf/tzpBy4eFw720lkqTalHDYl68JCeruEAuKQdcgN9kEtLe2sXBOiTRpM+PLpggx4Gx7CV7dEXlNr7yyBi+/vDri9aNHlRcVAOKkSJKw4Rk5ESP09cxt25tDP+e33+7Fb7+xlRPnnVcKi6V1ga/dFElGiaptMWQkCS1FDKyEnTygSJIgHqjMtohzEWpd/7H5DN/4hOOANInKbW2GIEWSEpK4oqKeVCTp8lqJJF0Gm0gKWRwTfL9pk6DD07ZeIflrzaIeM5vpttrYuzuSzz8D3dfPR8G8f6Po+zdRuOg/4FOTYR41EGnXX4T8//5D9vNogfqX3odrp/IstQTaD+1CJA0f3jrw4TgOPXv2JPft0aMHRowYEej4/aqiWP5LIIETDWaiUk84keQ5dIy0GoRDLsi0LeCtb0LDnAWof/kDuPYeCN1IKpJ8zVplJZv00JJIMhCVWGKytsVRkRS1ta1lADPKUA9OQg7CGqzJlbV376wIIVGE2gbS2qSXUSQ18+xJaIrJ97mF+ibSFsWnpzAzksig0nbMSPKFbbcqknZ7aatmLz2bOFOaw6XXs+/xQ4IFtzYMwzfOlvu1hdwRBQHu8krmeyhYw62PWlrbgqrCReQ6heG224armri6goZQxt7qlEQUTIN7KdtRr0POE/cwN1FZYizyRU49RlnbTINbJySW04YF2ggl0HcvgL4gN+J1Q4+uyH9vJn0tO8oDYzgl+Uh+iE4XHKs3Q7DacHz6v1HR7xIcGHst6p59u/3GhCqtbSltQCQVpOkwkiBRAGD1MQ7fulr7pyNeE1600eP3Rx5Zhrq6UCL76FF2e0ShrRVJANBPzya7ttSHkjuzZ9Njqb/85cyQvzMz1Sk5NMtI0uvIiZ5XoSKIBb9lWE6RpC+myXuHwtLztCKphaxKa217KHtbbWUtGt/9AvWvfKi6f1KLYKWVR8E0+9ChRngIIkmJIkkIViS1KH6+c3VBkxjpVFjrSScz2Qx9fZZoXVY6ks4ZDdOQPhHii6RxY5EyiW15NxFK2GggOlyoundmYs7eCdBuiqSSkhKIooj09HTMmzdPcv8HH3ww8O9p06Zh3rx5WLx4ser/5s2bh6lTp8b74yWQQJuDyknyHKoK6aBs3/+m+JjuPQfkd4ojnFv24OBpv0P1Q8+j5u+v4OCZN6ExKISPsr/4w7YpRZKW1jaqoq8ckSQKArkapwWRRJEcsVjbAKBQ58QNZlptwiSSDh6VPrgowrlhR+v+EkoDOWtbs449yUox+n4oqRVQfZcs8Axrm77NMpII5RADot0Jb5AiaZcnhblfVpYFOSDsPzKTKT+kVGw/unPwh6YhWOTID5A7nsPHyfwFPpVNeDW++0UIkSbKVMSTC+NuPY43UIlMyVv++MexqiauTtH33fDZ6WQQqlqYBitTJCWNPwWG7mz1FEW4sogkF2FdC4CwIgQTSZzRgJQrxksfJwjmsXRFwKQzR6JgwXPMbUJ9E7wtBLyXCOSnYF++BlX3zkTj3EUQahvgLq9E7VNzUPOXF1QdRzOIaomk+FvbAODBZLYCzY9Zzb3gapmIvuUojlQmBqG+3oGPPw7NRDlyRF1p77bOSAKAPjo2kbSjgcfWrb7779gxK774gv1dXXRRb5x2WreQ19ozI4nK+YtNkdRCJAnSRJIuMw2GviXMfViKeea5yIykFkVSemv/R2USHXjmPRz/00zU/O1lHDj1eli/WK7o3NEgmEhyK1AbHjrUBA9BjIcQSQRZH1JApKXv/M7FHkd6wcMusp9ZI/E7hSPnyT/BODhU2WQ5cwQKFz6PnKfvV3QMJXCu2QrbYnaBiAQ6DjQy4apDjx49sHfvXjQ0NCA9XX7wNWnSpMD/X3vttZjOfdVVV2HChAmYMmVKTMdJIIGOBPPoQeQ217a9gc7ItVe55cTVzkRS7b9eD83KcXtQ8/eXkXLRWb4JKbVS0aK0OHyYPWDt2lVDRRIRTipXGV6oayQnaKyVerXQ3NoWNIB5JHkX/ucoZu7HKrErSyTBRxr6rS5u6h7leehy6LBtALBz7Kyw5Ja5F5VDAJ6HrksW0/9P2gLkfmSVUJeR5PDdQy3YQyiSBg3qAhxg3wtKMpIAZSq2/9q7444Wpsa1g5ajZ06/FTWPvBjxuthsR/VfX0CX51sWjWQzkhQSSUG2tmMCbZkCgPfeuxIWi0GdIqllQG7sXaL4PXIwDlKmSEoaN5bcpstjK5KEpmYINkcgvBUAnJuliQMW+NRkGMIUWJn33QTrJ0tD7ksKFkJB64eJsGoDgHPrXui75pGKTgr1L7BDlBvemI/ky86FhViMiRtUEkmGljyu+BJJHIYbGvFkyjY8ZB3A3OOAkISr6seAh4itXvm+9JdfKnH77a15WB3B2iZXYW6gnia75sxZh+eeOx//+99GcjHhgQciKyeqJZKkKmaqgkFPq2pjIZIUhm0DgGXsEGbQv2Iiiara1tJfB1u+KEVSg9UN+LtJQcDxPz6J5PNPB6fQ4q0GftsfoMzaduhQEwR7PXNbcFuuoxRJQdY2/yIMVXwDAOzQITU84xCAabgyRZEuIxVdP3sJ1k+XwV1+EKbBfZB86TngeB5p114I68IlZA4TC3xWemhgeBDqZs1F0oTTErE0HRjtokjyQwmJ5Me0adOQlSW9Gq0UkyZNUnXuBBLo6NBlpUMXtHIRjOCJnZJJfWDf/UdCbCEUOI5DUVERioqKNGvsBasNtiUrI1+vaYDNb82TCNsWBBE1NeyJeV6eNhXbgOirtkmtpktVJlOKeFnbAF8OwQVGdmn3cEWSbfkaHL9vluzxXTvKW/9N+OINPbqCM0gP+poJIiml5W1kDkFuJji9Hnxy5GC/rcK2VVvbgkr+VgvsSUefPlm0TUxBuW6O41CggNjc7k0NTEpcW/ewT5efg7QbLyVXVZve+xLOjS3VnjQjklrbr3IJ+5/BwGPSJN/EWZUiqWUIZTlLu0pwuvRU6LvLh4KbR7In+gCgy6PHSuFB9u49yhcX/DCN6B9hjdTn56Dgo2cUvd98Kq1IAlq+g6I85jZ/f+bculfRuZSg8b+LNDuWYgSHbStQLVhblB9aVW1j9tst/59sPox30mjb1nZvqiISCQC2bWtVgYqiiCNH2p9IklMk9dY1o1THtuD9/PNBOJ0evPjiKub2Xr2ycNZZkTbXzEx1RFJyska/M8+TymmvKwZrm8KwbQAwjx3M3Me1fV+omoYAVbGSS/Zb21oVSRSRFH6dQlMzXBq2IX64Dx5Fw2sfB/5Wkn+2fftxeBuJIiCZrf0l1XcKIYokL0RRur+zMXKtOJMR5lH0gnTEdaUkIe36i5D9yB1IuXxcoD/gTEYUzvs3urz+N0lbY+C8KUno9sNcWM4Zzdzu3LgTjt8iiwYl0Ir2JtnalUhSg9tvvx1792r30EvlMiWQQGeEsT/7nnZta31uPIfYBAAToqjIS87zfGBAyivMXZGDc+secrLY/MUPvn+Q1jYeDQ0OMgw5J4deqVELipeRI5I8RFUyANBlZ8RwRS3nJ1Yaox2Uh6+E0YGWrRN366LvcWTyfYqO7wparWQRiABg7CffZlsJkW2yvsV2dZSwE7aQsKxgUMoWoCWRJIoiBKsKa1uzPcSyaiUG85mZFtImJpcTAvie7cJC9oQ+HE3NvnuCIpJMg3qBTzIj9bqLyGPUv+wrQy9nbVPkU0MokbTanUHut2jRlMCzoVaRxKelIO3GSxW/RwnMI2iSCPAN1o0DSsnteiIjCYjMFpLLMGPBPGog+/Xh/VGy60vJ9+rysmEo7Sa5DwAY+/Vgvu63XFP3WdIFZ8geOxy2JSsVV5DSCqJKRdIwg2/FntdIkcTst4Mu41RjHSabYi/BvW3bcQgtz+vRo1Y4HOq+5/bISOI44Boze+yzadMxTJ36OQ4eZCvvbr11GHNiF6zQUYLkZPaiSDQgiSQNwraVKJKo6IVwWzt5rmYV1jaCSGpkWPDcKhZWlaLqj0+GnkPBNPv4cRvWHGfvp0uTJ5K8DaFE0n5BOo/LziCSTKMGgpcodKAGnMmI1CvKULz6Q2Q/djfzurkkM5Imno5uy9+CviAX2X+9nb7en9dpcl0nKrSad0V9/nY9uwoMHz4c3333nWbHk8tlSiCBzgaSSApRJKkgktB+OUmuLexJAgB4DhyVDuDjONTU0JPy7GztiCQqbFuOY/BWsxVJfHqKJtYFF1HWN9pBefhAgMoh8FvbRFFE7cw3FStHXNvLITpdOP7AM3Cu3cbcx9ivRPY4NoH9+ZJ1vu/DS1jbdC2qG46VkdQGVdtEh0s+YDp8f1crmUcO5lMNdLldBYokQPk909jshudYDayLvmcfp6WyV8adU0IG/sFo/nqFTwUpaxtU9t0HKypXudlKvzFjuuKii1pzicxmdYqkvDf+Dj1hJYsW1OqsH4Y+3SXVeVxKEln9LDiDTHS5IxRKSmAaySaSAF8mSu4LD5HbU6+eqGgF1dCLbZ917TkA0eWGi6gqmnLx2dAVqsuZExqtioN/NUOwIkkBkdS3Jbcnnta28N/lWnPsRJLN5saBAz4SbNMmdeMPIF5EkrydaayB3Uc7nV688w7bkmU06nDzzcOY2/R6HiUlGUovUTNFEgAQDnx4FZZiZ0Fo8ilolSiS9MUF4DPZCjZqLBQMkbC2cWFV2wAglRibsK6TqoIWLRwbdsDxUyjpoeTZBoDPbew2K7ivpMO2ra0FqbwCVhN9nR8sIslyZmQVzVjB8Twy7roGJds+Q7cV/0P3LZ+g9PgK9Dy8DD33L0bBu0/B0KJaMg3tS6uSNuzU/NoS0A6dhkjSAg0NDbjzzjsB+HKaEkjgRAK1guvcuBOiy+0rw65y0uDeLU8kiaIIm80Gm82mWYWFYBVVxDXtq5S2vnAcaWsDtFUkRW1tq2IPnuTK2ysFRSRFG7YdPoCh5ON+a5v3cBWddcSA2GxHzT9eQ+Nbn5L7KFEkNRNEUlJLvghZGaWgRZHUTlXb1NjaWKAG82lJOlq5p0CRJIoiBIGtPou4BqsbB0//HbndXyJen5+DrEfuYJ/P4YJz3XZZaxsVtB+xn92XkSSKwFYvexB+zTWhpIia6kr6cadKZhVFi6Rzx0huN/an1UiAjxCggumDA7ep50EOUrY6AEidcj7Mpw2LvK4kC9JuuULROSgiyb17v29xhFAQGQf2guU0aescC06JxYu4ILhqm4z95c9JuwNkgFZEkpJ+e5C+EXl87GXT/QHVHYVIUkKi99I1wwB1bfxttw1HQQFNTlx/PdvixYJmGUkAqDi82DKSfMQmpYYNViRxHMdU+wJQpAQUCGubv7/WpSlQJDGuU2k/ohTWTyIXUZTYVgFgi4d93wQTSSTx5fW2ZiwKgmQ+EsC2tllO155I8oMz6GHs1yOw4EItglhOYbfbzvXb43ZtJwLau7JdpyCSpkyZgjlz5sR8nPT0dAiCgD59+qCpSV3liAQS6OgwSVgdjj/wLNxEGWcAEcGpfrj20O/xQxAEbNq0CZs2bYKgUcfskrDUeWsbpa0tPI/qavbEXK/nkZqq3QBNT4zQPIJ0404RelrkIwF0RlLU1rbs0Ew5ikj67bdDuOOOL3DBZR9jrr1boLqPEjTMllaJKikt2+xln89f8YislJfnI5JYYdttUbVNTdA2C1aick6aSeL7VyCHFgQBFRXlsvsBwLGvV0JoIPJPdDpYzhjeel2/u5is4Gb/Zb38yRSOm/zWtirBiGZiwjN2bFHI31lZyokkT6Y2z2s49AW5MBALAwBgGiBPqlL2Nm9Vq7XNc5iuYkjB0LNItkIdx/PIf/NxmIMmBpzJiC7/eRCGbvmKzmMkiCShvom0v3ImI4x9SmBhkFhyCM5paxOosLada2wl/CilmVow++0wRRLPAeON0ZGNwfDnJG3YEA2RpP00RQmJbuREDJAI3Q5Hly7JeOyxcyT3kdsejDaxtsXQhwlNNnhFkO1qsCIJAECpwDzSRJIoihCJqm1+BTGvIGy7SWR8nxoXzGBlLimxtgHATk8KWOuPwflPUrEH/qpvosdLLiz5EUEkGfQwKwzajieoMZ73WA28Coo4nKzQat4VLToFkTRv3jysXUsH/6nB7NmzUV1djfHjlZeqTSCBzgBD7+4RA0E/mt7/EvYV7GeIMxmRVHYKc1s0QaxawFMhIan3eiUDGjmetrZlZ1s0DaaTEvhIEQ1U2LZcVTKl0NraFm7dyeJplcrs2WuxZG0t/tncFwNqxuNTh7KJoxT4rHRFAcQUkZQE3+CSDNuWUCTRVdu0WwWKlyIpVWIuomQyBSiv9FezmpafW04fFjII5nQ6MoDVvkJBHoLKsG2p4NF+/UKLFKghkpxC/EIupVRJZpmqZwCgI4ikpgVLAv9WW/kM8GVpKIEuJxOFC55D4Wcvocvrf0P3zYuQcvk4xecx9CkhtzW+9wXzdeOAUnAGPZLKTmUSpW6Rw9PNpZhYdyourx+Dd+xFgVvJtb3jEklJXGt7zlnUZe2oAqNvnGCUv0dKSjLw3HMTMXEiezFr61YfkfTLL+rHE+0Rtu3HKQblCu45cy5Bbq50IQ+djsef/3yqouNpam2jqsvGkAsmNFpJNRIQmQnFGdn7ijKB36LdSbb3/v46eFEilchvZPWRsll8KuHeHbnwqlSRZIOeqSQKUSQRBXWAoEUyr1fydwEiiSRjvx5xrgapDEaJBRLPgSNteCUJqEGnIJK0RllZGdauXYs333yzvS8lgQQ0A59khqFHV3J7zd9fYb5uHFhK2uJcu/czlTWCw4nmb39G3Qvvwf7jGtJmEA1El1s2AFYIqlgVAZ4nrW1a2toAQE+FD4BWBQGAlyh1qhWRRIVtKyUFwhFuuctXYXe43zoIs5qVlTSnYB7eXxEBaHWz90kWPRDdHpLA00tkJLVF1bZYiCS3yMEB9sQozSBBuCgmkpQNhKUGrxl3XxvxGsv6BACOlQpKQitcgRPsfiKJ/dzn5CRFEEeqiKTonSGySLvxUuZvlHTeaTDJhHEDIK1tnopDgVwSKQsxBbNEPlI4OKMBllOHIvWKMuiIjBQK+tzMQHZZOKhJhWmIL+tKX5CLZEbo9oPWAZht74G93mRs8aThseZ+mGP3qXGda7ai+i8vwCNRUVMNhGY7Gt/5DDX/eA0Nb8yHe//h0B1UVG1LDiKSWGS3ZmBcxumGWozIZj9v0ywV2HZRHfbt+z/ce+8pGDSInfOybdtxHD7chIqKetWXFJeMJIX5cKcQOUnhuPnmYbjkkr6K9jWZlJWb11KRRGckxaBIamyWVL6EK5IoO5OctY2q2AYEZSSltLbvasK2lfYjSiBYbcxxq9KMJAD4wRVKFHEmI3hz6/fIW0x01lQLkSR6BVgJi78f4RlJpqHK7t14Q5eXDRD3STyC0RPQBiclkVRfXw9RFPHaa6+196UkkICmSLl6our3mIb2hZGwtonN9ggVh2Bz4Mik+3D0dw+i9h+v4djVf0bW75+E+etfNfHqug8ekVUcSAY0ciCtbVoGbQN02DZAkzkATYTpcjJivCKfFFxraxtnNIAPsrfl806JvSPxur0Ei53yZeQppF5zgaL9ml3s+yZZdAWk3yzopKq2tRORJIrAh+5iTGsahtsbh2Kpi70aKTWYT+HpezC8fDsFPVWaMOI6CDLr5suYOUKW04cz9oaywb1Ka9s+QpHUt2+kakcNkUQI/zSBsVcxcmfe10pu8jxSr7sIeW88pohU1eXReWv1LTZSBxFsLwWqYls8oHaCYxraGpqe9cjtIcRwlWDE585IdeQce3HAUtLw+jwcvvyemBWCnqpaVJ57K47f9zTqX3gP1Q//BwfGXIvaZ+a2huIG2bNXuqWz8YKJJM4cR+UA477iOeDdc524frABmZwLHEQM1DXildSNmJ68B5lBfWr//uw26sCBBqxde5i5TQ7tqUgaaaiXzUnKyUnCnDmXKD61yaTs3FoqknSkIikGIskqRySFKZIIa5soY20TiKBtoLVqG2c0BAgIKmzbAV2k1V5DIonKhPSomGZ/5wolYoNtbX7oCwly3V9IxKvA2ha28GQeNUjxNcYTHM/DUMRWsHsOJhRJHRUnHZH09NNPY8kSn7S7vLyNpcwJJBBnpP/+KtXvMQ3vTwabAj5VUjBqHnsVjt9CVQO62kakvrIQ1Xf/M+Yyyp4K+Q7DW11Pb+R50tqmtSJJytpmt9PfA6lIUrlqz4IUwRFt2DYQmrmSq5JIAoAXbdEVOMj4041IvuxcRftaCSIpyWUPrNix0KpIilztpzKSvBrK4llVaZ6y9cZfG/pgqTMH37tyMa1xGD535kXsJzVoTJUgkpROpvR6ZSuqrKwMy7ixyH36z8z9TUP6MBVgSqA4bNshrUgKt7UB6ogkhye+IZdpN16K4jUfoevXr6F41Qfo8p8HFStSjH3p563++Xfgra5THWKqy82EcVBs6kI1CCaGFO0/pJV4MpYWo/DTF5B03mkwDizF5j4jITDUATWiKcT66N61H81f/hj9RQOoe/q/vqIQwRAE1M38L+qenuv7u4VQ+tWVibccdP8LAEY/mWE0KKo4pjUyjCKePcOL1dk/YnfO9/g0cxXOM/na02BbUXExOzvr2LFm7NgRXdZSfKq2KTtmEidgqJ7dV/vx2msXQUelWTOgRJFkMukUE/hKoCcWvFyxhG03NjMDrP2IyEgyEgorGWubvzocnUt3WgAA0/VJREFUC3xqa7vuXwSiFEkA8BdrfzzY1L91UUZDIslFEEluFTmRWz2pITlJrOqm+nw2kVT7xGxUP/Q8hCabrLUtXJGUfP7piq8x3tAXE0TSgYQiqaOi7XskAvv27cOMGTPIlbYlS5ZgypQpUR27vr4etbW1WLdOQfZCAgl0YujSU1Gw4DkcuepPit9jOXMkdJlp4HMyIDAIGveeg8BZowD4Av0a/0dX1mpeuAS1hbnI/ttdqq89cD6pfKQWeCWsbZxE2HZ2dnQTVwqZZnqQsGNHNfLz2WXOqeBAXiJMUSmofCQgtkG5Li8baMkRMXIicjgnqkXlwa/bvGmoEozowrsUvyfrwd8j8/6bFO9vdbAHhubmJrJCFWcxBQZsfDIjo6AdFEnVghH/s3eL2O/v1n4411AdojSSJJLgBpVmpdTeodQOyQr8lsr54fR6GHsXw7kxitK+SjOS7H5FEptIilmRFGciCfBZvPRRhPBTuXd+VD/0PFlWmzzmuLGKlWxaIJgYkoVeF2HRNg/rh4L3ZgIAjv1jObDyB+Zbt3hS0VvfHPjbsXYrUqecr/p6AZ9Vx7oosnqTH3XP/Q+pk86DX1b3pp2tBg6Gf1jMaxS0LXuicIgiOaEPJpKKiuiFkF9+oQtoSEGpFUwVFLZ9AFBmPI41Hvbzd9llfXHllf1VnVqJIklLNRIAWHTsdsrhjG7RTxRFCE3NaBTYSrqUFGPEohVF3skqkpqayW3BljY+2QKhvokM2waARc5CAMB8Z1dMT9qNRzRcDGLlIwHqrG1O6HBQsKBE52uXWUSSP8+RhYY5CwAATaI0MbTW3Ur46rsXSIZ4tzX0RDGGhLWt46LDEEk9evTA1VdfjauvvppJJpWXl8ekIAq23PiPP2rUqKiPl0ACHRXmEQN8QaMKVlsMPYpgKPKpHIy9usPBIpKCOkjb9ysBj/QqVuPbnyHrkTuinnDESiSBkw7b1hJ5yRwyORfqxMiB34YNR3HOOSURr4teLwSCSJKrhqQEcSOSwsJ783VOVHvUTWx+dWXhjq8exJGr75e9j/Qlhci470bFx3a5vOTEPsluJXNVdHk5gT6BpfbQR0EkiU4XnJt2gTObYBzUS9aKFE4krXFnMKu9NIgGLHAW4iZL6+onVbENAFJEN0gTqMZh21aGtc00uLf0sXt0jZJIUrabYHfCJvI4KFBEUmyKJGcbEEnRgjebkPfm4zh226PM7dZPlqo+ZtJ4aXJKa/gzj5TA2K+nZGDs/v20smSzJw1XoHWi4olh0uJYtZmuXggAHi8a3/0iYGPe4JFWoV5uam234hq0DUgTSY3szxRsv5Eikn766UBUl9SeiiQAuM5SiQ8dXVEhhNpjy8p64n//u0J18Q4lxJiW+UgAYCFy7uyO6BRJot0JeLxoIBYxMjMj71OOUCTJKdgpmylnMoY871wLqZRGhG2H4wVbT9xvc4O91Kcert3s+1uNtQ0A9niSW4kkhrXN0L1Q9hhyiqQV7hy8YivBXUkVMPSMXLBqTxi6sYuqJKxtHRcdyto2adIk7NmzB8OGDWv1kWuQuQL4yCP/f/5jzpw5U5NjJ5BARwKfkqR4AJ580ZmBfxt6s+X1rj2tHSSrvGk4hKZmaeuZDCJCSRmQt7a1Tdg2xwP9iRLBa9awP4dQ30QqKrSwtkmFfEcbtg1EroYXqAjc9uOb/ucg6cyRMA2XX8VNOneMqkF6UxNtt0vivHBu2c3cpg9a4WNZ23SktY39evOSldg/5locuvBOVI67FQfPukmWLBGaQ+/XzZ5UYk/gR1cooReed+CHGV7wdomgUgWr8hzHoahIvloewFZGGQdK26D0PYoUHTsConJr21cMO6AfLEVSaqoRZrOyNbaOTCQBQPIl54SUxo4JPA+LhMIsHtDn5/iUkAogZ4PbuZPOSCv3JqNR0KOpJaTWXam+TL0fSnKnmj76GqLbA6fIo56xCBGM/0tq7XN5DYkkjuNQUFCAgoKC1nZWormllCFckL0oNdWEtDT24gKlEpZDe2YkAT5726KMVbg3aS8uO7sAt946DAsWXI1vvrme/KxSUKJISknRWJFE8FJ2Z3SKHD+p2CCyD5yZGUnGkxlJbmniR7DK33dAq7UtmfOCU7DS4IAOa3drV1LevYetSFJjbQOA3d6gKm0MRZJ5rHTFTlFkL+qE49+2XljvTpOslNYeoKxt7gNHNeMDTjRoWYk6GnQoIgkAevbsibVr12Lq1KkQRTHwBYmiqNl/I0aMwHfffYdhw4a174dNIIE4IfXaC5Xtd/3FgX8biZwkdxCR5FRa5ScG77mnQgmRJBG2zXNtFrbN8Tz669krtV9/vYcZuE3Z2oCObW0LL6fdjVdniwGAJWuqcfhwE7Km30qvfrfAZ/9Qjtpa+noyODecW/Ywt+mDKkMFS+X9oL4xliLJsX47jt70MLxBZdXdO/bh0GX3SBKkYtiq6xYJlcImT1oID+kQ2d24hfNKW5cU5HrwPI9evZRlW4VPKvTd8qGTITGkqkxKQuGA0lvXwAxYBoCkJAN69oy0rHAchwkTlA2unUQmV0cBx3HIe/NxTY6VfMk5sr9nPKA03FvOBieV0fOTOxuja8/C8NpzcWPDcBytqIl60uJRQEJ5q2ph+34lqgRpwiCDc6GbrpWw55K0s7bxPI/u3buje/fu4OXUwyKdVaMLU01IqZKiQXtWbfMjlffiD0n78NEL5+DNNy/DlVf2V5WLFAxliiRtiaQkQpFki7LspGtnBQCiEhrYiiSqGhdkcppEylKZEqoQ8xNJPAekSNjbgrHvsPoxDAuix+OLgGhBtWDE9KYBOL32DKZaXQq7g/La+PTI9tY8cgBzwcsPO3h4FU7tP3EWIO26i1RdX7xBWdtEq823CJtABGTb7zijw1jbwjF79myUlpbiwQcfBMdxGDFiBMaPHx/18bKzs9GzZ0/07NkTw4cT1WISSOAEQerVE1E7600INbScP2n8KSHkERW47ak8BqHZDi7JrLxctDe6AYq3tiEwSJHcT8LaJgJtFrYNjsMYfR3eRGTORW2tHT//fDDC3iZ17VpY26SqxcUSth1uByjSqR+EiSLw3Xd7cfPNo322m1sfYe6XctUEmMcMVnVsKSIpnXPDvWMfc5u/Yhvgy0uK2E5U7QknkkRRxPH7ngZckSusYrMdDf9dhJzH7mYeK1i+L4rSRFKdaMT+oBwFJ7H6aOIEyYo3Su0dOh0PHiIzqDgYNWGTYiWhzIYoFUnBFa+k4Kk4jG2Euuvyy/uRz8NTT5Xh8893yR7fGWXGSFsi6axRMPQsgrs8uowawBeynfM4+96NN8xjBisKv5ZS4dbU2GQVMf7J1y/ubPzpGPBjfVNUClHP4cgS4Cw4ft2IKkG6vTdzoW1MvK1t1Mq2LxOHvWASrgwpKkrDtm10YQO1aG9rWzCC86CihRJFktYWfMraZnNFt+DnWLUZAFCvRpFEEEmyiiRCCRe+6MMF5RumcR40EdcWjCSjNkoOd3klRKcv+9Etcri9cSg2eqSf7f7dU7B9f+QztccTRCQxrG2c0YDki8+B9eNvmMeVs7UFY2dSPox9ShTv3xYwFNMKaM+BI5qo9sMhOl1o+ugbNH/zE/iMVKRedR6SxkdWmk2AjQ5LJAHA9OnTkZGRgTvuuAOjRo3CU0891d6XlEACnQJ8ShJynvgjqu78B7lPWliFN2NvOvTTvecAdHnZEIhqY+EQZfJvKNh+WK1IzSRFxtgcXlKVo/UADRyH0421SIIHNkZz+vPPByKIJOo75MxGxRWZpBA3RVLYCmxxFEQS4CeShiHlknNg2fMV6l94D/UvvBfYnnrdRciZqTws3g+KSNJDCCmfHbE92Nqm04GzmAIhzb73K6va1vzVCrgI+xwA2H+iiz0EE0mVgpm0DPixNyhHgVIkmSBNJIUrzFgQRREulwsix8nmEoUTSaZB0vlIAGAokc97IC5M0W61ew6jTixhbrvmGlrpMmBALt566zLcfDNdWAAAHI6OTyQBQNKEU9Ewe17U7y/89EXoC7vI7xgHmMcqIJR5HsYBpeRmKVsbC7+4s7F75V70u0D9oqNSIgkAjgnSCiNn2LOtZdi2/9kGAKPR6CORogrbDlckaataa29rWzD4NC2IJPlpV16eVsk9PliM7Lbe7oxOdecnkhpJIomRkUQSSdGFbfPh1raU1rGdVOB2MJps2rTfrm2t+b2fOAtkSSQAGFyayiSS9nqT4RUBHccO2waArId+D+fqLZGVIQE0SWQmhmO7MwmCIILn29caFQxdXravwh9jQc69/zBMQ1UUYFAAb10jjkz5c0gFU+uCJejy2iNIvaJM03PFC+1t+etw1rZwTJs2DVddpb6keQIJnOxIuWoCjETYLZdkhuWM0EGyvjifLNFa/ZcXlKuRACDKahj2FWuVHV6CSKpuoKuCaW1tA8/DzAkYa2Bb7X77LTI43FtLVGzLytDkkuKVkRROJBVFYW0DgBUrWq2SuvRUZD9yB3oe/QFFy+aiZMfnvhLnZvUTJopISufcki668HK64bJxaowVrEgSBQG1/3hN8vpcW/eSxI5gbX19k4JBqCOo63YQ3biZ80JsplUYSlblBUHA+vXrFfE2NWI4kSSvSNLlZUvK9EkouCBRFLFvL22BHTyYzk4CgCFDpLcDgJPv0GtxAVjOHBn9e88eJbnIEG+YhveXVa4Z+5ZIkvA7d6ovPT9/3lbV7wHUEUlVMkSSK+zZ1lKR5H+2169fDyGweEMokpwu5sQOiJzQdwZrmxISnfm2NlIk5efHfp5gJFFEksRYgYLo8cCxegsAoIEgLTIylBNJiDJsO/y3CK64qpRIataKSGqpZusWObxiK1H0niGlbMLVX7kNoIkkQ1Eeir6fg6yHpkZsU6NIam52o7xcIiaiHcDxPAxU5bYg+6BWqHnslRASCQAgCKi+/xl4jnes74aCEEOUiBbo8EQSAMybNw/Tp09v78tIIIFOBY7jkDvrfubqW+q1F0ZM1jmdDoae7AG747dNaP7mZ8XnFqNs2By/bVa0nyARtl3XKEUkaatI4lpYhmEGNjm0ahWLSKpn7quFrQ2InyIpPFeiSCcdtk2FcVdWNuL48dBVRk6ng2lQr5jK0FJEUgYvPVgMtrYBAJ8Ueo8oqdrm2rwb7r0ygxyvF84NO5ibggfLHznkVTquIKVCuGrBD7OMtU1NCWwlsIp6OIOCRY0yiqRDhxrx3nub8XVyHxz0qpwgK7C2eY/X4ckatl1Xr+NkJ7xKVAGdRJAE86lDFf/edpFHcI589iN3xOmqlIHjeWQ+dJvkPtSCiR+bNqkPz96zp1b1ewSHU9JOHo5qmYyk8Gc7/lXb2C8LDXQ2Sbj9pls35f1Ybq78wk5crG0cp1qVxJmNZOUxNWgXRZKJIJKiyHhzbSsPZO/RYdvKM5LkFUnKiCQuubXfTpPp8/2w2qNTzofDtcNHJH3hzCcrhIZjYAn9Gx/yShNJgO/zZ953I1IuHxfyOqvohRQ2boy+QmW8YCAWLly7K2I+tujxwLlxJ6xf/oijt/wVTe99ydxPaGpG41ufxHy+kwGdgkgCgB49lAV+JpBAAq0wjxqI/DcfDxnsmUb0R9bDkSsZAGCWqKbVOHeR8hNHkZHkra6Deze78oUaNDXT505P13gg3iJ1GaJnTx6OHWuOsL9Q1jZdljYrufGztoW+18wJ6MLTldLONtIqgHXrtC/lSuVipcuUAw62tgGhA1KAzkg6dqw5ICl2EARROPwrueHwh21XC0b84pavUuUOViRRGUkQyNVcIPqcECnUtkyM+fQUMjQTAGbN+hnduj2HG25YhD9s74Lz6k7DxwoItAAUKJK+/WQLfia+y+7d0qDXSw9/CgpS0K9fjuQ+druyUtPtDV1aCswjB0jus96dhgvqTsHgmnE4s+5MvG/vitQbLtHcShANUi4bB9OwfuT25AvPknz/mjXq25sDh9mZQFLwHlaXDeSWGYKHlw7nzdqGMCsFpaIFIiuNKlUkpaWZMHXqCNn94qJIgvr2L7jUfCxQpkjSmkhin9PuVk8kBS+GUIokdRlJUVrbUthV2wDliiSrXZuVAGeLtW2+U1mFUwBIS+JJIvVIi1JRlyZvE02acGrI32oUSQCwcWP0FSrjBUoB6959gPm6Ulg/W4b9I6egsuz3OHbzX9D8xXLJ/W3fKl88P5nRaYikaLF06dL2voQEEmhXJF94Frr9/A4K5v0bhZ+8gK7fzI6otOJH+u+vkq2mpQRiFNY2v+8+VjQ2swcHSUkG2cmjarQokvIkCJX6+lBlDjUo10qR1FZh2wCQy9Gfu5/OShJNa9dqTyTRiiQZIilCkRRKNuqIx6G62oauXf+NRYu2k0qjcDjWsO0yfsJno1vZJCxEkSRhbfMcImw2HKfZxCgYfnubcVBvMrh33bojmDFjSQgX5AaPx6x9cUipMkmGSPJ4BFz9f3RAc78BueQ2PziOwyOPnCXZHNpsnYNIAoCkcXR4aL2gx22NwwOlp6sEEx5t7o/fzr2srS5PEhzPI+/1v0PXJStiW8rl45B8/unke71eISriurKaVrZSUGNrAwCvytLgUdlAVZ2AfT3eIzRBFi2RdNddo9Cli7yFK15EklpFptCgnlhkQYkiSWsiKYlQJEXj7HJXtKqsq0W2NZNFkHAGtnpJ9GiVkRQctq2sXbbaY7cECVYbPPsP44jXhFXuyCqgFAw6nlTvHRF8z7mUIsmP5EvPhS639bzqFUkdj0gy9GYriV0790Gw02NOKTjWbMWxaY+FVNSVg3Pjzk5jb2tPdCoiaenSpZgyZQomTpyIZcuWye6/b98+TJs2DRMnTsTGjRvb4AoTSKBjQp+fg6RzRsNy+nByggf4Kt9k3n9T7CeMgkiyK7S1yaGJmNylpWkXVBpAS9ZCmsQKWCSRxFYkaZWRRCmSOA7QUayIEjDKHUsNWobqGzBQxybN2pRIkhhU8tnpEYQKH6FIokmLI0esuOqqj7HuZ3ZFuHA4Vm5kDpz9FjSpam3BcAd5UChFkpkTSIWfLj9HE5tGOFa6fANaqXykuXPXM193QocFKlZ0qYBJu92NCy98DzYHTahe/7shis5x3XWD8c03v4PFwr7P7RqtaLcFUiafRxIF8xxdmcG577/PVtC1Bww9uqLb8reQ++wDSLvlCmTccz0KFj6PLrP/JlnOfceO6qgIv8NWUXWIqVoiSW0vGX9rm1piyxLRfvbokaGon3nggdNhsci3QXFTJFGZPQSkFHGqjqNAkZSXp3FGkplQJHnUK5LcFYcB+GyXlPqFac2jFrFcMkRSI5vA41Noa5visG0N2u/G/30GiCK+dOZBlKlsGgwDL6JbN3Z/f8SrnEjizSak3Xx54G8rMR6gsGLFfsnFx/aAsX9P5uuiwyVZtEQKNf98PSqnhGNlgjuQQ6chkp5++mlMmDAB8+fPx+LFi1FWVoaKigrJ9/To0QN79uxBWloaRowYgYcffrhtLjaBBDoxMv90I/RdY6zQE0VGkuO3TbGdswVNzexJQ2pqPGwBvoFDmoTqJZxIEoigcK2sbVTYtsGgkyQR5cAxAkovNdH++gH6JgzUs7M14mFtkwrbphCuRgJ8k6OQfWTKlYki8PF2Zfe70GCFY1Xk5NxvbdvqVVbxKFiRRFZt4+hrosIsKQwbpmyl9TOn77hUPpIoivjqqz3k+79K6Y/CL15G6u8ulj8ZMcmfO3cDFi8uZ24DgLKsZlxzzSD547fgvPNK8dFHk5jbOpMiyVBcgKSJbOXOTBv791q8WEWBhTaALicTaTdeitxZ9yH70TuQdObIiHZJFEVs23YcP/10AFarC2vWHI7qXM1eHlVVbDUEBVIBSMCrYuIJaFu1jQmV/YMuM7K9Sk42Ytw46SiKOXMuQVaWBWazPJkTLyLJ0F1dxUi9yv0ptIsiifie7R5ONVnq3u97nqTyvVjXH7UiqZ49huAzQu+9aKxtzRKLDUrgWL0FNY+9CgD4VMUiCODL6SsuphRJvuc83L5HIe2WKwJEmlprW12dAz/+GHukhJYwDe4NPpM9HrZ9p95u5ty2F44oCaiIIO4EItApiKQ33ngDM2bMgCiGrhCtW6fsxpg3bx5+//vf46mnnsKYMWPQ2Ej7vRNI4GQHZzQg9bqLYjqGqJL5F2wOODfujOmcfjRZ206R5A/btkCAnlhfjlAk1cXX2kYpkmIekDOsbVS1uktNR6DjgEF69metqKjH0aPaWAX8iCZsO7xiGxBpbePl6t4DmGvtKruPH9ZPQ9W0oigGFEn7vcoGjsHZKpS1zQT6GdR3VzfoPe006awgP7Z501ArGGAiiKR1645IVonZU+XCsbxi5Dx5L9Lvvkb6ZARZ/emn0u3IS6c6VROqSUnsSZDd7m730rtqkH7blRGv2QkiEqBzxzoq6ursmDDhHQwc+ArOPHMuunR5Gjff/GnUx9u9W13gtkfCAsaCoJZIUqBQiAVqnws+gz3ZmzJlIPkei0WP664bHPi3HOJFJFnOGa1q/5TLztXkvHKKJL2eZ2YMxQKp7zk8w1EOHgVEEktRRWYkEdUA/fASQe9SRJLisG1H9NY20e3Bvtv/iWebeqBXdRm2K1wE8kPPg1YktVjblFpZ9bmZyPnX/wEAmojcqnPPLUFyMrsfW7RImTW/rcDpdEgqO4W5rfm7X1X3udb530V9LY51CSJJDp2CSJoxYwY4jgv858eIEfJBfX7Mnj0b48ePx5o1a1BWVhaPy0wggRMG5lOHxnYAldY257ptgIc98VU7eG4ijP/xtLZxHL0KptjaFkPFsmBQMuVYB+Qs+8gphjqMTg/9fGZexH1JPiUDpUgCgIULte2go1Ek6QoYiqQwa5ue05YosC74zldOuwWizQEIAkQROOJVdo+GVm2jrW0UDMXKiCSO45CXl4d77x2La69VpuL5zVAIY3+2ImHOHPnFn++/LwdvNiHn73ej8POX6R2Jn0Wq1HsfnRXp+Rmy1xAOyoIjioDT2bFsAVKwnD0KxiF9Ql5Tk+vR0fG3v/2A779vtZnGaj3ctU2dwkitIsmjMiOJT9WOSPI/23l5eVErVSkV7bXXDkbXruyJ9dSpIwLPU3ta2yxnjlS2o0GPrL/dieSLz9bkvHKKpLy8ZPB87DmVwUiSIJLUqCpdu/cHsqKOE0SS0ahDRkYkAcLpCSKJGPcBLYss9YS1LT30/uKC1DuKw7ad0RNJtd+txO825+NVe3SFoEx6Dl27sp8fP0kXXkFWCmnXXYS8Nx5Ds5lti+zSJRkXXdSHuW3Roh0QFFRCbUskn8dWz3oPV8G1hVY1h0MUBFgXLpHdT1fIdmE4N+xQvTDe1ojFaaAFOjyR9MYbb6C+vh4AAoqksrIy7NmzByUlJaqONXPmTADA2rVrEza3BBKQgHnEgJjCeKUGByzYCVsbn5GK5EvVrQQ2WtkhqampcSCSgtpvKicpmEgSRZH2/BMB6GpBKZIMhhibe4a1jeOA94ccwWOPnYMrruiHW28dhsWnHkORzveZC3RO9NCx7SEffcQOno4W0YRts+wN4YM3qYykYCgdhwkN1hD1nT9ou0nUwwZlsvRX7D3wgd2ngqKsbWZOInS9R5Gi8/A8jx49eqB371K8//5V2Lfv//D56XVYn7UM3Xh2RbjPjaVM0rGmxoa335bPG1ixorUyCyc1oWIokux2Nw4coMuvX28+CF1Ohuw1hINSJPnP2VnAcRxyn7wXCMrHWuGiqwQqyXPpKPB4BEX3lxrs2qLcgus5chy2735hbtPlRoaEA+2rSPI/2z169ADf0raLLnUB45QiKSnJgP/+97KIPmfgwFz84x+t5crbU5HECm4PRvY/7kG3le+jZ8V3yPzDdZpN1uSeKWa+UIxIkiDs1BBJzV+2FjCoFtnjwy5dktnflZH4rYmqbaLXC+ui78lcG52UIkkhkXS8MXqi+el/LMM6T4bkPgUF7N8yk3Oha6aR3F4vGuHUG1TneKVcPg7CBHYFy/R0E668kp3zdfhwE1atOsTc1l6wjBvDVMEDINtZFhy/bZYk+C3njEb++7OQP+cx5nax2R5ztbh4g2eMzdv0/O16dgVYvHgxAF/e0ezZs1FXV4fvvvsOPXqoZ4FHjBiBESNGQBRFzJw5UzZjKYEETlbwyRbV0u8QqMxIcqxkE0nmMYNh7McO3qPQ2NT2YdsAnZMUQiQ5XbTyKlWZrUkOVEZSzIokolM3Cl48+ujZWLhwCt588zIUu+pDtl9oZFcFWbFiPw4fphVLaiAIIurqHMxtUookFqESrkhSSiSFD6zNpwyNyFvyw7WjVTXhJ5KOCuruz0ea+2ORIx8OqmobFeWr18Fy9ihV5/KjpCQDw7O9SOW9OM3Atv0sruRx5Ejk7/rPf65QpBDZtCnofpGYvLHk7Xv21JIF3cYaajHZfDgqIklqwtuZcpIAX5ua//a/YOhVDFEEFou0Os3p9Ha4IFYKGzYcRWNjdBV9KOzZRavb/PDWNuDorY9g/5BI26Af4SW6A+9VSyRptNhAwX2AzrxjQcqOfd55pfj66+tx8cV9MHhwF9x11yj88sttIf1weyqS5KzknNEAY2k3zYsSJCcbJRVHWucjAdKKJCux8MZC81crAv+uIforKiicVCS52e1n7ZNzUHU7e3IPaJORdKDWg/376wN/C8121D37Ng5deCeO3PAQGt/5nLTefbGFvZASjEcfPRsP5h6MeP2OpArwnPRvXWtUZ5Xzg2oD09JMuPDC3uTzpLVCPFbo0lJgIZwRzYuVE0nWBYvZG4wGlOz+CoXz/o3kCafCOLg3SVw51m1TfL6TER2eSCovL0dpaSn27NmDqVOnIj09thyRnj1bJ6Wvv/56rJeXQAInLFKvmiC5XWpFT40UVLDa4FjNrg5kHjsExn4lio8FAFYibDstTfuw7eCgV0WKJCs9+FAarCgHWpEU44CcUbUNQISNMTzT4CITm0gSRWDePG1USY2NTlKaLVW1zVDCUiSFyvJ1Cq1tld5Q0sjYpzuMA0uZ+7q2t4ZB++8Jfy6CGnzk6EpWbaPCtlMuG8cMGWdBFEW43W643UFZQC3kzmVm9qRTFCMHpf/730Y899xKRefctu04vP57SkqRxPhZdu6sIXd/K209jJwIXbr6Abq0IqnzVG7zI7nsFBT/+h6qPp6LQ07pibLW5Ey88P33dMB6tNhdXi+5XXS5cWTKn9H8+Q+S+1nOYRO3ao01WiqSWM+254C6IghypOz48T3x+efXYtOmO/HyyxdFLOa0Z9i2jgjz9YOLtb8kwPMcsrNpy5LWFdsA6bEPtQATDs/hqpDg4TqB3W7k5hJEEkHIiQxFkm3FWtT/513J64mwtiW3jp+kip+EY948H0kger049vtHUfvUHDhWb4Htm59w/L5ZqDz/drgrQ8cwjfU2bG+WXvjR63lMnjwA07Kr8J/UzZhgrMI5hmo8n7oZt1kOAKIoSSRVG6J71qWIpNRUEyZMYC/MLly4vV3y/kRRxOHDTcysrqTzTmO+x7luOzxV8vl1ossN62fsCu/JZaeEqNp4swmmgexqsx09cLu9cxo7PJG0bt06TJrErpgSDbKyWie/frVTAgkkEInkS8+BaRQdmply+XiSwVeTkVTz+GsQm9m2JMspQ2DsU6L4WED7WduoVbC6utbPJljp8Np4E0nxUiQF/9aiKAYyFPzoo29GLx3bzqeVva2mhibo0qXCtntEhmSHq4iUKpK2ekIHtvriApiIMrZOhiIpGiJpjScTThVV2/RFecj+xz2Kjy8IAtauXYu1a9dCaFEZ+u1mo/X16EnYFu+991ts3eqTk+/aVYOpUz9XfE6n04s9e1oGiVJ2EobqcdcuNpHUU9cMQwshyKWqn6hJKSc6k7UtHEt/ka9o1hmIJFEUNbfKAsDeg1bJQXr96/Pg3MAOqrWJPATRF5hrHsnuR70yGUnh9lE+inuXAuvZ9tarK0Rj7BtdPowfSiqpxotI4owG6e+TYc/VCtnZdF8fD0VSSooRZqL4wvHjyioThpddrxUpIon92UhiLkzxKFhtOHLlvbLXE2FtiyIjCQCWLvX1xU0ffQPbksjFDtfm3Th86R9CgvSXLdwka0v9wx9GIzs7CRzH4SLTMbyatglz0jfg4paFNVEUkZFhhknPPk41H92zTlWa9OdWXXllf+b2vXvrsGWLuoy3WPHrrwcxduwcdO36b1gs/8QZZ/wXc+asC4xhkyawiSSIImxLfpU9vv23TRCI4jYpV0YulJtGsL+bjh64LURRJVtLdHgiKSMjA9nZtIdfLcrLfatWoigG/p1AAglEgtPpkD/3CRh6FUds49NTkHHPdcwsFAAQFRJJjR9+jca5i5jb+LQUmIb2hS4vO0LGLHnMtrS2cfKKpF9+qQxMRoQ2UCRRVpTYM5Ko37r1fGKznZlpQKmSfv21MiKMPBpQ+UgArUjiczKgY1hF+CitbRs8oWpZfXE+jP3YEy337tZyu0Kz75447FVPJAG+bCUWwicOlnFjUbjwP9DnxhiuHBQwX2ZkV6nyeARce+0CeL0C/vKXpSS5SWH79hZLkRSRxJjgU4qkEl3rcxfNZFxKkdTZrG3B+PnnSNtFODoDkfTZZzuxfr0yW9Zll/UlV+XD0ewQQqpLNjU58dZbG/DXB7/Dwn9+hpq/+0p/e0XgN3cGFjtz8ZMrC/c1DcSImnPQv2Yc7nOPRJOR3bZ7ZCajdyZVhPyti3PVtvSpk1XtbxzEXsFXCiV9cryIJADgs2mHg9p8GjXIyaH7+sLC6CxNUuD0emQSKp3qanmLFhA5maYUSeRnU2hta/rgK9lr4ZIsEb9PsJI4RQWRtGLFATRv3IXqh/5D7uM5eBRHb/5LQD310qtryX15nsNdd43CE0+0ZIFRqlpRBMdx6JLGvr+Pc+rHA4Ig4uBBNnHiD/a+9NK+pLWyLe1tv/xyEOee+zZWr25dzPj554OYOvVzjBr1Ourq7DCWdmPOPwBlOUn2pb8xX+dSkphqJ9NwNpHk2rYXgr3j94PthQ5PJGVlZWH16tWaHW/JkiWBIDh/iHcCCSTAhj4/B12/nY2Me66DoVcx9N0LkDJpArp++7rPHkPZnQT5iaNj1WYcv3cmuT3tpsvAmYzgOE5VTpK1ma1Iik9GUmuH3EfPVt1s2VKFhx76HmvWHIb1eAN+dGXhE0c+KsOIg46uSKKtba3n89azM4+onCQAmqyCUUQSD5EcVBp7d2e/J9zappBI2ugOtUoYigtg6NmNua/3WA0Eh29g4lepVUahSAKAw8T7gqu25b8/C4UfPQMDQ4GlGkHkzvlG+rfbvLkKzz77KxYsUJ8vsHevT5HESYVIMogkKUWSH9FkkUlZcDqjtQ3wTTp+/VWeSGpo6PgD6OefZ08YwpGdbcHzz5+Pnj2Vk6l+dVx1tQ2nn/5f3HLLp/jnzF9x1V/XY7p1AHZ4UnBJ/Sm4vmEU7mwaipsbR+AzZwE84OEFj0+PWHDexR/BnRpJEEipGkbo6yMI+HhnJFnOVF4JmTMbY25P2ptI0mVKRGVQClwNwKpq5kf37rHFd7DAGQ3I5NjjouPHlRFJ4faeOiJsmyKSSGuby42GOQtw6MI7ceiiu1D9ME3o+MFaWOSMhkARARMnkgqscFitLqy4eRZEG70YBfjsVI3vf4lNm45hyRp2dlqhwYWjR+/Hyy9fhOTklu+HWgxpUZF0SWH3cZUe9eOB48ebyfFfcbHvvsrJScLZZ7PHPn//+/I2Wzi4//7vyIqnmzdXYfp0n2OIsrfZlq0OqX4LAILNgeZvf0bToiXwNjTBRhBJSeeMBm+JbHvMhCIJHi+av1xOfZSTHh2eSBo/fjyWLJEv3acEb7zxRsjfGRkZmhw3gQROZOjSUpD96J0o/vU9dF/zMfJefRTG0pYJcstEr0YwYKkrBxVei29+J6NIEj0eHH/gGboiR34OMu79XeBvy+nDFF9vYxNlbYtDRlLQIOE8YxU4gnSYOfNnjB79BnLGfYFbG0fgz9ZBOKfuDDxq7QeXyAFGQ0xV8oLR1mHbwRX6hAY2kdRTZ0M6kdMQEq4cJaSCtqkFQcoyySWHDuD0CjOSKoTkkFVaXZds6LvTQcaeQ77PLbSQb4e8dG6GFERiMmpqqdqWce8NSCbCfqNCELkzxNCIMgkyacaMJWT49eDBXTBuHFuxtXdvnexlhFuOPB4B27ezFVKxKpJ4niOrLXVWRdK2bccVkUQdXZFktbrw0090VZ0BA3JhsegxfnwPfP/9jSgpycAll7DLYLOwe7ePSPrPf1Zi8+bQe32RsxAX15+CXV5pgmft2iP4HJEr61TYdirnxtz09UgOqrzIWUyaBz+Hw9S/p8/6GtSvGQl7ruXs0WSAslKYzXro9dLTkLgSSRKB25TaWgtIKTS7d8/Q/oR6HbIIRdJf/7pUNmNFdLnhDCu5rlaRRN0r3qpaVD/0PByrt8CxarPkdfhBZXNFE7gNAFv20JU+g1H77P/wpz/SiqkXT3dHZkRRiyEt33lJOrsN2GVXPx6k1EgA0K1b60LXFVewq7cBwODBr2LbNnY/qhVqa+1YubJScp85c9bjpps+wSJvEWwM+75os4dkq7r2HMDBs2/C0d89iKppj6Gi14VwbWO7jpLGjWW+buhVTObQNbz2cbtnEXVUdHgiafLkyairq8Ozzz4b03H27duH22+/HRzHQWyRFI4aFV3lmgQSOJlx6FAjpkyZj6ysmSg7NByX1o3B2NqzMa1xGMrqTsfD1v5wOaU78ca3PyMbeSenw767/4D1uxoDDXfS+Wcovj6KSIp31bZCnZOsZEXhfUcRnrX10kyNBLRD2HaQP1sgFEkc5yMOWPjqq92xXReAZkKFFjwRC4eBUiQlh/4WShVJALDJ0zpY49OSoS/KI/f17PcF23pr6gEAh6JUJFFISjYi68HfI+vhqZoelwtj5p5M2Y5kFYN2P9asmYY+fdiB/eXlLUSSCkXSihX7SWKkZ4xEEkDb2zprRtLPPysradzRiaRffjkIj4dNni9deiO2br0Lzc0PY8mSGzF0aD4A4IILemPIEPrZDMbu3T6V26IYbR/zGyID7gUiI+lq8+GItiveaiQ/Mu64Gt03LUTenMdR9P2bKFr+FtJuvDRkHy7JjMw/3xzzuTiOQ3o63S8bDDx0OnWV7dRAKiw8ntY2qr8CWpUjWoIz6JHFs8/p9Yr4+99/kHy/c9teIKx6mWoiyajd96nvyh5LBI+jzBJ9fzh2eJXZCX/e78bS5ex2c6i+AWdfGEnQUIIksaU4SD9CHLmjUf33dfAgmxAzGnUhBNcVVxDKGwAHDjTgtNPexIEDysi1aPDLL/JKWMBXpGPaPzfgZutoNAqR34dt+ZrAv6sfeh4/77bhwaYB+EPjYHzuzCMXsZLGjWG+zul0vuxXBpwbd5LVpU92dHgiqaysDMOHD8f06dOxaBE7S0UOFRUVTNJo8mR1fvAEEjjZ0dzswoQJ7+Djj7eirs6BfW4LtnlDLT3znF0xbxmdVyGKIupf/ZC57VdXJi7wTsC4O3/C6NFvYOTI11FV1ezLSirIlb0+QaTL2cbb2gYAV5rUVb0BgA8dXeFN1o5IojKSYlYkKcjDEhrZ9j4uyYwhLZO4cHz11W7SkqQUzUSlPovEYNLYh00kcWHWNgcRZs1CCJGUkgTebIIuj53x5z7oe0a8NfVwiRyOEeWUo0XP9/6JzPtvClHNaYKw42XybsxJ26DqEK+/fjGMRh1KS9lEUkCRJBm2HTpK/OKLXczdLPBisL51pTZa0pYK3O6siiQl+UgA8O67m/D117tx+DCbJG5vLF9ewXw9JycJ55xTAgARzwDPc/jgg6sU9QmbN1fBanVh+w62nUUpdjdHToSo1olFXvMyVca0hD4/BymXnQvTkD7gOA45T9+PLq89ipRJE5B2yxXotvxtmIfRqgY1kPoN/GHF8QK1mAAgrmHbmZm0+lTK9hYtOIMBmRLVS198cRWcEot/zrB8JIfIwwY20aE2Iyka6AvZRBIXpEiirHcs7PAoI2nfdRSR26Za9sMyZgjjouiMJADol8r+3iubOdUkPqVIKipKC8lFKipKk1QlNTQ48Y9/xM/KpZRI8mOdMxVPNEeqSO0/+ogk9/7DWPDtftzQMBLznYX4xpWHPzUNxov2SMWzoV8P6LvSiwjpt9O8QMPsj1Vd98mCDk8kAT5LmiiKmDRpEq655hpUVFQoel9jYyMeeughlJaWoq6uLqRDysjIwO9///s4XXECCZyYeOKJH1uDcCWw4CdaGuveezCgxgjGJncabrOOwIHa1o51/fqjuOGGReA4Dsnnny57XpuoI1ch4lO1LXSQcL6pKqLSjhyaRT12c9qtQtKKpBibe2pg7ZHPSOLTUwOTunCIIvDyy6tiujRqMh8NkRQetk2FWbNwXPANXrkkS4B40xez7W3+Z0CoqcdRwUxa1KJFSkoc7neAOTAepa9HKVGZLxyFham44YahAEBm1VRU1PtUJlJfSdCDLooi/vvfDczdzjJWwxKUF6W1Iokirjs6pOxgwfj66z248ML3UVz8HGbMWMws09ye+Okn9qTk7LO7S5IQAwbkYuXK2zBp0gCYicpJAPDll7vx+utrWUUCVaHOyUWoOKiMJBaRpO/CJl3bAhzPI/WqCch79VHkzroPhpJCzY4tTSRFZ/dVCqoYAuCzc8ULt9wyjPn6mDEaZNixYNCT1jbAZw3fupUes9mXh+bUUmokgCaSWJk00YIikoIXCawq+u0qxiJOeL/tFHn84IpUFQLAaH0dLsh3wjx6EOOiKCW37xnvm0T3H4HqpQpBKZKCbW1+PPVUGSwW+jt6773NaGiIvRAKC9HkYi50FmKVOyPkNeeGnfDWN8H61Qo829wroj193VYCqxA6bk2mKsG1wNi7O5LGnxLyGp+WgvS7r0H2E39Ufd0nAzoFkTRixAg89dRTEEUR8+bNQ2lpKSZOnIhnnnkGCxcuREVFBRobG1FRUYENGzZgzpw5mDJlCjIzMzFr1qyAlQ1A4N/z5s1r50+VQAKdC7t31+DZZ+VLbgLAd+tCM07sdndAzm1fEVnxQhCBvzT3h0uIHFh/991eLF26D6mTzpM9r9TgoS0USSZOwL9TtyBJr85Lvcml3WpzvMK2OcLaFly1TWhgkwl8egouvbQvSRy88soarFp1KOpro6wCFJHEJVugo1Y1k0InL8U66RDOYLha1EvBgc4Gikg62GptOxRlxTYpJCfHnqfCcRxyc3ORm5vb2oc6IldJOQ6BssZyeOCB0wLh1aWl7PvB4xFQWdmoyNomCCLuuOMLsvrfSEPQ4JrnIxRnSpGVxZ7UtnXJZC2wcmUl9u2rV/Uer1fErFm/4LrrFkAQOkZWhMvlJduNM89kV/sJRv/+uZg3bzKOvjEE76WvIfe7//7vor7GYOzzhk6yqaptLCKJUjZGC9az3R5IT6efx+xs7ZS6LEgRSXI5j7Fg4sRS5njk+usHx+V8nEGHbF5a3UJZmbyNVjQvWRnyWp2onkgyDu4tc5XKoc9nPwvRLhKELxbxmWnI/tudIa+td6fDCfYY6q6kfci6/6aIQh0A6MWQlv6rgLPDAPa9FrB4K8SBA2xFUrdukQuVffpk45NPriEXGO12D5Ytq1B1fqWgqqvK4ZnmsCqRggD7z+uxZeFK7Bci7zsHdNjsCR1bp157gex50u+4GgCgLylE9j//D903LkDO3++GQSKqoD3Rnu030EmIJACYPn16gEwCfNXXZsyYgcmTJ6O0tBSZmZkoLS3FyJEjcfvtt2P+/PkQRTGCRAKA1157DePGjWu3z5JAAp0Rr766hgxyZqFv35cwZMirSEr6J5KS/oWUlCcxZMireGPOenjDxsmfOfOx3UP71O+552uYRg+SlJ0CgFWkyZJ4EEmsqlLDDY34bkIzLrhAeWnkzTbtiIR4hW2TiiSvfNi2Lj0VJpMeDz7IVpV5PAJuvvmTqCeopCKJGKAZe9NqhfDBYD+dFbmcMom5C34iqXVASymS3AdaiaRKQfuV90DVmBjA8zxKS0tRWloKvuVeF5rZxNolJvny60VFaZg6tbUylFT1rL17awO/kVf0KRaXunLQ1LLC6M+YeOWV1Xj99XXkccIrtkU76Bo2jD2IXLXqMPP1jox//WtF1O9dtGgHXnlFu0q6sWDduiOkQuqMM+SJJD90WekYra9Hd5VqUrUoDyOSqIwknhHwr9NYkcR6ttsD7alI0nfLB5/NVgObqApOGiA52YjFi28IKEV0Og733jsWd989Oi7n4wwGFPLS6hKKtHCs2sLIR6L7Fopw16WnQl+ijeJK343dpwb3u9ebldunwokky1mjYBraN+S1lW52X5XKuXH+tLORPm0S++CcdNg253CgiFis8lcvVQpKkVRczF6oPO+8Uuzb93/k8dau1b5vc7u9qgkyP9Z5MrDHE9qGNn/yPX6T6IP3elvvCeOAnmS13mBYzh6Fgg+fQfHK95ExbZKmGabxQHu230AnIpIAH5n08ccfIz09PSQ93U8YBf8H+Fi6YBIpIyMD8+bNw9Sp2oaPJpDAiYhDhxpxzz1f4brrFuCVV1bjm2/2yL8pCLt21WDz5qqQ8tibN1fhgV90uL1xWCB7xi1yeN5WKnmsbduO4+efDyL7H/cgfSrRYcNnE6MQF0USsdzUI9mLr766HocO3Yevv74e551Xil696InALqt21XjiFbZNK5KCMpIkFEkAcM01g8gMiO3bq7F06b6ork1tRpJpCF21KXxVk+OAJ1K2k6uGwXC2EJnBxzB0Y2dDeQIZSQ0dVpHEAkUklejsGDGEzjErLEzFJ59MCSG4UlNNyM1lD9L27KkFeA4Ngh5XN4zGlQ1jMK1xGE6rPQs/u7IAUYTT6cFjj0lnOWgRtA3QtpM1aw7jt9+kK9B0JNTU2PD55+w8KaWYMWNJ1JMBLUEFhicnGwLB2kqgy0oHz/mUBbHg1FOL4HY/glGj2NavyrDKjFTVNlZLre+irSKpo6A9iSSO55F+8+URr5vHDiHbba0wZkxX7N9/L3bvvgcNDQ/iuefOh44qaBEjOINelkiibFSurZHjvnpCkZSZaZaswtfl+RmS16AEfFY6TMPZ+T58Wmv7fqpBefvULOpDIvdM/XtCX1wQ0l/8RhBJp3bTI//p+8gFCnLhomWeKtocKOYpIkn+M+zfX48rr/wIBsM/8Ouv7H6IpUjyo2vXNEyePIC5be1a9ZmfcigvryOLIyjBO45uIX9bP1mK9RKK/uB71XLmSEXn4DgOSePHxrVy44mETkUkAcCkSZNQW1uLp556KoJQCkYwqZSeno7p06dj3759uOqqq9r4ihMAgHXr1mHJkiXtfRkJKMSePbXo3/9lvPTSanzwwRbcffdXirKRlOIHdw7+au0PUQQ+deYrUmSsXFnpC/78F72CQlnbOC5OE2uqtnwLCgtTcf75vfDtt7/D7t33YBZRfG5vo3bS1LgpkvSUIqn1fF5CkcRn+NRmqakmPPssbVFctiy6iZzajKSUqyeSx+IM+ohg2/GmanyRsRL/uKE7XnrpAkyaxB54ORnWNn139uqp93gdBKsN3toGzSu2AdookkRRhNfrhdfrDfS1oo2ekFx/LSMjAkBqqhE7dtyNkSMjJ9hU4PYPP+wHOA7P2Hpho6d1IGyHDnc1DYHT7sYvvxxEdTWtIjHCi65Bg3Q+XVl1HhbGjqWDVq++ej5qauKrZokFlZWNeOmlVbjiio9w9tlvkfsprZBls7nxxBM/anR10YMKDD/llCLZsvLB4FvKwF9pOoILjMosmuHIzU3CZ59dC72eR48eGcx9KvnQUF+KSOJZYdsar4qznu32QFoa3U7F29oGAJl/vhkZ91zn66OMBiRdcAby//evuJ8X8E1Ye/XK0qStloRejwKdtKqWGt+xiKRalRXbApcRqzWI45A1/VbwZjb5GEz8jDMex7mG0NwnCxlvDzQHqdn1PbuC4zgYWqyPdpHHBg+bjJlws3TmDjVG9D9zgs1O2uflyHpRFDFlynwsWrRDkpxhZSQFY+RI9hhl7dojmrUNNTU2vPbaGjz44PfM7RwHRYq8jx1dcdQb+vuvd9NE2fO2UkysOxV/s/aFdUh8rKPtjfZsvwEQsfudANOnTw+QQ/Pnz8fevXtRW1uL+vp6AL4w7dGjRweqvp2sWLJkCWbPno1169ahtrYWWVlZKCsrw4wZM9CzZ0/NzjNr1izMmCG92lBX1/4rmAkowz//uQJNTfENkf3EWYAh+ka8be8mvzN8wdt+cClJEK2REzfK2paaaoqPj5gMUmR36qUmO4BI0qzWAVRX22QHYkoQr7BtcnVGEAIWYkqRpAsqXX3LLcPwyiurmatdy5fvj+raKEUSqwRw8kVnwTKWUV0lCLouWRDqQvMGSvU2jDnNgow7xuDoUfbndDCsbQZChg8AtmWrALcnQqngR35+CnkuKXAcJIM0lUIQBKxe7bMxjR49GjqdDgLjufPjjnvGYvbcTSFV+DIyzFi3bhoZdt+nTzZWroxcSZ0/fxse+F0pPmBUymkW9fh+xUFsPSidX1VmPI5gbsQs87tLYeDAXPTtm83MdzhwoAE33LAIX3xxXUh1nI6AJUvKceWVH8m250ajDvX10/GnP83D++9XoKlJOlR74cLtmD374piVjrFg2zZ2QPDppyvrU/zQtRBJHAc8lrIDP9TmwE7kobBgMPB4990rA+03TSSFEpnU1I8Ztq2xQob1bLcHunShVYKUTUpLcHo9sh+9E1mP3AG43OBMcSZ12gGcUY9kicITgM/GJAhiRPvl3LY3Yl8qI0mWSCrI9T1kKia+Xb97Hc2fLQN4HknjT4HltGHkvsGKJCMn4uW0TVjmysEmTxp665oxUN+EC+pPZb63SdQjtYVoMvbs1vL/IjhXb8E6dwbchO6i7AqZPoUad7aMEUWbA9107O9DTpG0bFkFfvtNPltSSpEEACNGsMcoVVXNOHy4CV27Ks/wrK624dFHl2HBgu1ISTFi+vTTYDTqcM89X5PjNAAoKcnAs8+eh/LyOnz9Ne1+cIPHZfVjsDjzV6TxHlgFHXZ6pavu7fUmY683GUvuWYPN545Bbm70yuSOCCHWShAxotMSSX706NEDDzzwQHtfRofE5MmTMX/+fEyfPj0QLl5eXo4JEybg9ddfx7x58zBpEm0TUoMnn3xScvu0adOQkZGhybkSiC9EUcRXX+1uk3M93txXfqcWrF/fSjzoC3Ph3hVJOlDWtvjY2gCOWm0isn58eS3swfHOndXIyVGe60HB7Y5P2LZk8LHXC+j1EKiqbRmtEyiO43DjjUOZRNKqVYdgs7nJClkUKEVSWrdcoG5n4O+kslOQ+8JDssfTd8mCe2dFxOveKp/83x8WHQ6/IolLDlIkde1CDp6tny4DABwmFEmFhalREUlJSYa4BTCKhLUNAJKSTfjxx5vx2GPLsXlzFbp1S8NDD52BHj3oLKSLL+6N//1vY8TrHo+Aa+5ZRr5vwed7Ue+gJyTdeBv+nBw6Ccr8v+vJ/eXAcRweeugM3Hzzp8ztX3+9BzNn/oSHHjoz6nNoDY9HwO23f6FoUeDWW4fBaNTh5ptLccMNPZGcXIKmJhdmzfoFX3wRaYVraHDil18O4uyzS+Jw5fIQBJEMDB88WJ3yQZeTEXhGs3g3brXsx8t2+YW2++4ZBUOSCTfcMAQDB7aG95eUZDD3r3SbgKCuyEtkJOnCM5L0uojMlhMFvvuHrW7TYmFFKTiOA05AEgnwkWUAUMjbcZhQfzc1ubBzZzX692+1JwsOJ9x7IlV/VEaS3O/FGQ3QF+UFbN1yKPzkBZiH94d5uLK8Kj41lFAwciImmo5joslHONdIVJvz5ST5VFv6Hj4bs6GFUKLykTKTdRgyRKatoRYWWh5xwe5AMc8esx040AC32xtB1u/aVYNjx6yytm4/KGLbD4pIAnyqJDVE0i23fBroL6qqmnHHHV8qel+fPtkwmfT46qvrsW7dEVRWNmLKlPnMDLwa0YQRtefgNst+jNbXkdUvw3GsyobHH1+OF1+8UPHnSUAenZ5IihaNjY1IS9OuUlJHg59EmjZtGmbOnBl4vWfPnli7di0yMzMxefJkLF68GGVlZTGd6/XXX0d9fT2mTZtG7iOnVkqg46CyshFVVc3yO7Yxdu2qgcvlhdGog76wC5NIoqxtqalxGiDK+N/DkeVqRiqXjibGit6OHdU4/fTYiaS4KZIoaxsA0eMFp9dDaJTOSPLj7LPZgYdut4CVKysxbpxENR0GKCIp95rzUHjRtRCabDB0y4Oxr7Lj6nLZdivPMWVEUrC1jTMaoMvLhvdopHWg+dOl8IgcjjLKDwM+yfm6depzCuJplRCd0qREXl4KXnnlIsXHu+KK/igpyUBFRX3Ett372FVoAIDjRGzezLYh9dU14cP0NUgNGqAbencny0YrxQ03DMW8edvw5Zdsov3hh5fippuGobAwegudllixYr+iLCO9nsd997Wu1Ot0HAYP7gKdTodRowqRk/M08xn78svd7UYkHTnSRLZ1chOncHB6PfjsdAjV9QB8SjY5IumUbDeefYF9n1PE6VEHD2cyB1MLUURnJIX2H2nXXRRQTZ1oOOecEgwcmMssP6+k8l4CCmDw9VdXmo7gJYn7evXqwyFEkntnRUgxDT/qorS2AYBxQKk8kWQ0IPepe2E5XZ2bJLjfZSFFQpXlHztyyZaAgtrQ06eGpYiks88ukVegKlAkFevY6k9BELF/fwN69szEu+9uwief7MCiRTukzxeGvLxkUg3sR3Z2EtkHr117GJdeqozEXrPmMHPRQQn69m3NgBsxogAjRhTgmWcm4A9/+Jp8z5v27ngT8uHZwXj//S149tmJsS+sJhBAp8tI0gqZmfQKaWfH66+/jvnz5wNACInkR0ZGBqZPnw7ARzjFipkzZ2L69OmYPXs2+Z+WNroE4ovVqztmFSKvVwxMigylbOuClLUtLlBpbUOzPST8Nxg7dmiTQUVNrmKv2ialSPJ9Xi+lSArLphk8OA+ZmWwVzg8/VKi+tOZmNrmRkmKEZewQJJedophEAugKSd7jPiLJYmEPpJ0MaxsgnQ1xVDDBS3TFEydKh9BTiFfQdjyg1/P417/UV1Gtq3eSipR7k8pDSCQAMI+NPR+B5zl8/PFkDB5ME1Jdu/4bK1ZEZ9HUEqIo4plnflW07/PPT0Tv3uwwZ4vFgPPOY9+H0U4atIAUQSalgKOgD3rmB+ibkMFJE6bDB+dInD+D3BasCJHLSDL0KELWI3cgZ9Z9ktfSmcHzHN5881KYTKH90+TJA8h7MgF14Iw+kuQGy0EM0NHk/KpVoTYpJyMfCQDqOPZ4ShGR1F9+LtB97cdIu+FS2f3CwadJW5xMnEAWzfBXbgteRDIO6IlmUYf1ngzme8ad31v+oiQWG0VBgGh3ohuRkQT4FlCnTJmPm276RDWJBAClpcraQionafPmKsn31dXZ8b//bcQ118zH6NFvqL4+P/r2jWxPb7tthOaLMrW1dixeHGnXTCB6nJRE0oIFC9r7EuIKP3lUVlZG2sluv/12AEB9fT1mzZoV9bnmz5+P8vJyPPSQvF0kgc6B1avlPdeAL/vkq9FHQ0qjZ3IuvJK6Eftm9oQo/g12+1/Q2PggRPFvmDFIumqIEvizV9J/zw7Nb8pkD+4p0iJmUKtRhLVNsNpQqmOrvXbsiMxeiQbxCtuWrGDRQpyRGUlhiiSe53DmmeyVJKpyW0VFPT74YDM+/3wnvN7Qz0gpktRa5PygFEly1jaXSBBJXWkiSSpoe8KEUpx1lroVNyD6z91euOaaQbjsMnXWnc++rSC3dWUMzE2DFAz6FSApyYD586+WfJ4mTHgHv/yirPz0nj21uPLKj9C9+/Po3/9lPPLIUtjtdJZEOPbvr8ett36Kvn1fwrhxb+O119Zg+/bjmDDhHVmLclaWBR99NAl33z1Gcr+LL2Z/d9u3V2PfvvbJPqRIxPR0U1TtffAzr+OA0wzSpbdHj6MrP3bvnkFuOxhUoZGyZPgVSV2/nY3MP15/wlcPGju2CMuX34ybbx6Giy/ug1mzyvDBB4nCOFrBb23L5t34IGMtUji2AiZ8EdHFsHcDQL2BnTGjTJEkTSSl3XwZ9Pk0SSsFJVU5U4nP3koktRIvxj4leCNtFHmsc8+VX5ySij/wF66wcAK68Oww9Dvu+ALz52+TPQ+F3r3pasHBoCx6LKWgHx98sBnduz+Pm276BB99tDWq6/OjX7/I39xs1uOvf9XeKv7BB1s0P+bJjJOOSNqwYQOmTp3a3pcRNyxZsgTl5eUAgAkTJpD79ezZM0AyzZ49O+rzPfnkk+jZsyc+/vhjrFu3LurjJNBxsGaNMivNLbcMw+BML37M+glz09bh4/TV+DHrJ5xnOo50k6/zNJv1SE01wdvQhMur1oFjhIiG45prBpErun4iydirGJYzR0Rst3ZjT7rjVf2Fo7zZhLVNsDa35CRFIt6KpJhDcSUmM6LHC9HtgWhjr6yxqmWde24Jc9/ffjsEqzVUDfDf/67HgAEv47rrFuLSSz/Eqae+GSLDpkIco1XmkIokuYykloDecIm9oRt7kFbpNeP6BvZANTPTjLQ0ExYtmoKbbx6mKng27lWANAbHcZg79zJkZGhD+HZllLo2nzpUk2MDvjyHadMi2x8/nE4vrr12AZxO6cDq8vI6nHHGf7Fo0Q4cONCAHTuq8cQTK3DDDYsUVWKprbWjrOwdzJ27Abt21WDZsgrceeeXGDDgFXz/vXQFxBdeOB/l5X/E1VcPlD3PhRfSJBxl84s3qPayR4/MqPLBwp/5C03SK/FjL6N/f7NZj4ICtjoiOFifzkiSPPUJibFjizB37mX4/PNr8cADp0MnpYBNQBU4Q2t/lcx58VAyW0m4YcPRkIxF7xE2iVAnRpeRBACmAdIqW2O/6N0LwWHbFCgSzSr4viN9EJFUX+/Af4+yFT25uUkYODCXuS0EEookIagCaneerVQ/eJBWkClBcHabFAYNYu+3Z08tc2Fj164a3HLLp5oV5aFUvnfcMQq//722BbM+/XQnM3spgehw0rTUjY2NeOihhzBy5MhAZbcTEf5QbQAYMYIe6ADAqFG+CUx5eXlUJNCSJUuwbt06lJeX4/bbb8fIkSPBcRwmT56MJUuWqD5eAu0PURSxZo28tS0nJwkPPXQGoNPBwIk401iLEYYGWLgWpUiYYsQ6fzFyBRtG6etlj33//aeiTx+2pH337lbVTv7/nkTK1edDl5sFfUlXZP/9Llhz2RP2rKy2VSSxJoGixwPR7kQpYW0rL6+TnXgqQdzCtiWtbV4IDWxbG8AmksaPZ6/meTwCfvyx1RpUU2PDvfd+A7u99btZvfowLrro/cD3pbUiSU8RSTX1EL1eBRlJoQNaQ+9IgrPCa8GV9bQSxD8AzMqyYO7cy1BTMx0DBigYuKJzWdv8yMy04KabtCF70sImC3xmGoz91OVuyeH666Wr9Rw40IB58+iVZFEUceedX+LYsUhiecGC7YoImscfX449e6SVM+Ho3TsLTudfcc89Y5GerqxdLChIJQNZ28veRlVs698/OjVDuApxgrEKJTyb9LfoRPSVmaBR9rrKIGsbVWvHb20jJ6EJJKACnDG0PxiiZ5MTLpc3pCqlh5HrJ4pALVs8o4hI8gdYU4ilndYxxhnhSOPZY6yqlpxCfzvgcnlx+eUfwmZn73/OOSXKCGuOGje1KpIAoFSvfS6pTsfhuusGKdqXIpIEQQyQ9ocONeK++75Fv34voW/fl+B0SlcCVAOqkhrHcXjjjUuxZo12AhCr1YUlS8o1O97JjhOeSKqoqMCdd96JzMxMzJo1S9EqX2dGMIEjl0sUvH3NmjWqz8XKXwJ8drcJEyZg5MiRAXVUAp0De/bUor5e2oKWk5OEL764Frm5yeCIjCBRCO1grAsWAwAuMLHDcf3o2zcbI0cWoGdP9iD88OFW6xSfkoS8l/+Ckm2fonjVB8i4+1rU1LAVMfFSJKnJSBJaql1RiiRBEFVPCllol7BtrwCvFJGUETnAGzSoC1n6+fvvW9uNRYt2MFe9tm07HpBTUxlJ0SpzKGsbBAHemgbVRFLyxWeDSwpVFP3T2ge1xMouAFx+eaTVq2tXZXkBWimSOI5DVlYWsrKyAoPmzD/fzNw37dYrYz6fEnWMHHrrrBHzb9OgXmRbFS1OOaVI9nopmyYAzJu3Dd99R2c1PP74csnxSl2dHa+9pq7fNpv1eP/9q0hSmfV7+0HZ25Ytq4hQELYFKMuFUrI1HIawHDMdBzyYzCbzzhuQJKuYoVS1lUHWNg8xBNcHiCTJU8QEqd86gRML4f1vqa6ZzAratKl1jOY9Fmm3t4MHJeZQQiRxBj2MA3uR22OpTqjLk8/U6sqzx4j7WwheXU4GAJ+lbPlyOuvuttsUqmSoR0sQIQQpuKnsTCWgSKB77x2CggJlY4bS0syInDI/tmypwqef7kCfPi/huedWhpCNSvDkk+PxxRfXYuzYrsztEybIq9BGjizE229frvicKZwHpxvo61y4cLviY3V0tHf7fcISSUuXLsXEiRNRWlqK119/HaIoQhTFdv/C441g4iYrS9obG5yftHbtWtXnmjdvHhYvXozZs2dj0qRJEXlM69atS5BJnQxSQdtTp47AK69ciC1b7sTYsb5qFqRKJUiRJDiccGzwhQROMNJ+awC47rrB4DiOtAUcOcImK/zPdW0te5CgxhakCiqqtolW30ChWGeHnhjEaWFvi1dGEkmaAS2KJLpMfXhGEuD7zajqbD/80DqAk6patnnzMQiCGKJWCkbUGUmEIgnw2dsoIskBHb515oJPCR1Q69JSULjwOeiLfaqOJkGHFW560KvX80ySQmnwZHa2Nvc7z/Po06cP+vTpA77l908+/wzmvZB69Xkxn2/MmK4xV1gcqI9sIwy91OdMKcF//3spZs6kq56uXFnJfL2pyYk//elbyWOvXn0Y335LE03//e96VSvCFoseCxZcjVGjCsl9WL+3HxddxM4Ecrm8WLZM2kanNRwODxm2rchuwoD5lEg1XJmpGndYQj9bNufEX/40WvZ4JJHUQRRJUr91AicWOL0efGZrlWojJ5JZjf7AbVEU4TkaORGvE+j2WQmRBADmUWwCPu3GSyP6TjXgky2ygdslBGHzmbMADzb1RyWXgo8+2oK5czeQx7jyyv6YOJEmw4JBLmCIYYok4veQQlFRGurqZmDz5juxc+cfcOmlfaHX8+jWLQ1vvHEJnnnmcsXPtk7Hh1TsC8aNN36Cyy//iFR+U5g2bQQ8nkfw4INn4KKL+uDPfz6Nud+UKcoWkCZOLFXUJL6cuhEbsn/Au73244ar2Asgn322Ex4P1QJ3LrR3+80eDXdizJkzBzNnzgyQF/4VvROdQAIQYdmjgrb9yM5uncjU1qpXQmRkZKCszDeInjZtGgCfGunJJ58MWOXq6+sxcuRI1NVpG8hZVVWF48elSYlw7NkTWoHC6/XCG1balOO4kIcyfHtb7AsAuqA8GjX7CoIguYott2941Q4/Bg7MxauvXhh5TUQDJng8gX0cm3YCbt9Ev0DnRA9dM/Z52UqUKVMGwOv1Ii+Pvf3IESv5ffA8TxJJmZmmkPfxPB9oE+S+M6l9yXcJYsS+7haixcCJKNbZUc74DrZurWIqUYKvQRR9x6bgcrFJFb2ek7zf5Y4rSrShXpcbnkaCSOI4CBYTRMbvdu653fHhh5HBh9u3H4fH4wHHcVi7liaSGhudsFppBZ3f4iX32cKfT2Sk+CZxjPvCXVUDs5mejN/dNBTbX92B508ZEnJc88iB6Prb+/Aeq8GnPx6F57pPyGP83/+NRWFhSsTvRRGs4ejWLS3kvVq2EfpBvZDz0sOo/esLEGobwacmI+fJe2Ec3l+yrVJyDRwHnH12d3zxRfS5O9eaI8kbfWkRvF6vZs+9H2azDvfffwqKitJw/fULI7Zv316NmprmsOwnDpMmzcPhw7SCz49LL/0AjY0PwWzWQxAECIKAiop6PP30r3j9deV29JKSdHz88SSMGFEAr9er6rn37ztqVCG6dElGVVXkhGflykpceGGvqI4bzb6VlfUQiIIGffq0ksBqjmsY0BN8VhqE2lDbz5+T92KMoQ4rXNnowrtwWX4zRl33d9n+vqQkg7ntoKKMJN9nEwQhpPx6ZxlHtMW+Wj/LJ/q+fHY6hLrWe7uv3ood3siFibff3ognnjgHZq+bmXlYJ9KLMzk5SYqeufTfX4XGdz4PUW7zWelI++P1IfdpNG2ELj8bAjUWAVAiUSFtvrMr5j+4E8BOcp+sLAtefHEi83liPZ/ULyd4vRDsrWOX3jr6msNxxx0jcfXVA3DmmcXgON+4rrQ0AwsXToYoAnp9dM/9gAE52LDhqOLroGAw8Fi4cAouvti3+OC/Ly+/vA9uumkI3n57U2DfsrIe+N3vWm3iUvdwTo4FY8Z0xW+/0QWBSgvMuOKaU2Es6oLUSefhqvUNeGdB5HiipsaOH37YF8jqbO/nM9Z92xMnBJFUUVGB2bNn4/XXX0d9fX3Il38yEEh+qFX+BBNNWuVGTZo0CZMmTcKsWbMwY8aMwLFnzJhBWuGiwSuvvILHHnsspmNs2bIFNlvo6kRGRgb69esX+Hvt2rXkQ5qWloYBAwYE/t6wYQPcbjZjn5KSgkGDWr3KmzZtgtPJNppbLBYMHdq6OrplyxbY7ezOz2QyYfjwVonttm3bYLWyOySDwYCRI0cG/t6xYwcaG0MHzT/9xJ7A9e6djNWrV0e8nm5tAmt96kjlIexp2d/y2QoET3/PMNQyiaSzz+6Curq9WL16L6xWNkl47JgVK1eugo6RRjps2DCSSKquPojVq1s77SFDhiApybfydfjwYVRWspUDADBo0CCkpPg+wdGjR3HgwIHANsuhSrCm9qIgoKqqChUVFYHX9Dv2w2/Y66lrZhJJP/ywA+edF5lb0rt37wDxW1tbi9276Ym2w8G+BysrD2D16tB7uaSkBPn5+QCApqYmbNtGZ7oUGeiVwo3r10N/4BjSGds4i4m0zup09czX7XYPvvrqJ2RlGbFhA00kVVQcwc8/R96XfvgVSYIgMO9fP7KystCnT6viYs369chOTwZfH/ksHdq4Feazi8ljAcBL7+1C8dAvcdFFvULaiI0bN8LtduNdiaoh1103GE8+OZ7ZRng8ygh/r7c28Hm1biMAAN3Swb/1CIbnd4O+OB+cTocdO3ZI9iOnnHJK4N979uwhFy96945eOcdDxEhDQ8Tr5V473KtXY/jw4TCZfFkYBw8exJEj9L2lpo0YOpTO/Xj33WUYO9aX2+P1injuuf2SlrZguN0CTjvtTaxZMw3V1dW4776v8d57FYre68e0ab1w3XUl8HorsXq17zOUlpYiN9e3+lxfX4+dO+mJk7+N4HkOp51WiE8+iWx7li7dgUsuSUZxcTEKC30ka3NzM7Zsoe/zoqIiFBX5lK12ux2bNm0i9y0oKED37j5VmcvlwrJltKXP660H4LOpeTweSbV1bm4uSkt94b8iANuw3jAvjdz/LGMtzjL67tesu34PzmTE6pUryeNmZGSQGUl1ohHNog7JnBdewvfiVyStW7cOYlJrf9BZxhGBz8HzGDOmNQdu165dmrQRADB69OjAJHjfvn2SC4sjR46EweDrC/bv349jx2iLfbzaCKlxRDgGDBiAtDSfgih8HBGOvn37IjPTd6/V1NRg715225Ju0oeM1UYb6vGpMzL3rL7egbfe+h6TxrBtSLUCm0jieQ4ZGWbZcURxcTEK+/VA4cLnUfXw83CXV8LdtxjNN16AY0cOAEdav5do2gh9fg7cu2hLGqVIUgKzWY9HHhmAAwe2g/XzhY8jVq9ejQy7DaxvrPr4cXS1tSqyC3gnsjknakST5DV065aGW2/Nh9dbhTVrIgsCxNJG5OTERkjcfXcf9O2bhhEjcnH66a3fQ3Abcfvt+Tj1VDO2bWtA165JOOusPJhMrVSEXBtx8cV9JImkK3/XE/uv9PXHo7t2wXm5OUhKMjDVVK+//iNSUnztRmduI6IRgmiJTq1nXbp0KaZMmYLS0lLMmjULdXV1Afua/z8//Na2EzkjSU6B1JaYPn16SDW4+fPnt+PVJKAU+/ez5bX9+7MHxaTdKcjapt8Z2hjeZtkf4c9PTdXj7rtbO57sbHZn6vWKaGhg53E0NblIqWpaWpzChymemtHO8NbWAUw/YvVpy5b6mC+JsrbFnJEkIZ/lBBGck01gcRZ6YFRURJNT//rXFpSVfQ+Xix7c2O0eOBz0ilu01jYAEBi5TgDA7dxPWtuCMXcue0AviiJ+/ZVtYezbNxvvvnsFWWGva1dlsv/8fG2sbYIgoK6uLtC3hkDHw9Cjq+alyUeMUFaumIUpZvYA01ukrHJNtCguTiNVlMHP9OzZu7FgAU3asLB+/VF8+ukOzJmzWTGJ1KVLEq6+uhjLl0/ALbeUktkX4RBFkf69AQwbxi5msHNnY5uOrWqJtF+jkUdKSvTPvO2qcyWVl+axQ5Bxz3WKjkVZ2wDgUEtOkkB0INo+UWzI/dYJnFgQwiqaXWSklSdHjzogVrEnp5S1LTvbAp4oPsKC5fThyP7yZVR//AQanrgdnj7SizNKocuXDtvvFYWFDPAFV3/11bU45RSVYf5UexKWkcRxdAh6MO64Y5Ts9+z1erFy5UqsXLlS1bM9eDAxzleA224rxe9+1wOjR2fDbKZbMI7jMHRoJq69tgRnndVF1T0DIKByYiE93YALLwxVi1ssBlxwAduGuHx51QnR9iUUSVFAqX3N/3rPnj1x++23o6ysDBkZGZg+fToWLoyUoXd2yGUihSOY9Y0HCTVt2rTA71ReXo76+voORXYNGjQIAweGenPD76HglbdwhO87bNgwxfsOGSJd8ScYwasLchgwYIDihrFfv34h+zY2OlFdzc7tOPPM/hg9OjIQ71j2QrDWOPO7dEHWaF+ORGXFvxFstirSOfBh+hrMSj8de5r1GDGiAI8/fg5Gj27tALp1swL4lXkteXm9MGxYfsTr+/dHKhH8OOOMkejVq/X5CJYfFxYWoqCAXZEofN/8/Hzk5bVOphrWV4Bp2hREdOnSJbDqDwDWfbXw0wfDDA1gfXHHjztRUNAXRUVpIa8HX0NWVhZGj6YzOjz/3959x0dR5n8A/8zupodkk0CAUFNAekkCgqCCJCcgoGgCeNbzJFHPrhCxoVgw8Xe2swXL3VlOj8SKCmcCNs5KAgoiCglV6cmShBKS3ef3BzdrNpnZnU1mW/bzfr18SXZmZ57k2Sn7ne/zfZq/UHz9tNPSMGaM+ue9S5cuTrdrO1gLtecjw4YMReMxAaXShoaoCKfbjY//WjGT7JtvXBd0NBojkZY2GMDnisvlotMGg8FpG1ofn2PGjMH+QSk4vqPtk6aQTytguM51ceGffqqDyeQYwBg1ahQ2bNiHQ4eUvwg//PAUe1uUzhFdu9billtc17P7wx/GYsAA5euBO+eI0047DfX1p4ZgZWRkOKTBtzZw4EDN201LS1NdNzX1OIAvNW2ntW6Gtn9XKSIM6dOyIBkMDsdRnz597E+7lbh7jhg3rjfee69tkOiDD/bjmWfmYsmSz/Hqq+2rJbR8+WasXOl6uN99952N664bg5iYMJhM6jfoLT/vZrPZfmxYrVZ7Bo/c3y3XPeOM/gDWttlebe1J9Os3BD16/B58jYqK0nzMRUQ4P0e0XDc0NBQxMT0BbGizXs+eXdC/f3/7zyaTSfN2DQYD0i+aAcvOGliKXm6zbsKjtyEm91z7DFiutmuznfryabW2/ZzvtkZgoOmoakaS8X8ZSemZGTBE/R481vM+omVft17WkfsIZ/Q6RwCOx2dycrJDvztbt1+/fujbVz1o4clzhKz1fYSzdVvfRzhbNyEhQfV7wMG0z3H0q98zBLsYrBhsrMdPCsPbIiK6Ier4cSjl7tSGdwEUnoPJ9ZFc3Ue0/AxHRUVhTIuMNWfraj1HmFwEkuIMTTjNWI+fFX5vZ+655yxMmpQMm0293p7SfcTe6GgoXe27JiRAHHUclp8RYsEnTep9nZgYheuvH4uoKPWv7pIkORw3w4YNc3rdbunyy8/G889XOy0nIBswIB5XXjkSUVGhmD49TXWCHEDfc4TBYMCZZ/bFF1+0vRu9+ebxOPPMcQ7rAqdqWr31Vtvi2gcOnIAk9caYMUkBfY6QMxJ9JWACSXV1dVi6dKmm4WvyspycHCxatMghZRc4NduYLwJJFotF1w5PT093SNvuSJDG3SCUVvn5+fYhbjU1NboFkq677jrk5ua69Z5t27bhggsusP9sNBpdnmC1noD9ZV13iq61XreqyqK67uDB3RTboTaTl2QTMBqNaD5Yi+ZdbS9KI0PqsPq5iYiafpbi+3v06AKDQVKsg3Ho0HHFttTWqtfK6dYtWvXv2JG/mcGocgoVtjbrihazmo108uTpu+/2ol8/9fOEJElOPxNqGUnh4SFO3+dquwhRv1wYhIB0Qjm4IkWEO93ugAHxTlOVnWloaEJjo/rTGDkjyeXv1orRaERU1ngcX/XfNstsh4/g+LOva9rO++//gttv//3G1mg04uOPlYcgm0wGZGWlOKzbWnJyPEJDjaoz8wGnnmz27x+n2+ddvr66Ol925DhqKT4+Uq08lUtxUtusuJDUvjCFtM1S0au9MrVA0r59DQgLe9jl+++++0w8+KByEFipjlhrAwcm4I47JjoME9Ci9bHhrL+VAviyrVtrkZT0++BWd445d9c9eFB5iFb37tEOfdWeNsTffiXCBvRDw3trIIWHImJiBrrMPReSyfHv6mq7BsOpYrhKDzjkgtuuaiQZjSYYnOyno/cRLfu6Jb2PDa7r+3VNXdveU3QzNCoGkg4ePAabWbmu6eHwGMXXu3c/NSTHk8e9lnVD+isPyWtpfEitW4GksWN74a67zmrXfYRaJrckANsxx3vW2WF78dzxZBwVbc/hoaFGvPHGRYiJcT70DUCb+oha2xwaGoIPPvgjZs/+t+pEESEhBtxxx0Tcd98kzdlEen/eX3/9QuTmljjcN2Znp+Duu89WnE3zvPMGICTEoHhv/N57P2PcOMeh6f5+LHdkXU/w+0DShg0bsHTpUvvQKGfZR5IkITk5Gfn5+cjLy0NsrFLFjlMZSr5IZzObzSgrK9OtHlFKStsMkfT0dHuh6+rqasV1ZC3HUjvLvOmI9PR0+7/1DFYlJiYiMdGzwxWCjVqh7fBwE/r2VT6WJIPyBUr8b2hbY6X6WPmw9CGqy4xGA+LiwnH4sEKxR5WAkdK6wKkv1o7FbvWjOgpC4fRibVHENc7QhP6Go9hhazsc5uuv9yAnR/1v44pakEFtuJRmzm5GrLY2N0UyQ6TzYVZjxiR1IJB0EkePqmcHdWRoW5cLs3D43mcUC46eLFkJYJLLbXz44dY2M5WsXLlNcd2JE/u6vEk0Gg1ITY3DTz+pz+43ZEg3TUPv/JXRaIDZHO40MKzGbGgbSApNU69fpKcLLxyMO+9c7XYAzGCQ8Oyz05Gfn4mtW2vw73//6Pa+U1Li8MEHF7sdRHJX166RiI+PUMwg3LLlEM4+u79H9y/bt095aHCPHtqK0TsjSRKiLzgH0Rec0+FtJSfHKQaS5ILbauFgoxdmbaPgIk9r31JXg/K1c//+o2juonyNOWRUHsKrx7Gnh5BU1+f7C8L34h8ntA2lM5kMePHFmTCZ2vllXeUYFhBAq3uL7saT+HvMetx4Ih37Gn+/34qJCcMbb1ykOsutnnr0iMbatX/CRx9txbp1v2HfvgYYjQZER4eif38zZs8ehJ493cvm0lufPrH48ss/46uvdmP9+n0YNiwRZ53VTzWwFRsbjilTUrBqVdt7r7ff3uKQCU7u89u7zbffftth9i+lAJL8mtlstgdnWs/MpWbhwoU6tlY7eZYzT8nMzNQcSGpZnNtT7WoZPPKnYW3U1uuvb1R8ffDgrupPHhSi/wAA2/9mbKtQDiSZeiW6TEFOSIhUDA6pFdRWn7HNvbH7blF5EiAUxizbahy/UIwKqcOORuVAUkc0NSl/PQkN7VggSS37DACE1eowla3D+yKdB/GuvjodTz+tXgjbmfr6RtUpaUNDje2/+QNg6BKF2PkXwfLka22WRUjaxqR//vlObN9eay+8W1/fiK++Uu5ftXH8rQ0YkOA0kDR+vHqadaCIj49oVyApViEjyZjknQcOAwcm4OKLh+Nf/1I+jyqRJOC99+bZ6z7ceeeZbgeSHn/8XNxww1jFJ7F6kyQJgwZ1xZdf7m6zbMsW9c+k3vbvV65zolanyleSk8349NO2r/9qc14jyaA+HyhRuxgTzG1eUw8kNcDaRXlo+SFbGJSelPXo4R/HXkia6wDRMFM9bo6swhPHUl2uu2DBGRg+XH2IkUtq2SJCKD58Sw85grVnHcHXc/+MTZsOICYmDH/602ivBuqMRgNmzjwNM2e2nUHYXxgMEiZM6IsJE7QFBGfPHqQYSPrll8P46adDGDJEfUghOedXxbbr6urwf//3f0hISEBubi4qKirsBbJbFs+WX0tPT8eyZcvaVbH8kUce0bv5fqHlcC9Xs7jJMymlpKQ4DTh1hLwPTwfQqGOqq2sVvxwAwPTpA1TfJ6l8eXGVkRSWMVTx9Zbi45UzWZQCRm+8sREXX/yW4voJCfoUHlakFqBSGJJnbR1IMinXdPrvf3fjxIlmxWWuCCFUh7Z1NJCkekMEAK2msnV4m5Ni2wAwcmQP5Oa2LwPr11/r8eabyl+8o6I6XmA97qZLFV8Pk2wYEeZ6ul6bTeC5536fYerTT3eoFoSfOlVbIKnl9OZKxo0L/EBSdLRyQVdXzFLb48YYpzwUwxPuv3+S4oySagoLsxyKhw4Z0s2t4/Srr/6Mm28e55UgkmzwYOUHAOvWua6roZfdu5XPnf6SFSFTK7i9x56R5LxGEjOSSC8GhaFtCc4ykvYpB4YPNimfn/zl2DN2i4Ohi+ug1vWR27E67r94OHozbopUnhhj1qzTcP/9kzrWILVD2CYUs50BILJLOC65ZASWLs3CokVn+s3fNpCdf/5pqqfTt99uWz+JtPOLQNKGDRswd+5cxMXFoaCgwGEWCaUAUk5ODioqKrBu3TpcffXVvmy635ELigNAWVmZ6noWi8WexSXXMPIEuYZTfn6+x/ZBHff66+rTql56qZOCnmpfYKw2CJsNjZXKJ+jwDNeBA62BpAULPsYf/6he80xtO7pQuzIpjG+x1jrWRUoPsahuNiLiIfz8s/tP+NWCSIAOs7Y5yUiC1eYkI8n13/+xx85tdz+98sr3iq93ZFibzNAlCiGDlNPJbwv7BaGqg1N+99ZbP9mvZ2rTvnfvHoXhw7VlzgwYkOB0+fjx3hnK5Ul1dcrFyF2JVRjaZoxXHpbrCWlp8bjvvkma1n3yyalYsGCCw2smkwGnnea8f2Vmc7jDBAXeMmKE8tP5b7/9FcePK2cH6q26Wrl+S//+Zq/sXys5E7G13bYICAEI1Yyk/2EciXRiTGh7HuwqKQeS9u1rQPNe5fuPA0oVuPF7jSRfkyRJ9ZrdWj/jccwJ/w03RG7HSvNXmHWayT5M6qmnpuLtt+d0vCSAk4wkcVz5OmdwkcVN7uvePVo1e+mDD37xcms6F58Gkt5++22MGTMGGRkZKC0tbZN9JFefF0IgNjYWhYWFqK2txfLly9sU0KbfFRYWAgBKS0tV6zEtW7YMwKnhZnl5eYrrVFdXo6ioyD5UTmm5M9XV1Vi2bBmysrKQk5OjsfXkTXv21OH++z/Fvfd+qrg8MzMJgwY5GYKmUiMJViuatu6ErV55CIKz+kgyLYGk6upaPPbY1063k5Cgbcr09lArpAjFoW0Wh59PMzagi8JQHNkZZ7yMXbvUZ6JTojasDdAhI8lJ1oNobn9GEnCqKO3HHytn/8jL3SXP2NZRahktE0Jr8Jb5O8yP2IE/he/EtND9iutVV9di48YDAICyMuVzZnZ2quYx+mqzsQGnsrCcHq9ukiQJZrMZZrPZqzUE1IapuqI0tM3gxYwkALjrrjOxfHmOapDHaJTwyisX4MYbT1dcPnSotoDixIl9dc9E0tLfZ52lPGvRyZNW1Tp7eqqvb1Sth6eWAeQraoGtBmFCjVAPdMvFtj15zPnq2CbfMHVre91QmuUSOHX+Pb7nQJvXrQI41KCcLe1PWTPh6YPdfs8A01H84y/9sXHjtfjssytxww2n63N+VTu2bAI2lYwkLQ/fnO+Sx7aSCy8cpPj699/vh9WqrVyBP/J1H/skkOTO8LWsrCyUlZWhpqYGCxYsUC2gTb/Ly8uzF7leunRpm+UWi8X+eklJiep2MjIyUFBQgIyMjDZBo4yMDKSmnvryU1RUpLiP3NxcpKenO82MIt/59NMdGDr0Wdx332eq61x66XCn21Ad2maz4cR3KrU+TEaEjRiovKyF+HjlpzItv0SsXLlVcWY3x+14PyNJtGqTaDyJpirH2jhGCcg0WVQ3XVNzHPn5H7jVHGezeXnsyRoAW8OxNlPZyrTeFGVkJOHIkTvavD5iRHe88soFmrbRkh4ZSQAghakHpAabGlAQtQ13RW/FkugtqrVN3nnnJ+zefQQ//6xcdyI7W/vQ4mHDElVrfp15pnrByfYwGAwYNGgQBg0a5NWZQdSG/zkjQaCL0tA2L2YkAadu6nJzh+Lbb+dj48ZrceedEzF1ahomTOiDSy4ZjrVrr8Jll41Uff+wYdpqNZx1lrbaEO7Q0t/DhyeqTl6wfv0+3dvU2vbtFtVlahlAvuIssLXTqv6AwxtD23x1bJNvmLqa23ye1GokAcDhxrafif22MKVnZAD8K5AUpiHjXUlIb/VZKdtLUrkeCyFUs7g7mpHEY1vZmWcqPwQ5caIZVVXKWa6BwNd97JO9P/zww/bhay2zjwDYs48WLlyIqqoqfPzxx5gyZYovmhnQKioqkJWVhaKiIodAT3V1tf3vWVJSolq7qOXQN/l9agoKCpCamoply5ahvLwcBQUFSE5ORlZWln1oG/mXI0dOYN68UqdDSIxGCfPmDXO+IbUnNs1WHP9yveKi0CGpmi6UWjKSvv32Nw3b8WCasMZp2xo3boVobHvTdnmEcl0q2apV2/DZZzs0N8fZ0LYOF9uWJNWZ2/ZdUoDj/1XOXJQiXWckyWJiwtDUdA9KSnJx002nY9myGfj00yva9QVRjxpJACCFattOnKEJY0KUb0beffdnPPGEeuZcVpb2QFK3blGYOVM5EHv99WM0b8efLVo00e33xEjNUCpP5O2MpJaGDUvEQw9NwcqVl2Dt2qvw2msXuqxhpTUjSS0zyNOMRgMyMnoqLvvhB+WsPD2pDWszGqV2ZS56Us+eXRAWpnzO1BRIItKJZDS2OReq1UgCgEOi7QOUXU4+s/40rDR8dPsCSaY++geS1DOS1Ge6lSI4tM0Thgzpptod3rh2dVY+CSTV1NRg+fLlSE9Pt2ceybKzs1FTU4NHHnkEycmen+qwMysrK0NJSQnKysoQFxeH1NRU5ObmIjMzE9u3b3c63MxsNttntsvKymoTcFq9ejXy8vLsRbqrq6tRUFCAwsJCJCQkYPv27fYhduR/nnnmO9WZb2RTp6a5HPeuVjdHNDXj+BfKgYWI8epP41vSEkj67jvXQyk8ObRNa7HthndXK652ZuxxPFrkPFD++OPOh+615DwjSYfTvZNUb5ulXvF1g5tp2iaTATk5Q/DEE1Mxf34G4uIiEBurPRgl0y0jSWMgCQD+EHpQ8fUNG/apDsEcNiwRSUnuTaf7z39egNmzB9lnpYuMDMETT5zrtDB+IJk2zf3fQ2lYG+DdYtt6GDrUdUZSRIQJ6enKwRxvUKuT9P33nr8Zr6pSnlylb9/YDs3S6AkGg4R+/cyKy3Za1c+L8tA2FtsmPRm7mh1+jpOaYITyw6fDtraBpD2hytmdcXHhqlmKvmDq276AkKmvB86pTupoiqMqQ9ui/Odv2ZlERoao1pjcuJGBpPYy+WrHOTk5yMnJwfr16/H888/jhRdeAACUl5eja9euWLRoEebPn4+YmMC6CfQ38t+5PQoLC1WDQWazGcXFxR1pGvnQypVtp8FsraBggst11GokHf1AfbhcxARt9c3UAkB7954KWAghsHWr6xkbPToltIYaSaLxJOpe/1BxtYgxQ3D7gokYNrwHpk17XXGd9977Gfv2NWhKHXcWSOpwjSScGiZkVZnNRY2koUaSK+25SdWrRpKzoW2tZYUexANH3Zsy151hbbLY2HC8/fZc1NU14vDhY+jbN9YjM3dZrVZ7VmlGRgaMKhlpehs9ugfuv38SFi/+VPN7zAqFtgHfZiS1R0pKHMLDTU5nbhw9umfHh6oq0NrfI0cqB5J+/PEAmpttHg3oqJ3z09Kcz2boK/37m/HLL22HtO60qT/gsA+R9WAcyVfHNvmG1WrFMQi0fCxikIB4qQkHRdtr9CGFQNKvkcr191JT/evYU61d6UTokBSYEj3wezgJJKllJHV0aBuPbXXDhycqno/lOpaByGp1PemLJ/n88c3o0aNRXFyM2tpaexZSTU0NFi5ciLi4OMybNw9r1qzxdTOJOo2GhpP4+us9Tte55poM1fHELanVSFJlMiL8jFGaVu3TR/kL4JEjjbBYTuDEiWZNtVTczfZwh2qRuxZZlo0/VUM0KE91EjVzEoBT2V/l5Zep7qdnz7/i9dd/cFkQ0FkgKSys488Noqaf5fZ73M1IUiJJEi65xHm9rtZ8kZHUy3gCowe7Nwzv/PPdCzy1FBMThuTkOI9O/26z2WBTK4zhIZIk4d57z8ZPP+ThkWiVWmutJCoUjjV0iYIhvOOBTG8yGg0YPNh5wfT0dA8MwfgfLf2tlpHU2GjF1q3KdcD0sm2bciDJWRF6X0pJMSu+vqVZ/cGAN2okAb45tsmHFMb+qtVJOqiUkWRSvidLSfGv2mQA0OWS89xaP/baeZ5piLOMpA7MdOsKj21larPjBnIgydd8HkiSyXWRtm3bho8//hjnnHMOhBBYvnw5srOzMXDgQLz00ku+biZRwPvpp4OqAZgePaLx7LPT8dRT07RtzM0vsNGzJsMYqy2w46wuzo4dFjQ0qI/vb8mTgSS1oW0ti203bd2p/F5JQpc5U+0/nnNOstOn6pde+g6GDn0W+/Y1qK7T2KiexaBHRlL8nVfD1N+9Kcf1yEgC3M/c0a1GUph725k5pY/mdQ0GyWe1bgLBaYO6ISd8L04zKg+bbClR4QtRe4uu+pqrOkkZGe4dg3obPLgbjEoFqeD54W2BlpGk1pdbreqBJPtVlUPbSEdCIYNcrU7SIVvb6/YuKH9m1YKlvhR7tfaRGJHTJqJL7h880g7VYttOZm3raEYSqVN7CFJVVYP6evWasaTObwJJLckztVVVVdlnatu2bRvy8vJgNBpx3XXXYceOHb5uJlFAUptSPizMiN9+uxXXXjtG+7AJdwJJRiPMN16iefWePaNV6/ps316Lo0eVh7K03Y4nA0muh7ad3LpLcZXWRcclScK112Y63d3PPx/GzJlvqC5vbHSWkaTD0LbYLui+/K9uvUePjCQAmDdvmGqWmpK4OH1uxqRQ94bIXTBNe8DrxRdn+nzqVr/2vz9ND5VpqltSmso6Mmu83i3yCmcztxkMEv7wh1Qvtqat8HATTjtNOWvKk0VLT5xoxu7dytcvtdoXvqb2xcUZk8Ri2+QBCvdrSudNADisUGx7p0X5AaS/DW0DgLBhaej21wWAhozi7sX3QfLU8C9nGUnHlf/2emQkkbLhw5XPx0IAH3201cut6Rz8MpAkS05ORmFhIWpqavD8889j1KhREEKguLgYqampGDt2LN555x1fN5MooOzeXaf4ep8+sW5/qZVUaiQpSbj/LwgbmqZ5faPRoFqo1J2MpMRED9ZI0jC0rWmbSiBpQNvpu+fPT0e3bs6Lg69b9xs2b1Yu6uwsI0mPoW0AENK3J4QbU8xLOj1dCwszoaxMffhfa3oV/3Q3I2nokK5ITdWW6j9+vPbspaD0v0DtYJPrjCSlL0RR2YEZSHKWkTR9+gDPZllqpFYnyZOBpO3ba1ueWh3469A2taEUzhggIIWHMiOJ9KUQSFIb2ta6RtKxrt1wqEZ5KJY/Dm0DgJjLZyH55w8Q8+cLVdeJvjALBp2yphWpPWwUzEjyhZSUONW6qW++qW0YPTny60BSS3l5eaioqEBFRQUuvPBCCCGwbt065OTkICHB/SdR1157rQdaSeT/1J7o9u2rPCOHMyEahzlFnJ0Jc36u29tXm1J2+3YLjh7VFkjyZOFXLTWS1AJJIQPaDmnq0iUM//znBS73qx5IUs5IMhgkff8OIdqDUnreFJ12WlfVITWtxcXp81TPnRpJAGAIDcHs2YNcrpeSEofTTvPPLAq/8b/j66LwvS5XbT20LSStL0JSenukWZ42enQP1RjCggVneLcxKnwxc5vasDaDQXI6FNqX4uIi0Lu3ewXfjRCImJDObEXSlVDIukmQtAWS9vVWz7T110ASABiiIxF9gfrMuKY+nqs3B0A1GCwam4Bm5fs1vR6+UVsGg4SLLhqsuGzlyq2oq+PwNncFTCBJNnr0aJSUlNiLc8fGxqK2tta+fOrUqZqylJYtW+bJZhK1y/79DVi7dhdWrPgZ//znBjzxxNdYvPgTPPGE9ingXdm1Sy0jyf3ZjSI1PPE39euJHv94yO1tA0Byslnx9e3btWUkDRrkvGhth6k8bRL/G9omrFacrNqtuE6IQkYScGrq8xUrLna6W7XhiWrFtvWoj9SS0g2pGr1virQOu/TV0DaEhOCii1zX5rnqqlH8ouiC/PdJNioXq2+pdbFtLecmf9WrVwxmzmxbhD03d4jf1NRSCyTt2VOHmhrlJ+0dpVZou1+/WN3PcXpyNyvJFN8F8Yuu9lBrKGh1ICPpV3NPxfVMJkO77h29KTxjCMJGKwcPov834YmnqNVIstWp17o0RDnPSqeOmTt3mOLrjY1WvPvuFi+3JvAFXCBJJhfnrqmpwfLly5GVlQUhBD7++GN7lpJaLaXVq1d7v8FEGvzrXxtx5pl/x6xZb+LKK9/DLbf8B0uWfI4XX6zUbR9qGUntuRkw9eyG7q89orrckBCLHq8+AkN0+y6MahlJWoe23XnnxHbtVzO1OMD/EpKad+0DTirXcgpNU/9COGPGQOzefYvqcrU+VBvapkd9JJkkSZBMbgSSIvQOJGm7bPlqaJsUasK4cb1x3nkDVNdJTjbjhhtO72jTPE6SJMTExCAmJsZ3Qa//7Xd8iHIQQZZkcBx2EciBJAB4+eVZmDXrNBgMEkJCDJg7dyj+8Y8LPLpPd/pbbWgbAGzc6JmsJKVpmwH/LbQtc7dOUu83HkXYyPbP5qiFXxzb5DWSJMGkMIOlWiCpVoSiSfz+udhjUs5Y79/f7NFZQ/UghZjQ4x8PInTEQIfXY/58ocePM7WMJGut8gNdADDEqhfi17ZLHtvOTJzYV3V4+BtvbPJyazrO133s30e/Rjk5Ofj4449RVVWF+fPnQwiB2tpaey2lMWPGYNGiRVizZg3WrFmD/Px8XzeZSJHacJzaWuWx6e2hViOpPUPbACD63Ano9dFzbV4PGzMMvctfQthg92bbakk9I6nWZSApKysFl1wyot371sRFse2TajO2AS6H3fTuHYM//WmU4jK1rDK1oW161UcCAIPBAFOY9iwdvcf7a89I8s3QNsl06m9dUpKL668fg/Dw3//2ISEG5OQMwapVlyImxv+npTcYDBgyZAiGDBkCg9pn3dP+d5NkltSL63eRmhDXYrkUFYGI0z187HtYQkIk3ntvHo4duxOHDi3Em2/mIDJSn5kI1bjT30lJXRAfr3yMeapOUkWF8hBHf62PJHM3Iym8r/sFut3lF8c2eY3BYEBsnLnN62qBJACosf1+vtndrHy98udhbS2ZkhLRu+wF9PjnQ+haeCuS3n0K3R5Rf1inH5WMpCPqdf86Gkjise2cwSBh7tyhisvKyqpw8OBRL7eoY3zdx/p9u/ADycnJKC4uRnFxMZYtW4aioiJUV1ejoqIClZWVKCoqAgAIIXwewSNSojYcp7ZWn6ECJ09asXev8gWsT5/2BZIAIHzMMCTvLMPR/6yF7ZAFISl9EHHO2A4fZ2oZSUePNmHnTuWsHADIy0vHk09Og8GNotDtoZa2DNuplCS1+kim3t1hiHId6FAL7qkNbfNGRhIAwKT90uGrjCTdhra5ETQDfg88RUSE4G9/m45HHsnCjh0WREeHIimpi/YZEekUgwTYgDiDeiCpn/G4w4Pf8IwhbgcA/VVYmEnXQLBeJEnCiBHd8emnO9os80SdpOPHm7Bhwz7FZenpysNu/IW7GVP+nuFBAUohk9hZIKnaGoXuxlPLt9eqzdgWGIEkAJAMBkRNP8u7O1Ub2qaWkWQwtDuDn7S7+OJhePzxtiVDrFaB5ct/xF/+MtYHrQpMnfZqlZeXh23btmH58uVIT0+HEML+H5G/UnvCe/x4M06cUJ+RS6vffqtXnfWmo+PcDZHh6DI7C7HzcxA55XRdgrXOCqiqPZ0ePjwRxcUzHTJBPMZFsW21jKSQNOX6SK2pBZLUhrZ5q0aSO0PbfJWRpNfQNi3TBzto9beJigrF0KGJ6NfPzCBSe/zvGIt1kpHUz+BYQyksQ/lpI+lrxAjlTBtngSSL5QSeeuob/PGPb6FfvycwceLLuPvuNfj+e+Ugkayyci+am5W/zI4b599F1dVmH1Wje+CfCL9ny7YUJ51EqMo3wXcbTwVoTX17YvtO5cBHoGQk+Yza0DaL8gNdQ0wUJGYReVxmZpJqgP+jj7Z5uTWBrdN/WnNycrBu3Tp8/PHHGD16tK+bQ+SUs+E4emQlqWWyAO3PSLJarfYZFa1W5UBGe3XvHqU6BOirr5SLWHfp4sUhQy6KbTdtVc5IClWYsU2JWnBv//6jitlH3hjaZrVa0disPagp6Ty1rtagmE9qJIWYOlW2qyePbc3koW1OMpJaF+MOa1ULg7Rxt79HjlSe8Wj9+r2wWNoOx96zpw7jx7+Em25ahTfe2IRdu47gv//djYce+gKjRhXjnnvWqD7s++9/1c73oZ6fVKGDEhOj3AoOeSMDzS+ObfIaq9WKQ5baNq8bJWCcSkLfW41JePxoCsSwQdixw6K4DgNJzqkW21bJSDKYlWv3uIPHtmuSJGHePOUHTuvW/RZQSSe+7uNOH0iSZWVloaKiAs8//7yvm0KkytlwHD3qJKllssTGhnWoZktTUxOamtS/6LWXPHxCyd69yrNeREV5cUiLq4ykbSoZSSoztrXmrG7Vnj1tb0S8NbRNaBwyKIWHQnJjhjcttAxt69IlVLfsH3dmbZNCOsdwqpY8dWxrJd+Id5PUp+WdEnrQ4eeQfkkebVNn5k5/n356L8XXrVaB1aurHV6z2QQuu+wdbNlySHV7Dz74Bd5++yfFZWvXKgflx4/v4/dDwQwGya0ahFqH73aUr49t8i6bymV7Xppyph8APHM8BY8c6q2aDThwYIIeTeu8XNwjtmaI6Vh9JBmPbdfUZkA9cOAofvtNvYYVOfLvq68H5OXlMZhEfkttaBsAXaZUVqsr1JH6SJ7mbHYgJdHRbk7X3hFObhKsNUdgO6z899aekaTeL0rZZd7ISAKgOI2wEilSn4LXLWkJEPXurd90xO7U2pE4dE1//zvGJoTWwIi2X2bOCjmE4SGON32mfv5dM6ezGDKkm+qxtmqV4/CAN97YqFhPqbVXXvnB4edDh47hhx/24/PPlYPyEyb00dZYH9M6vC3U6PtZeKiTUnmoc16fZvSLUg8mFX+kXEYgMjLE77MBfc7NYWrGDhbaJu2c1dZTy4CltoIukAQAc+fODai0NQoeEREhqtkjegxt27ZNeQpttaLW/sDdqZOjorwXSFIdy24TqoW2Ae01kiIjQ5CQoByMUQokeatGktZAkkHnYW2Atqf1ugaS3Bja1lkKPPsV6VR/JxiaUBDlGJzoaziGoi6bHV4zmLvAqNNTXXJOkiRMnZqquGz58s32+6zmZhvuuecTTduUayXZbAI33bQS3bv/H0aOfB5HjihnpE2cqO1c6mtpadqGAIWaGEQizxAq9yvWdT/gXuP3bm9v9OgeMJmC8mukdm4ezobYjg9tI20SEiJVZ4YuKdms+Dq1FZRngNjYWJSVlfm6GUSK1Ook6TG0TS2Q5M/TJ7sbSIqM9OIMRypDvITNhpMq9ZEMXaJg7K49HVy94LYPh7ZpHK7WOTKS3AhMujGbHWnU4hC7KmIX3on9BouifsFTQw/jPfM3bWYdMvVlNpI3TZ2apvh6XV0jDIYleOihz/HSS5XYvt2iaXs7dx5BXV0jnnnmWzz11Lew2dQf+hmNkurwOn8zdKhyYfLWwhhIIk9RCfrYDllwduhhXBy+x63NZWTwXOuSmxlJBmYkedUf/qD8IOTDD39BQ4P6jIb0u6AMJAHAlClTfN0EIkVqw9v0GNq2dWvgBZKGDdN2Ay7zymxtMrWbBCHQ5KQ+kjtDF9SGtwXE0Lagy0hiIEl3rY6V4SH1+HPELsw07EEXQ9vPuynJvfMFdcyUKSkwGtXPZ3ff/QmuueZDt7a5fv1ePPzwWpfrpaf39GoGakdovY4xI4k8xsUDoCVRW9zaXGYma9G55t7xrEexbdJuzhzlgtvHjzfjgw9+8XJrAlPQBpKI/JVawe2ODm07cuQE9u1TLlCtNg2mP4iODkVqqvaZQbwaSFK7R7AJ1YwkrcPaZH37KgdF5IykY8eacPjwqVmrvJWR5OqGVGboBBlJRrP2bXXGYtu+JpmU+9u696Di68ZunEXIm8zmcJx7rnJWUnvdfnuZ6rWqJbViqf5o6NBumtZjRhJ5itrQNpkkAXPCftW8PQaSXHO33JkxhoEkbzr77H7o3j1Kcdm//rXRy60JTAwkEfkZtaFtBw8ew6uvfo9bb/0PHnvsK7cDS598skN12YAB7Z95Q5IkREdHIzo62mNFQtWmmVbizUCSeo0kG5q2KmckhboZSFLLSNqxw4Ibb1yJbt0eRdeuj2L06GJs2XJYcV09M5IkSYJBYy0gKVJ9FsL20pKR5M4MSa6Y+ifB1Efb508K6VwZSd44tl22Idy9rDZjVwaS2qu9/X3ddZlu78tgkNCzp/IwjnXrftO0jUsuGe72fn2lW7co1S8sLXkrI8kfjm3yHkmSEBrh+no8IVT5HqK16OhQztimhQ+GtvHY1s5oNCAnZ4jishUrfsHNN6/Ciy9W+nV2kq/7uHPd9RJ1AomJkYqvP/fcOjz33Dr7zw8//AVWrLgY48drm7Wm9Sw6sp49o9GvX/u/eBsMBgwbNqzd79dixIhE1WmhW/NuRpL6Cbxph/KXoRCNM7bJ1IIiW7YccphKe8OGfarb0LPYtsFgQHRsDLSEMT0xA4mWjCQ9azdIkoTuy+7Dr9Oucb1yJwskeePYdsXdQJKJGUnt1t7+nj59AGbOHIgVK7TfbM+ZMxQDB8ZjyZLP3d4fcGq2ttGjA6tGy7Bhidi/f7vTdcI0BMr14A/HNnmPwWBA915JUC5u8LvxIbUwQMDmYkjWzJkDYdQ4xD2oufklX4+hbTy23TNnzlA888x3isuefPIbAKdqAc6YMdCbzdLM4GawUvf9+3TvRNTG2LHaiocePnwcM2a8gb17612uK4TAhx9uVVw2dWqazyParrhTcDsiwovDi5z93WzK0+mGDnB3aFvHs2t8NrTNI4Ek55et1NQ4dOvm+sm/O8Izh6LfxndcrtfZMpL8gbsz/zEjyfskScJbb81BYWEWevTQdswvWjQRkycnt2t/PXpEY9myme16ry9pqZPEoW3kMSrDhFuKNzRhQojrrKRbbx2vR4s6P5UJWVRX54yjXjdxYl8kJTkP4OlRo7azYiCJyM9MmzZA87o1NcexaNFql+v98MN+7NnTdpYvQH3WHX/iTiDJL4ptqzEaEdLfvVmG+vTpeL0fvQNJanVrWvPETZGrjCStgVh3aZmWlzWS9Of20DZmJPlESIgRCxdOwJ49t+Dee89yuu5f/jIGI0Z0xxln9FGdXKI1o1HCc8+dh1dfnY0tW/6CIUO01RzyJ1oCSaGS+ix1RB2h9bo9N9z50NJzzklmfSSt3HxI64ksbnLOYJCwePHZTteR65BSWwwkEfmZvn1j3Rqa8/rrG7F/v/PCpGrZSCaTQXX6S62sVivWr1+P9evXw2pVnjWso5KT4xAdrW12Hu/WSHLvJiGkfxKkMPdmGerZs4vTWZG00LNGktVqxZGjrgvhAtqCL+5ylZHkTtDRHVpuwjvbrG3eOLZdkcLdO16YkdR+evS30WjA/fdPxrXXKtdNmj17EB577FwAp4bczp2rPGtOaxdfPBzXXJOJSy8dgdhY/WuveYOWgtshzd6Zctofjm3yHqvVij1792pa99zQAzh7hFlxmcEg4YEHJuvYss5NtY6mCj2GtvHYdt/VV6fjiitGqi4/fNh/M5J83ccMJBH5odtvP0Pzus3NNrz66g9O11ErFDdxYl+YzR2/KW9sbERjY2OHt6PGYJAwfLi26ZP9pUaSkoiJ6W7vwmQyuEy7dUXPGkkAoPWyZYjRd4gZ4DojSes0227TUg/C1LkCSYDnj21X3M5I6tHVQy0JDnr199/+Ng0PPXQOEhIiYDRKGD26B/7xj/NRWjrH4Xx06aUjNG3vjDN6d7hNvqYliyrkpPeONV8f2+RdzUJ5uH1rkgS8+cJUZGenOLyemBiFf/87B2ecoa0uJ0F9Zl8VemVx89h2j8Eg4cUXZ2H27EGKyy2WE7BatR0/wYaBJCI/lJs7xK2spP/8p0p1WX19I775RnlK1xkztA+j8zWtmSbeHdrm3l1C1PQz27WbjtZJ0r9GkrZLhydqJIWGOt+3pwJJksHgciijpHE2O9LOnRpJISm9YdThiS51nNFowJ13nokDBxbg+PG7UFmZjyuuGAVDq3Pm+PG9kZYW73J7WieV8GexseHo1cv55zOiBzPqyEM01jYEgO6jU7Fq1aX46qs/47XXZuPTT6/Arl03q85wRSok72ckUfuYTAa8+WYO7rnnLCQmnnoIGh0dir59YzFqVA8cPdrk4xb6p873+JSoEzAaDfjnPy/AhAkv48gR108Vvv32V9hsos1NOnBqKmWbTbnuwvTpDCR1iBtpyyED+yHizIx27aZv31j897+72/VewAMFyDUGkowxnhjapn4zHBMTpktxclVGg2oRdYDFtj3BnYyk8AmjPdgSag+DQYLBoH7MSpKExx8/FzNnvqG6TnR0qOcyDb1s+PDu+PVX9QkyInsxo448Q2i8bocOTYMUYoIEYNy43hg3LvCzAX3Gjax1KSwUBjczcElfoaFGLFkyGUuWTEZzsw0mE/NtXOFfiMhPDR2aiE8/vVJTAKWurhE//XRQcZlaNlJ8fAQGDQqcm1a/DCRpvUkIMSHxiTvaHWjoaMHtyEh9A0nCT2dtGz++t2IwVS+u6iQxkKQ/dwJJEadrGyZF/mXGjIF47LE/qC6fOjWt09zQT57c3+nyiESzV9pBQUhjICl2fo6HGxJE3Lgd4Yxt/qWzXHM8jX8lIj82alQPbNiQj8rKPHz99Z9RX79I9eT21Vd7FF9XCySNHdsLkps1fnzJH2skaf37mfNzET5mWLv3k5zcseEOUVG+yUjyRCDJ2d/c47UbXATQGEjSnzuBpLBRp3mwJeRJt9wyHs89d16bQHBcXLjLWeACiatZUvWcGIHIgcYHQNEXZnm4IcHDnWLbHNZGgYhXLCI/J0kSRo/+vV7SqFE9sG5d2+lZv/56D66+2rGYsxAC33yjHGA6/XTPTJPuKbGx4ejf34wdOyxO1/PHoW1xt17Rod20LnrpLr0zkjQHkrroX2xb6bMvO/PMvrrvryXJaIDTybkZSNKdFKFt1jYpMgIhaZ7tf/Ksa67JRGZmEv75zw3YvbsOQ4d2w5//nI6UlM5TN2j48ETEx0egpkZ5FiDd69kR/Y+WoW1R553lVl06csGNh7WeePBG5Gm86yUKMOPG9VL8Mv3ll21r6OzZU4e9e5WnatczkBQREaHbtpwZMaK7fwWSNNwkRM2c1OGASmpqPHJyhqC0dHO73h8V5d4U6q4Yw1zfaEqRETB20/8L4KRJ/VXrRU2Y4OFAgsuhbZ2v2La3jm01Bg2fNQAIHZICyY1isqTM1/2dmZmEzMwkn7bBkyRJwtixvbBq1TbF5d7MSPJ1X5N3hWro77DhA73QkiDixlB7PYe28dgmb+HQNqIAozZ7zU8/HcLu3UccXlMb1gacGtqmB6PRiJEjR2LkyJEweviL3IgRroe3+dusbaGDO5ZNJLvvvrPdebjlQM+MJKPRiG49XNerCj99uEe+2KsV3Z09e5DDtOKe4Or3MUR3rps3bx7baqRwbUHQkOTAyrD0R/7Q38Fg7Fj1QJm3MpLY18HFaDQiOS3V5Xpaz7ekkRs3bXrNOMpjO7j4uo8ZSCIKMM6G73z44VaHn9WGtaWlxSMhIVLXdnmDloLbXq2RpGFom6RTmvjQoYlIT+/pekUFeg9tc1V0GgAixo3UdZ+yc89NRb9+jjOzSRJw991eqKNicv7ZMia6nsac3KP1+Anp13mzWKhzGTNGPehpsZzwYksomGi5bkthDCTpyp2MJA5towDEQBJRgOnTJ1Y1oLJixS8OP6tlJAVafSSZliEPERFeDCRFhrtcR8/pXKdMSW7X+/Qvtu36htRTQZW4uAh8/PFlyMkZgu7dozB2bC+Ul1/e7iCbOyQXNSaM3RhI0pvWYtumvp7vfyI9jBmjfh3bs6feiy2hoMJAkte5M6GNIZbFtinwMJBEFIBmzBig+PpHH23Ftm01AIDGxmbVwsTjxvXWrS1WqxXff/89vv/+e1itVt22qyQ5Oc7lzFzezEjSMsuGFOE62KTVBRcMatf79MxIslqtOHD4kMv1tATZ2mvgwASUlORi377b8c03V+Occ9oXYHObiwCaJ2pC+ZI3j201WgNJzEjqOH/o72DQvbt65sHUqa6HH+mBfR1crFYrqnbscLkeh7bpTHJj1jadMpJ4bAcXX/cxA0lEAWjGDPWCiNdd9yGEEPj2219x/Hiz4jp6ZyQdP34cx48rz0KjtwcemOx0uafr5LRkiI50OXObXkPbgFMBQGdPs9XoPbStyeb6wtUZZ35xNTTAlJjgpZZ4jzePbSVaM/pMvV0PeyXXfN3fweLWW8cpvn7WWf281gb2dXBptCrfD7bEjCSduVHX0qjj0DYe2+QtDCQRBaCxY3uhe3flmcDKyqrxwQe/4NNPdygu79IlFKNHB+4wkHPOSVYd4tWrVxe3Uok7SjIYXGYlGXR8widJEpYtm+n28D29Z20TGoa26ZmJ5TdcBJI6W0aSP5AiNQaSune+IB51XgsWTMCgQV0dXlu48Iw2rxHpxsXQbIAZSbrj0Dbq5BhIIgpARqMBt99+hury669fiQ8+2Kq47Mwz+8FkCuxD//nnZ8BsbhuomD27fUO/OsLo4uKvd0Bl1Kge+OyzK916j+51o7TckHbGjCRnv7fRCENcjPcaEyS03FwbEmL5JJ0CSo8e0Vi3bj5eemkWFi8+G59/fiUeeSTLqw9CKMhomRxEx5qOBE1/c/uqDCRRAArsb5NEQezmm8ep1gvatesIvv1WudD25Mn9Pdgq70hLi8cnn1yBwYNPPb2VpFNBpEcf/YPX22KIcxFI8sCN2ZgxvbBggXogsaXwcBOMGgI/btGQkWTojBlJTn5vY2K8pln8yD3GrmaX65h6MIuDAk9UVCiuumo07rtvEs48sx+DSORRQssDIAbkdeXOMW3UUHOTyN94ryotEenKZDLgqaemYsyYFyCE9vdNmtTfY23yplGjemDjxmuxe3cdQkIM6NXLN9kgrp4iGTxUdFprLSi96yMBGm9IozpfIMlZjaQQ1ujxCGO82eU6tvpjnm8IEVEg0/IAiBlJ+jK4MbQtRr8aSUTewsenRAEsIyMJV101WvP6sbFhGD26hwdb5F1GowH9+5t9FkQCXD9F8lTNAV8GkrQMbeuMGUmSkxtxU5/Oc1z5E0NstMsvQKEDvVegmIgoEFkTXdfwY0aSztyqkcRAEgUeBpKIAtzDD09Bt26RmtadO3eo/sOcAISFhSEsLDifZBnMzoNYnqo54MtAkklDkKhTFtt2Fkjq1Tkzknx9bEsGA4zxzo+x8NNHeKk1nZ+v+5u8h30dXMJiu6B5tPqMvwADSbpzKyNJeQKd9uCxTd7CoW1EAS4xMQoffvhHzJjxBg4cOKq6XkiIAbfeOl73/RuNRowerT0rqrNxVZ/FUwEVrYGk2Fh9byaMRiNSzz4Dv/31X07X64zFtp3N2mbq0/kCSf5ybBsSzLAerFVdHn1Rthdb03n5S3+T57Gvg4vc32LFc6juPUV1Pc7api9J0vbgVoqOhGTS5ys5j+3gYtQwZNWTmJFE1AmMGdML69bNR3x8hOo6L7wwE6edxqK0eouYlOl0ucFDARWtgSSl2e06KmzUIKdBFUhSp3yyKTl5uthZM5L8gTE+VnVZyIB+COGwQiIil6SwUJj69nS6nPRj0DBZBAAYOayNAhQDSUSdRJ8+sfi//1N+Mv/GGxfhiitGebdBQSJs9GCEJPdWXmgw+HxoW1ycenCxvQwRYQgbrp4iL0WEd8oZiGxHj6suMybGe7ElwcXYVb22h/nauV5sCRFRYIs4M111GQNJ+jIlJWpaz8AZ2yhAMZBE1In86U+j8dRTU9GnTwxMJgMmTOiDbdtuwLx5wzy2T5vNhk2bNmHTpk2w2Wwe24+/kiQJic/drVhUMTxzKKQQz4wg1p6RpG8gS+7vhkF9nKxk1XWf/sJ2pEF1mTHOdwXfPcVfju2wkaepLmMATz/+0t/keezr4NKyv2Pm5yiuY+yeAMlDs8wGK1MvjYEkHWds47EdXHzdxwwkEXUyN9xwOnbuvBlHj96JtWuvQmqqZ79oCSHQ0NCAhoYGCCE8ui9/FZ4xFAmLr3V4TYoIQ1zBVR7bp68ykuz9na6ekSROnNR1n/7CVuckkJRg9l5DvMRfju0uuX8AVAKyoQP7e7cxnZi/9Dd5Hvs6uLTs75BByYicMq7NOl3mTO2UmcS+pDmQpGNGEo/t4OLrPmaxbaJOSJIkzYEG0of5LxcjdFAKjv7nvzB0iUT0BVMQNnyAx/bnyxpJANA80ElGUiflLJAkRek/hJBOMfXsBvN182B58jWH18PPGIWQ5F4+ahURUWBKfPZuHCp4DEc//hJSiAldLpmB+Lvm+7pZnY4hJhpSVASEk2HxAGDUMSOJyJsYSCIi0knklNMROeV0r+zL14EkGAyIyBqH4+Vft1kUPsZzQyl9yVmmFZ/kelb8oqshTjah/l8fQjQ1I3LSGHR7cpGvm0VEFHCM8bHo/sL9p7IZrFbdZgwjR5IkwdQrEU2/7HS6nrGbeh1AIn/GMwcRUQDSPrTNczUPzLderhxIOmOUx/ZJwUkyGtF1yfVIuOcawGiAZODIfCKijpAkCWAQyaNMSRoCSU4mlCDyZ7wTIyIKQAkJ2oZSeSwjCUBY+hDEtpo1K3RICsw3/NFj+6TgJoWYGEQiIqKAoKVOEjOSKFAxDE1EFID69zdrWs+TgSQA6LrkekSdOwGNG7bA2KMroqafBUOEvjPF+YuQ5N5o2r7H180gIiKiAGDq1d3lOsxIokDFQBIRdVhISIivmxB0unaNRFRUCI4ebXK6Xs+e+s0GImvd3xETRiNiwmjd9+NvzDdcjIO3Ptrm9YSHbvJBa7yDx3ZwYX8HD/Z1cGF/+4YpSUtGkr6zK7OvyVsYSCKiDjEajcjIyPB1M4KOJElITo7Dpk0HVNcJCzOid+8YXfcbzP0dNWMSLM8tR9PW3+sdmPr1RJcLp/iwVZ4TzH0djNjfwYN9HVzY377j7aFt7OvgYjT6doZuBpKIiAJU//5mp4Gk5OQ4GAycTUwvxrgYJL3zJI68UIrGDVsQOjQN5uvmMS2diIiI2gjpl+RyHWOC2fMNIfIABpKIiALUsGHd8MEHv6guT01lgENvpu4JSLg739fNICIiIj9n6p8EQ1wMbLV1yst7JUIK4ddxCkyc+oSIOsRms2Hz5s3YvHkzbDabr5sTVHJyhjhdnpam77h7gP0dTNjXwYX9HTzY18GF/e07kiQhPEP9Xi10aJqu+2NfBxdf9zFDoETUIUII1NXV2f9N3pORkYQzzuiDL7/crbj8oosG675P9nfwYF8HF/Z38GBfBxf2t2+FjxuJY+VfKy4LGzZA132xr4OLr/uYGUlERAHs+efPQ7dukW1enz8/HRMn9vVBi4iIiIgIALrkZAMqw9dCRwz0cmuI9MOMJCKiADZ8eHds2nQdnn76W/z3v7uRmBiF3NwhuPBC/bORiIiIiEg7U6/uiP3zhTjy/HKH1409uiIqa5yPWkXUcQwkEREFuMTEKCxZMtnXzSAiIiKiVhLuvRbW/YfR8O4aQAiYendH92X3QQoL9XXTiNqNgSQiIiIiIiIiD5BCTOi+7D4k3HcdbMdPIKRPT0ihIb5uFlGHMJBERERERERE5EGmpERfN4FINwwkEVGHGQys2x9M2N/Bg30dXNjfwYN9HVzY38GDfU3eIglfzxtH5CU//vgjhg0bZv9506ZNGDp0qA9bREREREREROQeX3+3ZciSiIiIiIiIiIg0YSCJiIiIiIiIiIg0YY0kIuoQm82GX375BQAwcOBAjs3u5NjfwYN9HVzY38GDfR1c2N/Bg30dXGw2m0/3z0ASEXWIEAIWi8X+b+rc2N/Bg30dXNjfwYN9HVzY38GDfR1cfN3HDFMSEREREREREZEmDCQREREREREREZEmDCQREREREREREZEmDCQREREREREREZEmLLZNQaOxsdHh523btvmoJZ2L1WpFdXU1ACAyMhJGo9HHLSJPYn8HD/Z1cGF/Bw/2dXBhfwcP9nVwaf1dtvV3XU9jIImCxu7dux1+vuCCC3zTECIiIiIiIiKd7N69G+np6V7bH4e2EREREREREREFKIvF4tX9MZBERERERERERBSg6urqvLo/Dm2joHH22Wfj3Xfftf/cp08fhIWF+a5BncS2bdschgm+++67SEtL812DyKPY38GDfR1c2N/Bg30dXNjfwYN9HVw2b96MOXPm2H/OzMz06v4ZSKKgYTabcf755/u6GZ1eWloahg4d6utmkJewv4MH+zq4sL+DB/s6uLC/gwf7OrjExMR4dX8c2kZERERERERERJowkERERERERERERJowkERERERERERERJowkERERERERERERJowkERERERERERERJowkERERERERERERJowkERERERERERERJowkERERERERERERJowkERERERERERERJowkERERERERERERJowkERERERERERERJqYfN0AIgps3bp1w+LFix1+ps6L/R082NfBhf0dPNjXwYX9HTzY18HF1/0tCSGEV/dIREREREREREQBiUPbiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiIiIiIiIhIEwaSiIiCiBDC100gIiIiIqIAxkASEWHHjh247LLLGGTohOrr61FfX4/du3cDACRJ8nGLiIiovaxWq6+bQERExEASUTA7duwYrr32WqSkpODdd99FVVWVr5tEOqmvr0deXh7OPPNMJCcno3///khLS8Mzzzxj72cGDomIAofFYsFnn33m62aQFx07dgzNzc2+bgZ5GO/HKBAxkEQU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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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6g3hb0XPdCDz3MiOq9PT07hy5UpZ56bTactn0bVr1s890zSFesybNw/z5s2zLTdLbW1trt1M08T169csz0un07h27VrBuTPfA/KpqanBggULcp/trpnVuTduWNd75v1w6dIloeHA7/cXpI6wO1d0n12/fr1Id5/Pl7t/gcz9J/r9zHOvXLli239FXLt2DflqGIaBxYsXl1UugNxzFsg8n27cyNzfpQw6+edasWjRopze165dE87TKj03vy9fv34d165dK1iMy97TBw8enPU8YjYOIE5CPkdSd3c3TNMsMgJVwuTkJB566KGcN1LWGv3oo486qCkdKHla9fT0FOwGNzg4qFEbRgamaeLVV1/Fq6++Wtaqp/PylYskAZV6UwnxUo1X660SSgk7KSTbZtwJleamEtqmGip6uBu+yAwjA/ZIKkFDQwOefPJJPPPMM2hqasKzzz5b0e9ffPFFbNmyxXKlNBwOO6QlLUrlRJpJ/rWRYYTq6upCX18fkskkkskkUqkUCWPXxo0bcffddxccm2lJz195m8nMc++///6yz7333nvL1BIFK5Cl2LBhQ9kvIevXry/73HXr1gnPnZ6eLtjt78477yzbzby5uRlr1qwp69zVq1fjjjvuKDpnwYJzAL5n+fu2tlYsXbqo6Hh+uStXrsRtt91Wlg4rVqzAXXfdBcB6lTvfa3L58uW5Vf9S5S5dutS23+af29TUhI6ODhw65AdQ7B2QXZ0EMv25o6NDWG7+fVlXV2d77p49/2B5fMmS4t/ll7tw4cKydZg3b14Z51p7Ltxyyy0Fv80v1+fzla0DgIJzA4ERACIPEXVjxMKFBwAUr4YahiFljBAtKt55553o6FhfdNxujLAqYy6hKABw9913o7V1RVljhFW5t99+e84jJktDw3kA37X87f3334+VK629omeOEXaec/nnisaI8+dHABTvoGp3H1uNESLy77VAIIBgsBlAsffQvHnzsHz58tznUmNEfrmLFy8u+1znx4gMNTU1ZZ87lzGi1Lmlxwjr3XJvu+024ZgGzH4esXjxIQDWHkeAunmE3//3AIq9BAzD+XmEnTfCu9/9bnR0rCoq12qMEOmQP4+4ceNGzsM422bljGkLFy5CbW3heTU1NQXPdDuszk2nrwKw9rjJ9wSxw+/3l32uz+ezPPfyZQNAsVeTz2eUVbaoXCsMw0Bt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RKQKE0lERERERERERKQKE0lERERERERERKQKE0lERERERERERKQKE0lERERERERERKRKtNYFIKLOrXfv3li2bJnXa+q6GO/IwVhHFsY7cjDWkYXxjhyMdWTROt6SEEKEdItERERERERERNQpsWsbERERERERERGpwkQSERERERERERGpwkQSERERERERERGpwkQSERERERERERGpwkQSERERERERERGpwkQSERERERERERGpwkQSERERERERERGpwkQSERERERERERGpwkQSERERERERERGpwkQSERERERERERGpwkQSERERERERERGpwkQSERERERERERGpwkQSERERERERERGpwkQSEVEEEUJoXQQiIiIiIurEmEgiIuzfvx/z589nkqELqq6uRnV1NQ4dOgQAkCRJ4xIREVF7uVwurYtARETERBJRJDt37hzuvvtuGI1GvPfee6ioqNC6SBQg1dXVyM7OxpVXXomhQ4fi4osvRlpaGv74xz8qcWbikIio83A6nVi/fr3WxaAQOnfuHBobG7UuBgUZ62PUGTGRRBSB3G43Xn/9dXTv3h35+fmQJAlutxunT5/WumjUQUIIFBQUYPjw4Rg5ciRWrlyJe+65B7Nnz4bdbofVasV1112HL7/8EufOndO6uETUAW63W+siUIhUVVXh5ptvRlFRkdZFoRBwu9149dVX0b17d7z++utaF4cCyO12Y+3atVi5ciVycnKwevVqbNy4UfmcSaWuTQgBu90OAJ0+SRytdQGIKLS++eYbXH/99aisrAQAXHXVVWhoaMBXX32FoqIiXHbZZRqXkDrirbfewgcffICDBw8iJiYGAHDDDTcAABYsWIDi4mJUVFRg/vz5uP766/GHP/xBy+JSgLndbuh0fEbU1dXV1SEuLo6xjhC///3v8cgjj6C2thYpKSmor69HbGys1sWiIGlaT/v+++81LhEFyvr163Hrrbdi+PDhcDgc2L59O1555RUAwJ133omlS5ciNTVV41JSMD366KMoKChARUUF4uLiOnW9rXOWmoja7NixY5g2bRomT56MyspKXHrppbjnnntgs9mUZMK2bdvgdDq1LSi1ixACp0+fxvLlyzFlyhTExMSgoaEBAFBfXw8AeOyxx3D33XcDAPbt24c//vGPeOONNzQrMwVGbW0tcnJycOjQIeh0Oo6h0oWdOHEC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7cYmJ6hyc3P9JnV8fUdODgEXZkFbs2ZNq9syGo3Iz8+H2WxGSUkJLBaLqu9YrVafUyf7Snb50lrSjIiIiJhIIiIiIqIIIHdde+edd5TEmV6vh9FohNlsxty5c9kKiYiISAUmkoiIiIiIiIiISBXO2kZERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKowkURERERERERERKr8fynLk2hKanjkAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "parsed_times, actions = plot_actions('eval_results/ddpg_train-summer_eval-08-06_2025_04_15-01:44:58/trajectories/episode_0.json', 'ddpg_eval_08_06_2025')\n", + "plot_actions('eval_results/sac_train-summer_eval-08-06_2025_04_15-01:43:44/trajectories/episode_0.json', 'sac_eval_08_06_2025')\n", + "plot_actions('eval_results/schedule_eval-08-06_2025_04_15-01:46:14/trajectories/episode_0.json', 'schedule_eval_08_06_2025')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0dec94d5", + "metadata": {}, + "outputs": [], + "source": [ + "def aggregate_actions_by_time(\n", + " actions: np.ndarray,\n", + " parsed_times: List[datetime],\n", + " aggregation_timedelta: timedelta\n", + ") -> Tuple[np.ndarray, List[datetime]]:\n", + " \"\"\"\n", + " Aggregates actions by averaging them over specified time intervals.\n", + "\n", + " Args:\n", + " actions: A numpy array of shape (N, D) where N is the number of\n", + " timesteps and D is the dimension of the action space.\n", + " parsed_times: A list of N datetime objects corresponding to each action.\n", + " Assumes the list might not be sorted initially.\n", + " aggregation_timedelta: A datetime.timedelta object specifying the\n", + " duration of each aggregation interval (e.g., timedelta(hours=2)).\n", + "\n", + " Returns:\n", + " A tuple containing:\n", + " - aggregated_actions_array: A numpy array of shape (M, D) containing\n", + " the average action for each non-empty interval,\n", + " where M is the number of non-empty intervals found.\n", + " - interval_start_times: A list of M datetime objects representing the\n", + " start time of each corresponding interval in\n", + " aggregated_actions_array.\n", + "\n", + " Raises:\n", + " ValueError: If the lengths of actions and parsed_times do not match.\n", + " TypeError: If inputs are not of the expected types.\n", + " \"\"\"\n", + " # --- Input Validation ---\n", + " if not isinstance(actions, np.ndarray):\n", + " raise TypeError(\"actions must be a numpy array.\")\n", + " if actions.ndim != 2:\n", + " raise ValueError(f\"actions must be a 2D array, but got shape {actions.shape}\")\n", + " if not isinstance(parsed_times, list):\n", + " raise TypeError(\"parsed_times must be a list.\")\n", + " if not all(isinstance(t, datetime) for t in parsed_times):\n", + " raise TypeError(\"All elements in parsed_times must be datetime objects.\")\n", + " if not isinstance(aggregation_timedelta, timedelta):\n", + " raise TypeError(\"aggregation_timedelta must be a datetime.timedelta object.\")\n", + " if len(actions) != len(parsed_times):\n", + " raise ValueError(f\"actions (len {len(actions)}) and parsed_times (len {len(parsed_times)}) must have the same length.\")\n", + " if aggregation_timedelta <= timedelta(0):\n", + " raise ValueError(\"aggregation_timedelta must be positive.\")\n", + "\n", + " # --- Handle Empty Input ---\n", + " if len(parsed_times) == 0:\n", + " # Return empty array with correct second dimension if possible, else shape (0,0)\n", + " action_dim = actions.shape[1] if actions.ndim == 2 else 0\n", + " return np.array([]).reshape(0, action_dim) , []\n", + "\n", + " # --- Sort data by time (crucial for interval processing) ---\n", + " # Combine, sort by time, then separate again\n", + " try:\n", + " sorted_pairs = sorted(zip(parsed_times, list(actions)), key=lambda pair: pair[0])\n", + " sorted_times, sorted_actions_list = zip(*sorted_pairs)\n", + " # Convert actions back to numpy array *after* sorting\n", + " sorted_actions = np.array(sorted_actions_list)\n", + " sorted_times = list(sorted_times) # Keep as list for easier comparison\n", + " except Exception as e:\n", + " # Handle potential issues if actions rows aren't easily convertible back\n", + " print(f\"Error during sorting: {e}\")\n", + " # Fallback to less efficient method or raise error depending on needs\n", + " # For now, let's re-raise to indicate a problem\n", + " raise ValueError(\"Could not sort actions and times. Check action array structure.\") from e\n", + "\n", + "\n", + " # --- Initialization ---\n", + " aggregated_actions = []\n", + " interval_start_times = []\n", + "\n", + " min_time = sorted_times[0]\n", + " max_time = sorted_times[-1]\n", + "\n", + " current_interval_start = min_time\n", + " # Optimization: Keep track of the index in sorted_times to start searching from\n", + " current_data_idx = 0\n", + "\n", + " # --- Iterate through Time Intervals ---\n", + " while current_interval_start <= max_time: # Include intervals starting exactly at max_time\n", + " current_interval_end = current_interval_start + aggregation_timedelta\n", + " indices_in_interval = []\n", + "\n", + " # Find data points within the current interval [start, end)\n", + " # Use the current_data_idx for efficiency since data is sorted\n", + " temp_idx = current_data_idx\n", + " while temp_idx < len(sorted_times):\n", + " timestamp = sorted_times[temp_idx]\n", + " if timestamp >= current_interval_end:\n", + " # This timestamp is beyond the current interval, stop searching for this interval\n", + " break\n", + " # No need to check >= current_interval_start because we advance current_data_idx\n", + " # and we only consider timestamps from that point forward.\n", + " # Update: Actually, the first item(s) might be exactly current_interval_start,\n", + " # so the check IS implicitly handled correctly by starting search at current_data_idx.\n", + " # Let's add an explicit check just for absolute clarity, though it shouldn't change behaviour\n", + " # given the sorted nature and how current_data_idx is updated.\n", + " # if timestamp >= current_interval_start: # This check is technically redundant here.\n", + " indices_in_interval.append(temp_idx)\n", + " temp_idx += 1\n", + "\n", + " # --- Calculate Average if Interval is Not Empty ---\n", + " if indices_in_interval:\n", + " # Select the actions corresponding to the found indices\n", + " actions_in_interval = sorted_actions[indices_in_interval]\n", + " # Calculate the mean along the time axis (axis=0)\n", + " average_action = np.mean(actions_in_interval, axis=0)\n", + "\n", + " aggregated_actions.append(average_action)\n", + " interval_start_times.append(current_interval_start)\n", + "\n", + " # Optimization: Update the starting index for the *next* interval's search.\n", + " # The next interval will start searching from the first item that\n", + " # was *not* included in this interval (i.e. >= current_interval_end)\n", + " # or the end of the list if all remaining items were in this interval.\n", + " # The index `temp_idx` calculated in the inner loop is exactly this.\n", + " current_data_idx = temp_idx # Start next search from where this one stopped.\n", + "\n", + " else:\n", + " # If the interval is empty, we still need to advance the current_data_idx\n", + " # past any timestamps that are less than the *next* interval's start time.\n", + " temp_idx = current_data_idx\n", + " next_interval_start = current_interval_end # same as current_interval_end\n", + " while temp_idx < len(sorted_times) and sorted_times[temp_idx] < next_interval_start:\n", + " temp_idx += 1\n", + " current_data_idx = temp_idx\n", + "\n", + "\n", + " # --- Move to the next interval ---\n", + " current_interval_start = current_interval_end\n", + "\n", + " # --- Final Conversion ---\n", + " # Convert the list of average action arrays into a single 2D numpy array\n", + " if not aggregated_actions: # Handle case where no intervals had data\n", + " action_dim = actions.shape[1] if actions.ndim == 2 else 0\n", + " return np.array([]).reshape(0, action_dim), []\n", + " else:\n", + " aggregated_actions_array = np.array(aggregated_actions)\n", + " return aggregated_actions_array, interval_start_times" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "8641a543", + "metadata": {}, + "outputs": [], + "source": [ + "def extract_tensorboard_data(logdir: str, tag: str, sample_rate: int=50):\n", + " size_guidance = { event_accumulator.TENSORS: 0 } # Load all tensors\n", + " ea = event_accumulator.EventAccumulator(logdir, size_guidance=size_guidance)\n", + " ea.Reload()\n", + "\n", + " if tag in ea.Tags()['tensors']:\n", + " events = ea.Tensors(tag)\n", + " steps = [e.step for e in events]\n", + " values = [tensor_util.MakeNdarray(e.tensor_proto).item() for e in events]\n", + " \n", + " return steps[::sample_rate], values[::sample_rate]\n", + "\n", + "\n", + "def calculate_ema(values, alpha):\n", + " \"\"\"Calculates the Exponential Moving Average.\"\"\"\n", + " values = np.array(values, dtype=float)\n", + " if values.size == 0:\n", + " return np.array([])\n", + " ema_values = np.zeros_like(values, dtype=float)\n", + " ema_values[0] = values[0]\n", + " for i in range(1, len(values)):\n", + " ema_values[i] = alpha * values[i] + (1 - alpha) * ema_values[i-1]\n", + " return ema_values\n", + "\n", + "\n", + "def plot_loss(steps: list | np.ndarray, \n", + " loss_values: list | np.ndarray, \n", + " tag_name: str, \n", + " save_name: str, \n", + " plot_dir: str = 'plots',\n", + " ylim: tuple[float, float] | None = None, # User-defined y-axis limits\n", + " color: str = 'tab:cyan', \n", + " log_scale_y: bool = False,\n", + " smoothing_weight: float = 0.6, \n", + " raw_alpha: float = 0.3):\n", + " \n", + " update_plot_config() \n", + " fig, ax = plt.subplots(figsize=(4, 2))\n", + " steps = np.array(steps)\n", + " loss_values = np.array(loss_values)\n", + " \n", + " # --- Smoothing ---\n", + " smoothed_values = None\n", + " smoothing_weight = max(0.0, min(1.0, smoothing_weight)) \n", + " if smoothing_weight > 0:\n", + " alpha = 1.0 - smoothing_weight \n", + " smoothed_values = calculate_ema(loss_values, alpha)\n", + "\n", + " # --- Plotting Lines ---\n", + " tag_name_latex = tag_name.replace('_', r'\\_') if plt.rcParams['text.usetex'] else tag_name\n", + "\n", + " # Plot Raw Data\n", + " ax.plot(steps, loss_values, color=color, linewidth=1.0, \n", + " alpha=raw_alpha, label=f'{tag_name_latex} (Raw)')\n", + "\n", + " # Plot Smoothed Data\n", + " if smoothed_values is not None:\n", + " ax.plot(steps, smoothed_values, color=color, linewidth=1.5, \n", + " alpha=1.0, label=f'{tag_name_latex} (Smoothed, w={smoothing_weight:.2f})')\n", + "\n", + " # --- Axis Configuration ---\n", + " ax.set_xlabel('Training Step', fontsize=12)\n", + " ax.set_ylabel('Loss Value', fontsize=12)\n", + " \n", + " # X-axis tick formatting\n", + " def format_thousands(x, pos):\n", + " if x >= 1e6: return f'{x*1e-6:.0f}M'\n", + " if x >= 1e3: return f'{x*1e-3:.0f}k'\n", + " return f'{x:.0f}'\n", + " ax.xaxis.set_major_formatter(ticker.FuncFormatter(format_thousands))\n", + " \n", + " ax.tick_params(axis='x', labelsize=8) \n", + " ax.tick_params(axis='y', labelsize=8)\n", + "\n", + " # Y-axis scale and limits\n", + " if log_scale_y:\n", + " ax.set_yscale('log')\n", + " # Apply user-defined limits if provided\n", + " if ylim is not None:\n", + " ax.set_ylim(ylim)\n", + " \n", + " # Set x-axis limits\n", + " ax.set_xlim(left=0, right=steps.max() * 1.02 if steps.size > 0 else 1) \n", + "\n", + " # --- Final Touches ---\n", + " ax.grid(True, which='major', linestyle='--', linewidth=0.5, alpha=0.7) \n", + " \n", + " plt.tight_layout() \n", + " plt.legend(loc='best')\n", + "\n", + " # --- Saving ---\n", + " os.makedirs(plot_dir, exist_ok=True)\n", + " save_path = os.path.join(plot_dir, f\"{save_name}.pdf\")\n", + " plt.savefig(save_path, bbox_inches='tight')\n", + " plt.close(fig)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "e20613bf", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_3356062/333202574.py:80: UserWarning: Attempt to set non-positive ylim on a log-scaled axis will be ignored.\n", + " ax.set_ylim(ylim)\n" + ] + } + ], + "source": [ + "log_directory = 'experiment_results/ddpg_train_run-july-6th_2025_04_07-12:50:40/train/'\n", + "target_tag = 'Losses/critic_loss'\n", + "steps, values = extract_tensorboard_data(log_directory, target_tag)\n", + "save_file_name = 'ddpg_critic_loss_july_6th_2025'\n", + "plot_loss(\n", + " steps=steps, \n", + " loss_values=values, \n", + " tag_name=target_tag, \n", + " save_name=save_file_name, \n", + " ylim=(0, 0.02), # Set desired y-limits here\n", + " log_scale_y=True,\n", + " smoothing_weight=0.8, # Example smoothing\n", + " color=\"crimson\"\n", + ")\n", + "\n", + "log_directory = 'experiment_results/ddpg_train_run-july-6th_2025_04_07-12:50:40/train/'\n", + "target_tag = 'Losses/actor_loss'\n", + "steps, values = extract_tensorboard_data(log_directory, target_tag)\n", + "save_file_name = 'ddpg_actor_loss_july_6th_2025'\n", + "plot_loss(\n", + " steps=steps, \n", + " loss_values=values, \n", + " tag_name=target_tag, \n", + " save_name=save_file_name, \n", + " ylim=(0.001, 0.05), # Set desired y-limits here\n", + " log_scale_y=True,\n", + " smoothing_weight=0.8, # Example smoothing\n", + " color=\"crimson\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "5f64f8e9", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_3356062/333202574.py:80: UserWarning: Attempt to set non-positive ylim on a log-scaled axis will be ignored.\n", + " ax.set_ylim(ylim)\n" + ] + } + ], + "source": [ + "log_directory = 'experiment_results/sac_train_run-july-6th_2025_04_04-06:49:50/train/'\n", + "target_tag = 'Losses/critic_loss'\n", + "steps, values = extract_tensorboard_data(log_directory, target_tag, sample_rate=1)\n", + "save_file_name = 'sac_critic_loss_july_6th_2025'\n", + "plot_loss(\n", + " steps=steps, \n", + " loss_values=values, \n", + " tag_name=target_tag, \n", + " save_name=save_file_name, \n", + " ylim=(0, 0.08), # Set desired y-limits here\n", + " log_scale_y=True,\n", + " smoothing_weight=0.8, # Example smoothing\n", + " color=\"crimson\"\n", + ")\n", + "\n", + "log_directory = 'experiment_results/sac_train_run-july-6th_2025_04_04-06:49:50/train/'\n", + "target_tag = 'Losses/actor_loss'\n", + "steps, values = extract_tensorboard_data(log_directory, target_tag, sample_rate=1)\n", + "save_file_name = 'sac_actor_loss_july_6th_2025'\n", + "plot_loss(\n", + " steps=steps, \n", + " loss_values=values, \n", + " tag_name=target_tag, \n", + " save_name=save_file_name, \n", + " ylim=(-5, 1.4), # Set desired y-limits here\n", + " log_scale_y=False,\n", + " smoothing_weight=0.5, # Example smoothing\n", + " color=\"crimson\"\n", + ")\n", + "\n", + "\n", + "log_directory = 'experiment_results/sac_train_run-july-6th_2025_04_04-06:49:50/train/'\n", + "target_tag = 'Losses/alpha_loss'\n", + "steps, values = extract_tensorboard_data(log_directory, target_tag, sample_rate=1)\n", + "save_file_name = 'sac_alpha_loss_july_6th_2025'\n", + "plot_loss(\n", + " steps=steps, \n", + " loss_values=values, \n", + " tag_name=target_tag, \n", + " save_name=save_file_name, \n", + " ylim=(-10, 1), # Set desired y-limits here\n", + " log_scale_y=False,\n", + " smoothing_weight=0.8, # Example smoothing\n", + " color=\"crimson\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "81b5ceeb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJIAAAI6CAYAAAB8cmKmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAC4jAAAuIwF4pT92AADkxUlEQVR4nOzdeXhb1bU28PccSR7kSbZjO/MgJyQkJiSyE0LCUIjMUChDsUPvpSMlNoUOfL3FDp1uS3sbbErnAlbopeW2FGJR2kKBYgXCkDAkdkJwAhmszKNjW56t8Xx/KDpYjiTLkmwd2e/vefzEkra29nGWjqSlvdcWJEmSQERERERERERENAwx3gMgIiIiIiIiIqLEwEQSERERERERERGFhYkkIiIiIiIiIiIKCxNJREREREREREQUFiaSiIiIiIiIiIgoLEwkERERERERERFRWJhIIiIiIiIiIiKisDCRREREREREREREYWEiiYiIiIiIiIiIwsJEEhERERERERERhYWJJCIiIiIiIiIiCgsTSUREREREREREFBYmkoiIiIiIiIiIKCxMJBERERERERERUViYSCIiIiIiIiIiorAwkURERERERERERGFhIomIiIiIiIiIiMLCRBIREREREREREYWFiSQiIiIiIiIiIgoLE0lERERERERERBQWJpKIiIiIiIiIiCgsTCQREREREREREVFYmEgiIiIiIiIiIqKwMJFERERERERERERhYSKJiIiIiIiIiIjCwkQSERERERERERGFhYkkIiIiIiIiIiIKizreAyCKls1mwxtvvCFfnjFjBpKTk+M4IiIiIiIiIqLRYbfbcfToUfnylVdeCZ1ON2aPz0QSJbw33ngDt9xyS7yHQURERERERDTm/v73v+Pmm28es8fj0jYiIiIiIiIiIgoLE0lERERERERERBQWLm2jhDdjxgy/y3//+98xd+7cOI1meG63G83NzQCAoqIiqFSqOI+I6BOMT1IyxicpGeOTlIzxSUrG+By5AwcO+JV3GfqZeLQxkUQJb2hh7blz52LRokVxGs3wPB4PsrKyAHif8KLIiYGkHIxPUjLGJykZ45OUjPFJSsb4jN5YbzbFRBLRGBNFEbNmzYr3MIgCYnySkjE+SckYn6RkjE9SMsZn4mGqj4iIiIiIiIiIwsIZSURjTJIkOBwOAEBSUhIEQYjziIg+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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def plot_cumulative_reward_comparison_plot(experiment_paths: List[str], labels: List[str], name: str):\n", + " update_plot_config()\n", + " plt.figure(figsize=(4, 2), dpi=300)\n", + "\n", + " for i, path in enumerate(experiment_paths):\n", + " with open(path, 'r') as f:\n", + " data = json.load(f)\n", + " rewards = np.cumsum(data['rewards'])[::50]\n", + " label = labels[i]\n", + " plt.plot(rewards, linewidth=1.5, label=label)\n", + "\n", + " plt.xlabel('Timestep', fontsize=12)\n", + " plt.ylabel('Return', fontsize=12)\n", + " plt.grid(True, which='both', linestyle='--', linewidth=0.5, alpha=0.7)\n", + " plt.xticks(fontsize=8)\n", + " plt.tight_layout()\n", + " plt.legend(loc='upper left')\n", + " plt.savefig(f'plots/{name}.pdf', bbox_inches='tight')\n", + " \n", + "plot_cumulative_reward_comparison_plot([\n", + " 'eval_results/ddpg_train-summer_eval-08-06_2025_04_15-01:44:58/trajectories/episode_0.json',\n", + " 'eval_results/sac_train-summer_eval-08-06_2025_04_15-01:43:44/trajectories/episode_0.json',\n", + " 'eval_results/schedule_eval-08-06_2025_04_15-01:46:14/trajectories/episode_0.json'\n", + " ],\n", + " labels=['DDPG', 'SAC', 'Schedule'],\n", + " name='cumulative_reward_comparison_08_06_2025')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "4921d5ce", + "metadata": {}, + "outputs": [], + "source": [ + "steps_ddpg, values_ddpg = extract_tensorboard_data(\n", + " logdir='experiment_results/ddpg_train_run-july-6th_2025_04_07-12:50:40/eval/',\n", + " tag='Metrics/AverageReturn', sample_rate=1\n", + ")\n", + "steps_sac, values_sac = extract_tensorboard_data(\n", + " logdir='experiment_results/sac_train_run-july-6th_2025_04_04-06:49:50/eval/',\n", + " tag='Metrics/AverageReturn', sample_rate=1\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "9a25f133", + "metadata": {}, + "outputs": [], + "source": [ + "def plot_comparison_curves(\n", + " curves: List[Tuple[np.ndarray, np.ndarray, str]],\n", + " name: str,\n", + " baseline_value: float = -167.53,\n", + " baseline_label: str = 'schedule'\n", + "):\n", + " # update_plot_config() # Optional plot configuration\n", + " plt.figure(figsize=(4, 2), dpi=300)\n", + "\n", + " colors = ['crimson', 'navy', 'forestgreen', 'goldenrod']\n", + " for i, (steps, values, label) in enumerate(curves):\n", + " plt.plot(steps, values, color=colors[i % len(colors)], linewidth=1.5, label=label)\n", + "\n", + " # Add the horizontal baseline line\n", + " plt.axhline(y=baseline_value, color='darkorange', linestyle='--', linewidth=1.0, label=baseline_label)\n", + "\n", + " plt.xlabel('Timestep', fontsize=12)\n", + " plt.ylabel('Episode Return', fontsize=12)\n", + " plt.grid(True, which='both', linestyle='--', linewidth=0.5, alpha=0.7)\n", + " plt.xticks(fontsize=8)\n", + " plt.yticks(fontsize=8)\n", + " plt.tight_layout()\n", + " plt.legend(loc='upper left', fontsize=8) # Keep legend for clarity\n", + "\n", + " # Save the plot (assumes 'plots' directory exists)\n", + " plt.savefig(f'plots/{name}.pdf', bbox_inches='tight')\n", + " plt.close() # Close the figure\n", + " \n", + "plot_comparison_curves([\n", + " (steps_ddpg, values_ddpg, 'DDPG'),\n", + " (steps_sac, values_sac, 'SAC')\n", + "], name='eval_training_curves_july_6th_2025')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "c1684c4c", + "metadata": {}, + "outputs": [], + "source": [ + "def plot_grouped_bar_results(name: str):\n", + " \"\"\"Generates and saves a grouped bar plot of agent performance.\"\"\"\n", + " update_plot_config()\n", + "\n", + " # Data\n", + " dates = ['Aug 6th', 'Sept 6th', 'Oct 6th', 'Nov 6th']\n", + " schedule_returns = np.array([-37.45, -129.36, -123.89, -198.09])\n", + " sac_returns = np.array([-33.72, -95.66, -91.25, -167.73])\n", + " ddpg_returns = np.array([-33.77, -88.11, -86.7, -162.7])\n", + "\n", + " x = np.arange(len(dates)) # Label locations\n", + " width = 0.25 # Width of the bars\n", + " multiplier = 0\n", + "\n", + " fig, ax = plt.subplots(figsize=(4, 2), dpi=300, layout='constrained') # Adjusted size\n", + "\n", + " # Plotting bars for each agent\n", + " agents = {'Schedule': schedule_returns, 'SAC': sac_returns, 'DDPG': ddpg_returns}\n", + " # Consistent colors with the line plot example, using gray for baseline\n", + " colors = {'Schedule': 'darkgrey', 'SAC': 'navy', 'DDPG': 'crimson'}\n", + "\n", + " for agent, returns in agents.items():\n", + " offset = width * multiplier\n", + " # Added edgecolor='black' and linewidth for the outline\n", + " rects = ax.bar(\n", + " x + offset,\n", + " returns,\n", + " width,\n", + " label=agent,\n", + " color=colors[agent],\n", + " edgecolor='black', # Add black edge color\n", + " linewidth=0.75 # Set edge line width\n", + " )\n", + " # Optional: Add labels on top of bars if needed, might be cluttered\n", + " # ax.bar_label(rects, padding=3, fmt='%.2f', fontsize=6)\n", + " multiplier += 1\n", + "\n", + " # Add labels, title, and ticks\n", + " ax.set_ylabel('Episode Return', fontsize=10) # Match axes label size\n", + " # ax.set_title('Agent Performance Comparison by Month') # Optional title\n", + " ax.set_xticks(x + width, dates) # Center ticks between the groups\n", + " ax.legend(loc='best', ncols=3, fontsize=9) # Adjust legend location/cols\n", + " ax.grid(True, which='major', axis='y', linestyle='--', linewidth=0.5, alpha=0.7) # Horizontal grid lines\n", + " ax.set_ylim(top=0) # Ensure y-axis starts appropriately for negative values\n", + "\n", + " # Ensure the 'plots' directory exists\n", + " if not os.path.exists('plots'):\n", + " os.makedirs('plots')\n", + "\n", + " # Save the plot\n", + " plt.savefig(f'plots/{name}.pdf', bbox_inches='tight')\n", + " plt.close(fig) # Close the figure\n", + "\n", + "# --- Call the function ---\n", + "plot_grouped_bar_results(name='agent_performance_comparison_bar_outlined') # Changed name slightly for the new version" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "a247e40d", + "metadata": {}, + "outputs": [], + "source": [ + "def plot_grouped_bar_results(name: str):\n", + " \"\"\"Generates and saves a grouped bar plot of agent performance.\"\"\"\n", + " update_plot_config()\n", + "\n", + " # Data\n", + " dates = ['Aug 6th', 'Sept 6th', 'Oct 6th', 'Nov 6th']\n", + " ddpg_returns = np.array([-33.77, -88.11, -86.69, -162.67])\n", + " agg_2_returns = np.array([-33.79, -88.13, -86.78, -162.96])\n", + " agg_4_returns = np.array([-34.28, -90.65, -90.05, -165.55])\n", + " agg_8_returns = np.array([-34.43, -92.12, -91.64, -168.56])\n", + " agg_168_returns = np.array([-35.72,- 107.31, -102.86, -179.54])\n", + " schedule_returns = np.array([-37.45, -129.36, -123.89, -198.09])\n", + "\n", + " \n", + "\n", + " x = np.arange(len(dates)) # Label locations\n", + " width = 0.12 # Width of the bars\n", + " multiplier = 0\n", + "\n", + " fig, ax = plt.subplots(figsize=(4, 2), dpi=300, layout='constrained') # Adjusted size\n", + "\n", + " # Plotting bars for each agent\n", + " agents = {\n", + " 'DDPG': ddpg_returns,\n", + " '2-Hour': agg_2_returns,\n", + " '4-Hour': agg_4_returns,\n", + " '8-Hour': agg_8_returns,\n", + " '168-Hour': agg_168_returns,\n", + " 'Schedule': schedule_returns\n", + " }\n", + " # Consistent colors with the line plot example, using gray for baseline\n", + " colors = {\n", + " 'Schedule': 'darkgrey',\n", + " '2-Hour': 'navy',\n", + " '4-Hour': 'crimson',\n", + " '8-Hour': 'forestgreen',\n", + " '168-Hour': 'goldenrod',\n", + " 'DDPG': 'purple'\n", + " }\n", + "\n", + " for agent, returns in agents.items():\n", + " offset = width * multiplier\n", + " # Added edgecolor='black' and linewidth for the outline\n", + " rects = ax.bar(\n", + " x + offset,\n", + " returns,\n", + " width,\n", + " label=agent,\n", + " color=colors[agent],\n", + " edgecolor='black', # Add black edge color\n", + " linewidth=0.75 # Set edge line width\n", + " )\n", + " # Optional: Add labels on top of bars if needed, might be cluttered\n", + " # ax.bar_label(rects, padding=3, fmt='%.2f', fontsize=6)\n", + " multiplier += 1\n", + "\n", + " # Add labels, title, and ticks\n", + " ax.set_ylabel('Episode Return', fontsize=10) # Match axes label size\n", + " # ax.set_title('Agent Performance Comparison by Month') # Optional title\n", + " ax.set_xticks(x + width, dates) # Center ticks between the groups\n", + " ax.legend(loc='best', ncols=3, fontsize=9) # Adjust legend location/cols\n", + " ax.grid(True, which='major', axis='y', linestyle='--', linewidth=0.5, alpha=0.7) # Horizontal grid lines\n", + " ax.set_ylim(top=0) # Ensure y-axis starts appropriately for negative values\n", + "\n", + " # Ensure the 'plots' directory exists\n", + " if not os.path.exists('plots'):\n", + " os.makedirs('plots')\n", + "\n", + " # Save the plot\n", + " plt.savefig(f'plots/{name}.pdf', bbox_inches='tight')\n", + " plt.close(fig) # Close the figure\n", + "\n", + "# --- Call the function ---\n", + "plot_grouped_bar_results(name='agent_aggregation_performance_comparison_bar_outlined') # Changed name slightly for the new version" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "8c2132a8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([datetime.datetime(2023, 11, 5, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 5, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 5, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " ...],\n", + " array([[-0.06956816, -0.54283428],\n", + " [-0.06956816, -0.54283428],\n", + " [-0.06956816, -0.54283428],\n", + " ...,\n", + " [ 0.04203331, -0.23814878],\n", + " [ 0.04203331, -0.23814878],\n", + " [ 0.06045093, -0.27606571]]))" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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+c+NMVyE9gTJivUHH3xgCgsLnW7wZ8+edZ7bvXu3ue+++5xzQEVFRVLajrZrHO/Zs2e3e1uN91875seOHTPr1693XuPjjz/uUJvRfsnavxO57rrrzJAhQ8yrr76atG2i7X75y1+avLw8c/LkSXPXXXe52rdjr+HWrFljJkyYENeDxT5WX3rppXFDkpcsWZL0zxHa529/+5sZM2aM+dKXvmS2b99uampqmiwTexPPbS8y+7rt4YcfdtadPn2683xP/w5GIgnoJU6dOmUmTZpkLMsyR44cMcY0f4B54oknnGFPo0ePNmvWrHH9OjfccIOxLMts3bo1Gc1GGx04cMCMHz/eDB061KxevdrU1ta2uPwLL7xgpk6daizLMhdeeKHJz8939TqNe7ldddVV5vTp0yQbuthf//pX8/Wvf91MmzYtrnt0e+uU2csHg0FnW+PGjXN6pVBjofskO9b2PhxbZ8P+vaamxqmXdc899yTxXcCtZMe7JR9//LHx+/3Gsizz7LPPJm27cK8z411dXW0CgYAZPHiwee211zq8PbTfnj17nJ4iH374oVO3rLVYx55733nnHbN06VJz+eWXm2HDhpmpU6eaRx991Lz55ptxy11//fXGsiynnAUx7z67du0ylmWZP/3pT85jdl0rOy6fffaZcyP/K1/5ilM7qyV2vGtra43X63U+Sz/96U+NMT0/5szaBvQSn332mS644AJJ0m9+8xtJTWf4sGeNCAQCmj9/viTpxIkT+p//+R+99tprccs0Zs/s9NWvflWSdOjQIWbv6gaTJ0/WmDFjdObMGe3fv1+ffvppwuXs2MyePVtLliyRdH6a4FdffVXhcFjS57G2l00Ue/szNHnyZA0bNqzVKUyRXLt27dJdd92lt99+W+vWrXMef/jhh1VXV9fmqWDt2UByc3N7/2wgfUyyY23vq/a/9ow/lmXpggsu0IoVKzRgwAB98MEHzkwy6DrJjndLLrjgAl177bWSmh730TU6M95f+MIXNHHiRJ09e9aZ8avxLI7oGl/84heVmpqquro6jR07Nm4K95ZibcfLGKOpU6eqqKhI+/bt07vvvqt33nlHK1eu1KxZs5SSkqKGhgbV1NQ461x44YWSPj/Go+vt3r1bX/7ylzVz5kydPXtWxhhZlqWUlBQNGDBA9fX1Gjp0qFasWCHp/EzI6enprW7Xnll30KBBzgyAkrRu3TodP37c2XZPxVEI6CXq6+t17NgxpaSk6PDhw6qpqWmyjH3SGTdunO68807NmTNHkvTBBx/omWeeiVumMfsEZT9/+PBhWZbVow9gfY0xRrW1tU4CYNu2bXrvvfec52LZXx5HjBihOXPm6JprrpEkHTx4ULt27ZL0eSztZWNjbz+2detWSdI///M/N1kGnauhoUE+n0+33367JGnVqlW64oorJJ2fWvZHP/pRm7dpWZbOnTsnSXFfZp588knt27fPuWhB1+qMWLdm/PjxGjNmjGprazVo0KCkbx/N6+p4DxkyRFdeeaUkqaqqSlLiqeTROToz3nZC4pvf/KYk6e2339bJkyeJbzcZMWKEpM+vmR944AFNnTpVkrtY23EbMmSIJGnChAmS4hPAdnJi7969kqSbb745ye8CbtnX3hdffLFSU1MlSYMGDWqy/9nXzgsXLtTkyZN1+vRpHThwwNVr2J+lO+64w/nedvLkST388MOSevaxnG8MQC9gjNG4ceOUlZWlhoYGvfHGG6qurm5xnczMTC1ZskRf+MIXdObMGb355pt65ZVXml3ePonNmzdP0vleTzU1NdwB6UKWZWnw4MHyeDzOCevRRx9tdT2fz6eFCxdq2LBhqqqq0sGDByW13vvszTff1Msvv6zs7GxlZWUl6V3ArZSUFE2ePFkpKSlO8mf9+vXO8z/5yU/0f//3f21O/tifnTlz5ji91erq6vTggw86r5usnhBwp7Ni3ZJLLrlEdXV1mj17dlK2B/e6Mt72Fx07cZGdnd2h7aHtOjPe9hfUuro6jRs3TtXV1UpJSaHHWTeLjXXsTZv2xrrxTbyDBw/q1KlTmj17tqZOnco5u5vYSZz6+nr9/d//vaSWe/d/+umnGjVqlNLS0pSRkeH6dezPyiOPPOJsb9OmTdq/f79SUlL0xhtvaPPmzR16L52BRBLQC1iWpTNnzmjKlCmyLEtvvPGGfv/730tqPlkwaNAgXXvttU52+9ChQ6qoqHBOfI3ZFybTpk3TVVddpcGDB2vfvn2d84bQopycHCdO27dv1+uvvx7X0ySWMUZDhgzRNddcoylTpkg6nwSsra1ttffZxo0bVV9fr4ceekjDhw/vpHeDlthJH/vf+fPn65ZbbpF0fjjrQw89JKntXdrti5J169Y5dz63b9+uF1980emOfeLEiaS8B7jTWbFuTk1NjdLT03XjjTcmZXtom66Odzgcltfr1YQJE1RXV5eUbcK9zo73hAkTNGDAAFVUVOjEiROyLItkUjfrjFjbCYmdO3eqvr5e8+bN09ChQ3t0r5T+4IorrnC+b7XUc3/s2LFOD+DmrtsTGTBggIwxuvbaa7Vo0SIZY9TQ0KB58+Zpzpw5+v3vf98ze6Z1dVEmAO1nTz3ZuKp/SzZt2mQuvvhiY1mWWbJkiTGm5YK7H3/8sZk7d66xLMu8+eabSWk32s6ercOyLDNjxgxX6yxevNikpKSYQYMGmR07diRcpqGhwZw7d85s3brVeDwe8+ijjyaz2egAu6jivn37zKBBg5z479y50xjT9qlg7f08diaRK664whw5csQ89dRTJi8vL+HMI+h8yY61MU2P6w8++KC55ZZbOt5YdFgy420XV28c71tuucWsXbs2SS1GR3TWsfx73/uesSzLPPbYY8ltMNqtM/btQ4cOmXHjxplrrrkmbkZOdK9Dhw4ZY5qf6MiO1U033WRuuummNm//zJkzxhhj9u/f73yOJkyYYN566612trjz0SMJ6EXuvvtu5w7HO++8o1/+8peS1GxPFUmaNWuWvF6vpPM9VT788MMWs+np6em66KKLnDHa6B7333+/E6c9e/Zo06ZNkhLH2r5LYt/FGDp0qC6++GJJiWsrHT9+XNu3b9f3v/99rVy5MuFy6Hp2gc7LL79c9957r/O4PSQtNTW1XXFat26dRo0aJUnav3+/Jk6cqNGjR+vHP/6xU8AfXSsZsW6umOu5c+f00ksvqaamxqmNh+6VzH27cc27mpoaBYNBpaamOsdzdK9kH8vtmE+cOFEDBw50JuGg3l3364x9+7nnntPRo0d1zz33aODAgQxr6yEuvfRSSc3XLBo4cKAk6S9/+YtuuOGGJs/bn4PPPvss7nfb4MGDJUm/+tWvlJKSoi1btujw4cM9uvQEiSSgF7nooou0evVq5/dVq1bp7NmzSk1NbXKisQ9006ZN0/Tp0yWdn/njz3/+c7Pbtw9q69atU01NjTIzM5P9FuDSjBkz9J3vfMf5PT8/X+fOnXO6Useyv1B84xvfUGZmpk6dOuUU6W58wnvnnXd08803a8iQIbrzzjudx+k23bOsWbNGY8aMkXS+ltXGjRslNT+UNRH7czFw4EAnmbxixQrV1NTo9ttvJ+Y9RHtjbcc3HA7rf//3f1VWVqb/+I//0I9+9CP953/+p2699VaNHDmycxuPNuvIvl1bW6vy8nL97Gc/04svvqif/vSnKigoUGlpqX7wgx9o6NChndp2tF0yjuX2sXr8+PGqq6vTCy+8IIlZvHqajsTaXuZ3v/udXnrpJW3evNkpsM4kKL3H6dOnlZaWpuuvv77Jc5ZlqaqqSi+99JLze6yqqiqtWrVKo0ePVnV1tQKBQM+/TuuejlAA2usvf/mLM1TNsiyzYsUKY8zn3Wtj2d2hQ6GQs7zdRbK5rpnoOU6ePGnGjx/vxO6ee+5ptptzQ0ODOXXqlFmwYIGxLMvs3r074XL79+83L7zwQie2Gh1l78u/+MUvnNiPHz/eVFdXG2NaHpra2PHjx01+fr65+uqrzZEjRzqlvWi/jsS6oaHBWS89Pd1Zf86cOebYsWNd0n60TUfiXV1dbW677TZnvdh4f/TRR13SfrRNso7l9vVaJBIx8+bNM++//37nNBjtloxY792719x2220mPz/fnD59muv0Xujo0aNm4sSJTfZRO/47d+40GzZsMMYkHvZ46tSpzm9kEpFIAnqhDRs2xF1IHjhwoNll7YPX/PnzjWVZZuvWrV3VTCRBSUlJXKw3bdrk1LVJdJFx4403mlGjRpmjR492dVORJLFxnTVrlhP7lStXGmPalkj69a9/bfbt25f0NiI5OhLruro6s3btWjNkyBAzcOBAM3r0aPPHP/6x09uM9utIvCORiLEsywwYMMAMGTLEjBkzhnj3cMk8lqNn62isq6qqzHXXXUfdyl7u+eefN1deeaXze+Pr9GXLlpnrrruui1vVeSxjKIwB9EbXX3+9/vCHP0g6P833r3/9a6cuTmOnTp3SwoUL9eqrr2rv3r26/PLLu7Kp6KDvf//7evbZZ/XXv/5VU6dO1apVq7R06VJJ54cj2nUSTp8+rWnTpmnJkiX68Y9/THfoXswexlheXu5M5z1o0CDt3r1bl112merr61sc1mCM6fldoiGpY7E+fPiwjh07ppSUFGVmZrLP9wLtiXdDQ4NSUlJUXl6ujz/+WBdddJHmzJlDvHuBjh7L0XskivXAgQO1Z88eXXbZZaqrq3Pq6MSyz9dnzpxxZllF7/Tv//7vGjFihB544IG467B3331X27Zt02OPPaYvf/nL+s1vfqP09PRubm3HcQYCeqlgMKixY8cqJSVFr776qp588kkdO3ZMUnwBN2OMLrzwQjU0NOhLX/qSxo0b111NRjv967/+qx566CGlpqZq7969ysvLc8beW5al1NRUpaam6vXXX9cll1yi++67jy8YvZxdC2vu3LlatGiRJOns2bNOAU97qtjmkETqPToS60svvVRXX321Zs6cyT7fS7Qn3vb+PHfuXC1evFhz584l3r1ER4/l6D1iY3377bdLkurq6pxYDxw4UO+9956OHj0at569f5NE6r3sfXjPnj2aMWOGpPNx/eijj/TMM8/owQcf1IYNG3T8+HHt2bNHw4cP787mJg09koBe7JlnntGTTz6pcDis0aNHKzc3Vw899JBT+b+2tlaDBw/WRx99pJkzZ2rt2rW66667urfRaLf/+q//0pNPPqlQKCRJysnJkd/v14wZM/Too4+qsrJSa9as0YIFC+iR0gfYd6ojkYiuvPJKnT59WpK0fft23Xzzzd3cOiQTse5fiHf/Qrz7DzvWBw4c0N/93d85jxcWFur48eOqq6vT3XffrWnTpnVjK9EZamtrlZWVpVAopPr6eu3cuVMvvviidu3apQMHDkiSsrKytHnzZmcClN6O2xlAL7Z06VI98cQTuvTSS3X8+HE98sgjuvfee3XixAlJn08l+dRTT2n69OkKBALd2Vx00Le+9S2VlZVpxYoV+upXv6odO3bo2Wef1X333adx48YpFAppwYIFkuiR0hfY0wp7vV5997vfdR63725K0pYtW7Rnz55uaB2SiVj3L8S7fyHe/ceAAQN09uxZTZkyRd/73vecx/Py8nTu3Dk9/vjjJJH6qNdff11TpkxRJBLR2rVr9cMf/lBPP/20Dhw4oMGDB6u8vFx/+tOf+kwSSaJHEtAn7NmzR8FgUMFgUJI0ceJEzZ49W5MnT9bTTz+t+++/X/feey/j8Hs5u06Grbq6WvX19UpJSdGFF16YcBn0bnY86+rqNHr0aH366aeSpK985SuSpFWrVunrX/86Me8DiHX/Qrz7F+Ld/3zrW9/Sr371Ky1atEiPPfaYU1qCHuN9ix3PJ554Qlu3blVaWppef/11VVdXS5Ief/zxPvsdjKMV0AdcddVV+vnPf67t27ersLBQkydP1rBhw1RfX69wOKx/+Zd/6ZMHsP7GvsBsaGjQuXPnNHz4cI0YMcKpgRW7DPqGlJQUnTlzRgMHDlReXp7z+NixY/X8889r/vz5xLyPINb9C/HuX4h3/3HkyBH927/9mw4dOqRXXnlFmzdv1rhx45zrNJJIfdPOnTv11ltvaceOHaqurtaSJUtUVVXVp7+D0SMJ6AO4uwH0badOndKNN96okydPaseOHXG1F9C3EOv+hXj3L8S77ztw4IAikYi+9rWvSfq8EDPX6X3bhRdeqJqaGk2ZMkXbtm3rF/s2iSSgj2FoE9C3hEIh/eIXv9DChQs1b948Lkb7MGLdvxDv/oV49z9ck/d9xhi99NJLWrhwoX77299q/vz53d2kLkMiCQCAHuz06dMaPHiwM7Uw+i5i3b8Q7/6FeAN90yeffKLhw4dr0KBB3d2ULkUiCQAAAAAAAK7Q1w4AAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAADoBvn5+crIyJBlWUpLS1N2draKioratI2ysjIFAgFlZGQoLS1NGRkZWr58uSKRSJe2o7CwUNnZ2UpLS1NaWpoyMzNVWFjYpm0kU1FRkfOeYn/ctCkcDiszM7PJupZlKTMzU2VlZV3wDnouyxhjursRAAAAAAD0F+FwWIFAoNlkj8/nU3Fxsbxeb4vbCQQCKikpUV5engoKCiRJkUhE2dnZikQiKi4uVk5OTqe2o7VteL1ehUIheTyeFt9LZykpKVEgEIh7rLS0VH6/v9V1o9GoMjMzFYlE5PF4FAqFWo1Jf0AiCQAAAACALmL3dvF4PFq0aJE8Ho8ikYjC4XBcMsbr9aqysrLZ7dhJpNzcXAWDwbjnotGo0tLSJDWfNElGO6LRqCZNmiS/36/Vq1fL5/MpGo2qrKxMy5YtUzQalSTl5OSouLjY9d8o2QoLC5Wfn+/83pakUFFRkZYvXx6XrOvvSCQBAABA0vm72IFAQOFwWDk5Odq4cWO33UEGgL4qIyPD6enTWOOER3PJCzu5IUlVVVUJj9X5+fkqLCyUx+NRVVVVp7QjOztbgUBAubm5TZ6LTWZJUnemHmL/XrbWEnU2O+HWWu+u/oQaSQAAAD1EWlpawnoMnfUTDofjXj87O9t5rKSkRMuWLeuOPwMA9FklJSWS1GzvnLy8vLikTHO1eOykjt/vbzbhbydOotFok7pAyWhHOByW1+tNmESSzvf6iX2uLTWbOktsIsi+eeIWN1Y+RyIJAACgnzp58qTz/2g02uQiv78XEwWAZAsGg02GoTUW2/OnccJfOn9sto/X2dnZzW7H6/U6yY/Gr5mMdng8nla3kZGREdee7rZx40b5fD7n95KSklaLb5NAaopEEgAAQA9h15Kw2TUlQqGQKisrVVVV5fwkunj3+/1xy1RVVamyslKlpaXKy8tr8WLY4/E0eT4rKysJ7woAYMvOzm61yHOi43Gs2F5EsUmRROzjuF37KJntcJMYeuuttySp2V5LXc3j8ai8vDzufeXn53PjpI1IJAEAAPQwdhFQux6Dz+dz7izbPyNHjmx23dgfr9crv9+vgoICVVVVxX1xaJy4Ki8vd74YNFc3AwDQfnl5ea6Ws4/xiZI1sUmP1pI5sc9XVFQktR2tiUQiKikpkd/vb7XnUleyk0mx7FnuOqqwsFCZmZnOUPW0tDQFAoFmE1V2/aXGQ8+XL1/e5BxdWFgYNwS+tZ5UnYlEEgAAQA/TuOt9MpWWljZ7h9nn86myslLGmG6dqhkA+js7qdG4QHTsc5Kavalgiz2Oh0KhpLajJdFoVIFAQHl5eSotLW3z63a2RDdLsrOzmyRv3AqHw8rIyFAwGHRu3BhjVFBQoJKSEmVnZydMDvl8PoVCobhzfk5OjoLBYJNzcF5enjZu3Cjp/NBEt8nAzkAiCQAAoAfxer2dPiuMPcQgtkYSAKBniO290nhIWONERGsJ//T0dOf/bT3mt9SOlpSUlGjSpEkKh8NNZn/rSXJycuKSMW0tvm0rKytTZmamTp48qcrKyriev7m5uU4iraioSHPnzk24DTtBJCWuRxXbxsZFzLsDiSQAAIAewP5y0BVTC7f1zjIAoOvYw8AKCgqaJIraOvwqdv229rZpqR2JFBYWKiMjQ4FAIO61CgsLWywK3p0KCgriEj9lZWVtTnzZ59TY4uSx/H6/k7Cyk2uN+Xw+px2RSKTZoXDBYFCrV69uU/s6A4kkAACAHqQrLrbtekvt7cIPAOgcdl0hn8+XcOhSVw05bq0dieTm5jqTQwSDwbi6SmVlZd1a06clpaWlcW0tLCxUSUmJq3ULCwud5F5Lxctjkz/5+fkJz7+xiahENaXC4bAikUi390aSSCQBAAD0GI3vjHamjRs3dtlrAQDcCQQC8nq9TYpB21qridRYbMKiLUmo1tqRSOwkD7m5uaqsrIzrZdtTh7hJTesHBgIBV72/tmzZ4vy/pYLkHo8nrg5Soh5HPp/PWaakpKRJsikYDConJ6dH1C8kkQQAANADeDyeLi2cac8GBwDoGezeLS1NitCRJILbJJSbdrhVXFwcl2BJlJyJRqNNZi3ryE9mZmab2+n1ettVfLulekaNZWVlOf9/6623Ei4TO/S8qKgo7rmioqIeMaxNklK7uwEAAADoWSKRiILBoMrKylzP8mOvU1JSouLi4rgkVTQaVVFRkYLBoFMo1Ov1avXq1c3WhLLX2bJliyKRiKLRqLxer/x+v+t6Hc1ts7S0VBUVFYpGo05bFi9erNzc3B5xpxdA/1NSUqL169ervLy8xZ4t0vmeK3YCIxKJtLh8ZWWl8383CZa2tMOtgoICp4h1ovZ6PB6VlpYmbbh1e9vt9/sVDAadZI5dfLu52keN2eeU5rg5v+Tm5jpD39avX+/cYCoqKpLX6+05N4AMAAAAep3i4mIjKe7H7/d3eJs+n8/ZnsfjaXH5UChkCgoK4taRZEKhkLNMQUFBk3bG/uTk5DTZbl5eXovreDweU1lZ2ab3FrtNj8djvF5vwm0XFBS0absA0FGhUMh4PJ64Y2dLcnNznWNWaWlpi8v6/X5n2daOm21th1uVlZUJzw9dKRgMGrfpj9i/r31ube5v3dy5L5HY82FL55rY85X9mj6fzwSDQVft7woMbQMAAOjHwuGwli9fLsuyFAgEXHfTT0tL09y5c5Wfn59wnUgkoszMTOXn58vj8SgnJ0c5OTlN7hSXlJQ4BVij0agyMjJUWFgor9frrNP4Dmw0GnU9RXM0GlVmZqYKCwuVk5OjqqoqVVVVqbKyUsaYJgVN8/Pze3QdDwB9Szgc1ty5c1VeXu66t0ns8a+1Oj4VFRWSzvfSaamnTnva0R49pkdNC4LBYKv1jGyxy9l/6+Z88sknzv/dFuYuKChQJBJROBzuEUW2bSSSAAAA+jE7adLcELPm2AmZ0tLSJs8Fg0FlZGRo5MiRCoVCqqqqUnFxsYqLi5sUX5Wk9evXKxKJaNKkSfJ4PM6sP/Y6oVCoyeuEw+EWL+5tdnIsNzdXxcXFTYYW5ObmNtl2YWGhq20DQEfYQ6fcJG9iZxHz+/3OsSzRMdgWjUad4WItJcjb2w637JsNbT3PdAa3w+fKy8tdDUVbvHix8//WhsDZSb/WhqjZN1+k80ms5cuX96gkkiSGtgEAAPRGnTG0rXF3/taGttkSDRNrrQt+4+XdtL9x+3Jzc1tc3h4e4OZ9NB6e5/P5Wl0HANqrsrLSeL1eV0O98vLyTHFxcdxj9lAtSaaqqirhevZQqpaOgR1thxv20LC2DklOJvtv0ZY2xA7JUwvDCGPPgS39HVvbTqxQKBT32t35t0uEYtsAAACQdH6GmsazxLjR+K5tXl5eq3dPc3Jy4u5sezyeJjPmNBYIBOLa11KvoWg06gyZc3Mnd/ny5XGz5dg9nloafgAA7WEPuc3KytKWLVvippBvrKysTJFIpElvl9zcXAWDQYXDYa1fv77J83axZknNHls72g67t4zH42l28gS7h2dpaWnSine3hz1LWmvFyWPZM7m1NpS6uLjYKWS+bNmyhJNU2D3CcnNzXZ1XfD6fU1Td5/N1698uERJJAAAAkNT+aaUbTymdnp7e6jqNL4q9Xm+rr994nZZqg9hfoKTzCbLWxE7LbCsuLiaRBCCp7ORNNBpVWVmZq2G09sxdjYVCIWVnZ6uwsFDp6enOcvZQNan541gy2hEOh53jcCAQkM/n0/Lly5WVlaWKigongVVZWdmtiZBwOOzcuMjPz3c9bE06f9OjoKCgxaGBPp9PoVDIGUqdnZ2tYDAor9frzGhaWFiogoKCZmOZyOrVqxUIBOJqJvUUJJIAAADQ5TIyMtq8TuOEVUtiey65vfvbGHWSACRbZmZmqwWyG4vtLdlYaWmpSkpKFAwGtX79eo0cOVIej0dZWVktJkyS0Q47KRIMBp2C0Pn5+crKypLP53OSKd2lqKjI6bVlC4fDmjRpkrKyshLWzUskLy/P6dHUHJ/Pp8rKShUWFmrLli1OD6WRI0fK7/e3K5mWk5Mjv9/fI2pLNUYiCQAAAL1WNBpt8kUgHA7HFVS1LKtd227rlywAaE1lZWXSt2nPcNkd7cjLy2tTL5uulJubm7Qi1a0NvbYl++/RUjH17kQiCQAAAL2C26EIsT2JPB6PFi1a1EktAgCg/yGRBAAAgD4l9k77yJEjFQwGu7E1AAD0LSnd3QAAAAAgmU6ePJnw/wAAoONIJAEAAKBPia2PFI1G434HAAAdQyIJAAAAfRpFswEASB4SSQAAAOhTGhflpkYSAADJQyIJAAAAfYrX6437fevWre3eVn5+fkebAwBAn0IiCQAAAH3KzJkz436PRqMqKSlp83aWL1/OsDgAABpJ7e4GAAAAoO2Yjax5fr+/yWPLli2T3+9vMuytOSUlJSoqKlJlZWWSWwcAQO9GjyQAAAD0Cm5nX/N4PE2SSdFoVIFAwNX6JSUlCgQCys3NbTJMDgCA/o5EEgAAQC+UqKdMR4dhNU7UuE3ctKd3VONtt7ftzb12QUFBk8fKysqUmZmpcDjcbJvy8/MVCATk8XgSbgMAgP6OoW0AAAC9UFFRUZPHIpGIwuGwfD5fu7ZZWlqacJut9cppnARyMxys8TLRaFTRaLTFoWcVFRWu2+fz+ZSbm9vk7xQOh5WZmSmfz6esrCxlZGTok08+USQSiaujVF5e7noYHAAA/YlljDHd3QgAAAC0LhqNqqKiQvn5+c32qvF4PFq9erVycnLaNCzLHs7VmN/vV3FxcbNJlfz8fBUWFjZpQ3l5ebMJrbKyMmVnZ7fptSKRiAKBQJP37fP5Wkz6ZGdnq6ysLOFzzQmFQu1OxgEA0NeRSAIAAOgFLMtq13oFBQXKy8tL+JydnIlEIq0OY7MTVHl5ec0mdRKtYyeHpPOzoG3durXV1/J6vQoGg/L7/SorK1MgEHC1Tn5+vnJzc5s8lyjZlUhrSTMAAEAiCQAAAP2APXRty5YtTuLM4/HI6/XK7/dr8eLF9EICAMAFEkkAAAAAAABwhVnbAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACukEgCAAAAAACAKySSAAAAAAAA4AqJJAAAAAAAALhCIgkAAAAAAACu/D9nvZ+zGmCKvQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_actions('eval_results/aggregate-2_ddpg_train-summer_eval-11-06_2025_05_02-13:09:26/trajectories/episode_0.json', 'ddpg_2_hours_agg_11_06_2025')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "ba097c88", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([datetime.datetime(2023, 11, 5, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 5, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 5, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " ...],\n", + " array([[ 0.03328548, -0.38260329],\n", + " [ 0.03328548, -0.38260329],\n", + " [ 0.03328548, -0.38260329],\n", + " ...,\n", + " [ 0.06416021, -0.25544146],\n", + " [ 0.06416021, -0.25544146],\n", + " [ 0.06045093, -0.27606571]]))" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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IiKNHDhwAGlpaUHbHoe2ERERERERERGFKYfDEdTtMZBERERERERERBSmampqgro9Dm2jqHHJJZfgvffeU34eMmQIEhISQtegCLF7926XYYLvvfceRowYEboGka7Y39GDfR1d2N/Rg30dXdjf0YN9HV22bduGefPmKT9nZGQEdfsMJFHUMJvNmDNnTqibEfFGjBiBsWPHhroZFCTs7+jBvo4u7O/owb6OLuzv6MG+ji5JSUlB3R6HthERERERERERkVcYSCIiIiIiIiIiIq8wkERERERERERERF5hIImIiIiIiIiIiLzCQBIREREREREREXmFgSQiIiIiIiIiIvIKA0lEREREREREROQVBpKIiIiIiIiIiMgrDCQREREREREREZFXGEgiIiIiIiIiIiKvMJBEREREREREREReiQ11A4govPXt2xeLFy92+ZkiF/s7erCvowv7O3qwr6ML+zt6sK+jS6j7WxJCiKBukYiIiIiIiIiIwhKHthERERERERERkVcYSCIiIiIiIiIiIq8wkERERERERERERF5hIImIiIiIiIiIiLzCQBIREREREREREXmFgSQiIiIiIiIiIvIKA0lEREREREREROQVBpKIiIiIiIiIiMgrDCQREREREREREZFXGEgiIiIiIiIiIiKvMJBEREREREREREReYSCJiIiIiIiIiIi8wkASERERERERERF5hYEkIqIoIoQIdROIiIiIiCiMMZBERNi7dy9uuOEGBhkiUG1tLWpra3HgwAEAgCRJIW4RERH5q6WlJdRNICIiYiCJKJqdPn0at956KywWC9577z1UVlaGukmkkdraWmRnZ+Oiiy7C8OHDcdZZZ2HEiBH4y1/+ovQzA4dEROHD4XBgzZo1oW4GBdHp06fR3Nwc6maQzng9RuGIgSSiKOR0OvHXv/4V3bt3R2FhISRJgtPpxIkTJ0LdNAqQEAJFRUUYNWoUxowZg0cffRS//e1vcc0118ButyMvLw8zZ87EV199hdOnT4e6uUQUAKfTGeomUJDU1NTg2muvRUlJSaibQkHgdDrx0ksvoXv37vjrX/8a6uaQhpxOJz744AM8+uijyMnJwYoVK7Bu3TrlfQaVIpsQAna7HQDCPkgcG+oGEFFwfffdd7jiiitQVVUFALj44ovR1NSEr7/+GiUlJTjvvPNC3EIKxBtvvIH3338f+/fv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AU8++SSGDRuGo0eP4pFHHsFvfvMbHDt2DMCPU0k+99xzGD9+PGw2WyibSwH6xS9+gbKyMtx111247LLL8PHHH+PVV1/FwoULkZKSgvLycsyePRsAM1IigTytsMViwe233668Lj/dBIC33noLGzduDEHrSEvs6+jC/o4u7O/oERMTg8bGRowcORJ33HGH8npubi6am5vxxBNPMIgUob788kuMHDkSdrsdDz30EJYsWYKXXnoJu3btQkJCAlatWoXvvvsuYoJIADOSiCLCxo0bUVhYiMLCQgDA0KFDMW3aNIwYMQIvvfQSfve73+E3v/kNx+GHOblOhqy2thYtLS0wmUxISkpyuwyFN7k/m5qa0K9fP5w8eRIAcNFFFwEA7rnnHlxxxRXs8wjAvo4u7O/owv6OPr/4xS/w2muvYd68efjzn/+slJZgxnhkkfvzySefxMqVK5GcnIwvv/wStbW1AIAnnngiYu/BeLQiigATJ07E888/jw8++AAFBQUYMWIEunbtipaWFlRUVOC3v/1tRB7Aoo18gel0OtHc3IwePXqgZ8+eSg2ststQZDCZTKivr0dcXBxyc3OV1wcOHIh3330XV111Ffs8QrCvowv7O7qwv6PHDz/8gHvvvRd79+7Fp59+ijfffBMpKSnKdRqDSJFp9erVWLduHT7++GPU1tZi/vz5qK6ujuh7MGYkEUUAPt0gimw1NTW49NJLUVVVhY8//til9gJFFvZ1dGF/Rxf2d+TbtWsX7HY7Lr/8cgA/FmLmdXpkS0pKQl1dHUaOHIn3338/KvZtBpKIIgyHNhFFlvLycrzwwgu49tprMWvWLF6MRjD2dXRhf0cX9nf04TV55BNC4KOPPsK1116Ld955B1dddVWomxQ0DCQREREZ2KlTp5CQkKBMLUyRi30dXdjf0YX9TRSZTpw4gR49eiA+Pj7UTQkqBpKIiIiIiIiIiMgrzLUjIiIiIiIiIiKvMJBEREREREREREReYSCJiIiIiIiIiIi8wkASERERERERERF5hYEkIiIiIiIiIiLyCgNJRERERERERETkFQaSiIiIiIiIiIjIKwwkERERERERERGRVxhIIiIiIiIiIiIirzCQREREREREREREXmEgiYiIiIiIiIiIvMJAEhEREREREREReYWBJCIiIiIiIiIi8goDSURERERERERE5BUGkoiIiIiI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w9+poqIC6enpSEtLQ0ZGBlJTU3HixAnY7XaXOkqrVq3yehgcERFRNJGEECLUjSAiIiKizjkcDqxfvx55eXmqWTVmsxmLFi1CVlaWT8Oy5OFc7VmtVhQXF6sGVfLy8lBQUNChDatWrVINaJWVlSEzM9Onbdntdthstg6/d1pamsegT2ZmJsrKyty+p6a8vNzvYBwREVGkYyCJiIiIKAxIkuTX5/Lz85Gbm+v2PTk4Y7fbOx3GJgeocnNzVYM67j4jB4eA1lnQVq5c2em2LBYLCgsLYbVaUVZWBpvN5tVn8vLykJ2d3eE9d8EudzoLmhEREREDSUREREQUBeSha2+99ZYSODObzbBYLLBarbjuuuuYhUREROQFBpKIiIiIiIiIiMgrnLWNiIiIiIiIiIi8wkASERERERERERF5hYEkIiIiIiIiIiLyCgNJRERERERERETkFQaSiIiIiIiIiIjIKwwkERERERERERGRVxhIIiIiIiIiIiIirzCQREREREREREREXmEgiYiIiIiIiIiIvMJAEhEREREREREReYWBJCIiIiIiIiIi8goDSURERERERERE5BUGkoiIiIiIiIiIyCsMJBERERERERERkVcYSCIiIiIiIiIiIq8wkERERERERERERF5hIImIiIiIiIiIiLzCQBIREREREREREXmFgSQiIiIiIiIiIvIKA0lEREREREREROQVBpKIiIiIiIiIiMgrDCQREREREREREZFXGEgiIiIiIiIiIiKvMJBEREREREREREReYSCJiIiIiIiIiIi8wkASERERERERERF5hYEkIiIiIiIiIiLyCgNJRERERERERETkFQaSiIiIiIiIiIjIKwwkERERERERERGRVxhIIiIiIiIiIiIirzCQREREREREREREXmEgiYiIiIiIiIiIvMJAEhEREREREREReYWBJCIiIiIiIiIi8goDSURERERERERE5BUGkoiIiIiIiIiIyCsMJBERERERERERkVcYSCIiIiIiIiIiIq/8Pyv+qYWbDcCtAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_actions('eval_results/aggregate-8_ddpg_train-summer_eval-11-06_2025_05_02-14:00:55/trajectories/episode_0.json', 'ddpg_8_hours_agg_11_06_2025')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "3bf1fc9b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([datetime.datetime(2023, 11, 5, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 5, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 5, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 6, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 7, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 8, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 9, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 10, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 11, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 12, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 13, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 14, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 9, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 10, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 11, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 12, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 13, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 14, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 15, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 16, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 17, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 18, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 19, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 20, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 21, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 22, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 15, 23, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 0, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 1, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 2, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 3, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 4, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 5, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 6, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 7, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 15, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 30, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 8, 45, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " datetime.datetime(2023, 11, 16, 9, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=57600))),\n", + " ...],\n", + " array([[ 0.19015501, -0.74650156],\n", + " [ 0.19015501, -0.74650156],\n", + " [ 0.19015501, -0.74650156],\n", + " ...,\n", + " [ 0.40550569, -0.85421509],\n", + " [ 0.40550569, -0.85421509],\n", + " [ 0.06045093, -0.27606571]]))" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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LMt+Q3nRRRfJ5/Opr69PEi9K8snwXJiklSYS84OcffbZkqS2tjb7heVwiULB3//936umpsbe92c/+9msx4zs2rdvn770pS/Jsiz96Ec/snP5q1/9yp7bibliClPifP6P//gPfexjH9Pdd9+tkpIS+7w/+eSTdfPNN+viiy+WJO3du9exWDE1ieflmpoaVVRUqKWlRR/4wAdUXDy0PkticlGefwtTS0uLXn31VS1atEjXX3+9vvjFL+qf//mftWzZMvl8Pjv/1dXVkqQHH3xQkgp2QlmvevnllyVJM2fOtFeIGi4ej6ukpERf//rX7ft+8IMf6NFHH52WGJF98+fP19/+7d9Kks444wx9+tOfth/7zGc+I0kqLi4uuNXguPoALpN4UXn06FFdfvnlKi8vtycLTu4kSHxfXFyseDyuLVu2SOJFST44evSovva1r2nlypV617vepZtuukk//vGP9frrr0saepGRKAbE43HNmjVLfX19am1tTbvPI0eOSJJuvPFG+75f/vKXeuGFF3L4m2CqZs+erXe961367ne/q/e973364he/aD9222236ciRIyoqKuLNYwGyLEv9/f3auXOnVq1aJenNYkDixWRVVZXmzp0rSVq6dKljsWJqEs/Lhw4dUlVVlebNm2c/FovF9MYbb+jFF19Ub2+v/Xwt8aFMvksU4N/73vdKkq644gp95jOfUW1tbUqOE/l/3/vep5NOOkn9/f12QQGFI3Fd3rJli/7whz+Muk3iNfQVV1yhK6+80r7/tttuy32AmJTxijennnqqSktL7evx7bffroULF0qStm7dqrvvvltS4V2vebcHFKhYLKZYLKb9+/en3J9YFer//b//Z79AGa1lNXHRu/LKK1VWVqbHH39czzzzTI6jxngefvhhnXHGGXrjjTe0ePFi7d27V9/85jd15ZVX6oILLtDmzZtTcv72t7/dLvD867/+a0qravIT26xZsyRJP/vZz+wXpMcff3zKGw7knwMHDmjp0qV2LtesWaMLL7xQ0tAQBFesUOFhTzzxhGpra3XJJZekLDVrWZbi8bhmzJihc889V3/zN3+jRYsWORwtJivxXLxkyRL95je/0Wuvvabf//73+ud//mdddtll+uAHP6iKigpdeOGFuuCCC9Tc3Gx35yJ/JT6MKSoq0oUXXqhbbrlFZ5xxhqTR31ju27dP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Y+Up8Vg0Gk35G/rRj35kjCmM4i5FICCPJS5ef//3f29OOOEEs3v37hHbJC5EP/3pT01VVZX9xv+v//qvzfPPP2+MGb/1NBKJmPnz55sFCxbY2/JGcvr09/fbnxQlWv+H//8n8vLEE0+YD33oQ3Z3wNve9jbzzDPP2Nv96U9/Mj/60Y/Mpk2bzD/8wz+Y7du3m5dffjnlyayrq8vMmDHDFBcXj9p5hNzYsWOHOf744+0XC5deeumk9pP4W9i3b5859dRT7f1961vfMsbwAtNJ2crxCy+8YFpaWuz28qNHj9qPbd++3dx00032tX7btm1ZiR0TNzzP7373uye9r+HnayLXr7zyilm3bp19jD//+c9TihmZyda5PJq3v/3tZvbs2eYXv/hF1vaJzHz72982TU1Npre313zsYx+b0Lmc/LrstttuM6eddlpKF0nimnzGGWekDNe97rrrsv43hIk7dOiQOfnkk82SJUvMww8/bPbv3z9im+QP1SbasZV4Lfa5z33O/tnzzz/ffjzf30dRBALyXH9/v6moqDCWZZk//elPxpj0F5avfe1r9nChE0880dx2220TPs473/lOY1mW2bRpUzbCRgaeffZZc+qpp5o5c+aYtWvXmiNHjoy5/UMPPWSWLl1qLMsyJSUlprm5eULHGd5ZduGFF5oDBw5QNJgGL774onnve99rzjvvvJT248nOw5XYPhwO2/tauHCh3RXCnAPTL9s5TpyvyfNNJG7v37/fnhfqhhtuyOJvgfFkO89j+fOf/2yCwaCxLMt897vfzdp+MbZc5njfvn2mvr7ezJo1y/zyl7+c8v4wOTt27LC7NV566SV7Xq7x8pz83Prkk0+aj370o+acc84xc+fONUuXLjUbNmwwv//971O2e8c73mEsy7KndCDf0+vRRx81lmWZxx57zL4vMXdTIhcHDx60P0j/i7/4C3t+qLEkcnzkyBETCATsv5+vfOUrxpj8zzOrgwF57uDBgzruuOMkST/4wQ8kjVx1IrGaQX19vd7//vdLkl5//XX9z//8j375y1+mbDNcYkWhv/zLv5Qk7dmzh5WiptnixYt18skn6/Dhw9q1a5f27t076naJvLz73e/WddddJ2loydlf/OIXikQikt7Mc2Lb0fKe+PtZvHix5s6dO+7ymJi6Rx99VB/72Mf0xBNP6I477rDv/9znPqeBgYGMlxZNrFDR0NBQ+CtUuES2c5w4LxP/JlacsSxLxx13nG6++WYVFRXphRdesFc1Qe5lO89jOe6443TJJZdIGnltR+7kMsfz5s3T6aefrqNHj9qrSw1fGRC5d+aZZ6q4uFgDAwM65ZRTUpb8HivPiVwZY7R06VK1trbqqaee0tNPP60nn3xSt9xyiy666CL5fD7F43Ht37/f/pmSkhJJb17LMT22b9+us88+W8uXL9fRo0dljJFlWfL5fCoqKtLg4KDmzJmjm2++WdLQyrnz588fd7+JVVlnzpxpry4nSXfccYdee+01e9/5iqsOkOcGBwf1yiuvyOfz6bnnntP+/ftHbJN4glm4cKE+8pGP6NJLL5UkvfDCC/rOd76Tss1wiSejxOPPPfecLMvK6wuXmxhjdOTIEfuN/I9+9CM988wz9mPJEm8GS0tLdemll+riiy+WJO3evVuPPvqopDfzmNg2Oe+J+zZt2iRJuvHGG0dsg+yLx+Oqrq7WNddcI0lavXq1zj33XElDS5V++ctfznifVtKS8clvUr75zW/qqaeeYsn4aZaLHI/n1FNP1cknn6wjR45o5syZWd8/RpruPM+ePVsXXHCBJKmvr0/S6EuPI3tymeNEQeFv/uZvJElPPPGEent7yakDSktLJb35GvjTn/60li5dKmlieU7kbPbs2ZKk0047TVJqsTZRZNi5c6ck6X3ve1+WfwuMJfEa+qSTTlJxcbEkaebMmSPOt8Rr4KuvvlqLFy/WgQMH9Oyzz07oGIm/n7/+67+233v19vbqc5/7nKT8vl7zyh/IY8YYLVy4UMuWLVM8Htdvf/tb7du3b8yfqamp0XXXXad58+bp8OHD+v3vf6+f//znabdPPGFdccUVkoa6jfbv388nFdPEsizNmjVLfr/ffpLasGHDuD9XXV2tq6++WnPnzlVfX592794tafyOr9///vf62c9+ptraWi1btixLvwXG4vP5tHjxYvl8Prtws27dOvvxO++8Uz09PRkXbhJ/L5deeqndGTYwMKBbb73VPm62OhIwtlzleCyLFi3SwMCA3v3ud2dlfxjfdOY58QYmUYCora2d0v4wMbnMceLN5sDAgBYuXKh9+/bJ5/PR3eWg5Dwnf6Ay2TwP/1Bt9+7d6u/v17vf/W4tXbqU5+RplCjADA4O6l3vepeksbvj9+7dqwULFqisrEyVlZUTPk7i7+NLX/qSvb977rlHu3btks/n029/+1vdd999U/pdcoEiEJDHLMvS4cOHddZZZ8myLP32t7/Vr371K0np3+zPnDlTl1xyiV2R3rNnj7Zt22Y/yQ2XeAFy3nnn6cILL9SsWbP01FNP5eYXQlp1dXV2jh5++GH9+te/Tun2SGaM0ezZs3XxxRfrrLPOkjRUvDty5Mi4HV8bN27U4OCgPvOZz+j444/P0W+D4RIFm8S/73//+3XllVdKGhry+ZnPfEZS5m3iiRcfd9xxh/2J5MMPP6wf/vCHdrvz66+/npXfAWPLVY7T2b9/v+bPn6/LLrssK/vDxEx3niORiAKBgE477TQNDAxkZZ8YW65zfNppp6moqEjbtm3T66+/LsuyKAQ5KBd5ThQWtmzZosHBQV1xxRWaM2dOXneGuNW5555rv2caq/P9lFNOsbtq073+Hk1RUZGMMbrkkku0cuVKGWMUj8d1xRVX6NJLL9WvfvWr/OwCm+5JiABkLrG04fCZ58dyzz33mJNOOsleMt6YsSeL/fOf/2xWrFhhLMsyv//977MSNzKTWEHCsixTVVU1oZ+59tprjc/nMzNnzjQ//elPR90mHo+bY8eOmU2bNhm/3282bNiQzbCRocRkgU899ZSZOXOmnfMtW7YYYzJfWnS0JePPPfdc86c//cncddddpqmpadTVMJA72c6xMSOv37feequ58sorpx4sJi2beU5MAD48z1deeaX5whe+kKWIkalcXa//6Z/+yViWZb761a9mN2BMSi7O5T179piFCxeaiy++OGWFR0y/PXv2GGPSL6yTyM973vMe8573vCfj/R8+fNgYY8yuXbvsv53TTjvNbN26dZIR5x6dQEAB+PjHP25/EvHkk0/q29/+tiSl7RKRpIsuukiBQEDSUJfISy+9NGYFfP78+TrhhBPsMcyYfp/61KfsHO3YsUP33HOPpNHznPhUI/Gpw5w5c3TSSSdJGn0uoddee00PP/yw/uVf/kW33HLLqNtheiQmmzznnHP0j//4j/b9iWFcxcXFk8rNHXfcoQULFkiSdu3apdNPP10nnnii1q9fb08uj+mRjRynm5D02LFj+slPfqL9+/fbc77BGdk8l4fP47Z//36Fw2EVFxfb12xMv2xfrxN5Pv300zVjxgx7IQjmcHNWLs7l733ve3r55Zd1ww03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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_actions('eval_results/aggregate-168_ddpg_train-summer_eval-11-06_2025_05_02-16:36:28/trajectories/episode_0.json', 'ddpg_168_hours_agg_11_06_2025')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.10.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/smart_control/reinforcement_learning/notebooks/test.ipynb b/smart_control/reinforcement_learning/notebooks/test.ipynb new file mode 100644 index 00000000..05476fc7 --- /dev/null +++ b/smart_control/reinforcement_learning/notebooks/test.ipynb @@ -0,0 +1,1255 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2025-04-27 21:09:56.936041: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", + "2025-04-27 21:09:56.936088: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:607] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", + "2025-04-27 21:09:56.938147: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1515] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", + "2025-04-27 21:09:56.947769: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", + "To enable the following instructions: AVX2 AVX512F FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", + "2025-04-27 21:09:58.050738: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n", + "/home/gabriel-user/projects/sbsim/smart_control/simulator/building_utils.py:283: UserWarning: Connected components is showing that there are 4 or fewer\n", + " rooms in your building. You may have your 0's and 1's inverted in the\n", + " floor_plan. Remember that for the connectedComponents function,\n", + " 0's must code for exterior space and exterior or interior walls,\n", + " and 1's must code for interior space.\n", + " warnings.warn(\"\"\"Connected components is showing that there are 4 or fewer\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 15\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;66;03m# policy_dir = os.path.join(os.path.join(\"experiment_results/sac-experiment_2025_03_22-19:13:39/policies\", \"greedy_policy\"))\u001b[39;00m\n\u001b[1;32m 12\u001b[0m \u001b[38;5;66;03m# model = tf.saved_model.load(os.path.join(policy_dir))\u001b[39;00m\n\u001b[1;32m 14\u001b[0m gin_config_path \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-7_starttimestamp-2023-07-06.gin\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m---> 15\u001b[0m env \u001b[38;5;241m=\u001b[39m \u001b[43mcreate_and_setup_environment\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgin_config_path\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 16\u001b[0m tf_env \u001b[38;5;241m=\u001b[39m tf_py_environment\u001b[38;5;241m.\u001b[39mTFPyEnvironment(env)\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/reinforcement_learning/utils/environment.py:26\u001b[0m, in \u001b[0;36mcreate_and_setup_environment\u001b[0;34m(gin_config_file, metrics_path, occupancy_normalization_constant)\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcreate_and_setup_environment\u001b[39m(\n\u001b[1;32m 21\u001b[0m gin_config_file: \u001b[38;5;28mstr\u001b[39m,\n\u001b[1;32m 22\u001b[0m metrics_path: \u001b[38;5;28mstr\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 23\u001b[0m occupancy_normalization_constant: \u001b[38;5;28mfloat\u001b[39m \u001b[38;5;241m=\u001b[39m DEFAULT_OCCUPANCY_NORMALIZATION_CONSTANT\n\u001b[1;32m 24\u001b[0m ):\n\u001b[1;32m 25\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Creates and sets up the environment.\"\"\"\u001b[39;00m\n\u001b[0;32m---> 26\u001b[0m env \u001b[38;5;241m=\u001b[39m \u001b[43mload_environment\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgin_config_file\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 27\u001b[0m env\u001b[38;5;241m.\u001b[39m_metrics_path \u001b[38;5;241m=\u001b[39m metrics_path\n\u001b[1;32m 28\u001b[0m env\u001b[38;5;241m.\u001b[39m_occupancy_normalization_constant \u001b[38;5;241m=\u001b[39m occupancy_normalization_constant\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/reinforcement_learning/utils/environment.py:17\u001b[0m, in \u001b[0;36mload_environment\u001b[0;34m(gin_config_file)\u001b[0m\n\u001b[1;32m 15\u001b[0m gin\u001b[38;5;241m.\u001b[39mclear_config()\n\u001b[1;32m 16\u001b[0m gin\u001b[38;5;241m.\u001b[39mparse_config_file(gin_config_file)\n\u001b[0;32m---> 17\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mEnvironment\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/gin/config.py:1545\u001b[0m, in \u001b[0;36m_make_gin_wrapper..gin_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1537\u001b[0m op_cfg\u001b[38;5;241m.\u001b[39mupdate(operative_parameter_values)\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;66;03m# We call deepcopy for two reasons: First, to prevent the called function\u001b[39;00m\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;66;03m# from modifying any of the values in `_CONFIG` through references passed in\u001b[39;00m\n\u001b[1;32m 1541\u001b[0m \u001b[38;5;66;03m# via `new_kwargs`; Second, to facilitate evaluation of any\u001b[39;00m\n\u001b[1;32m 1542\u001b[0m \u001b[38;5;66;03m# `ConfigurableReference` instances buried somewhere inside `new_kwargs`.\u001b[39;00m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;66;03m# See the docstring on `ConfigurableReference.__deepcopy__` above for more\u001b[39;00m\n\u001b[1;32m 1544\u001b[0m \u001b[38;5;66;03m# details on the dark magic happening here.\u001b[39;00m\n\u001b[0;32m-> 1545\u001b[0m new_kwargs \u001b[38;5;241m=\u001b[39m \u001b[43mcopy\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdeepcopy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnew_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1547\u001b[0m \u001b[38;5;66;03m# Validate args marked as REQUIRED have been bound in the Gin config.\u001b[39;00m\n\u001b[1;32m 1548\u001b[0m missing_required_params \u001b[38;5;241m=\u001b[39m []\n", + "File \u001b[0;32m/usr/lib/python3.10/copy.py:146\u001b[0m, in \u001b[0;36mdeepcopy\u001b[0;34m(x, memo, _nil)\u001b[0m\n\u001b[1;32m 144\u001b[0m copier \u001b[38;5;241m=\u001b[39m _deepcopy_dispatch\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 145\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m copier \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 146\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43mcopier\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 147\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 148\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28missubclass\u001b[39m(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mtype\u001b[39m):\n", + "File \u001b[0;32m/usr/lib/python3.10/copy.py:231\u001b[0m, in \u001b[0;36m_deepcopy_dict\u001b[0;34m(x, memo, deepcopy)\u001b[0m\n\u001b[1;32m 229\u001b[0m memo[\u001b[38;5;28mid\u001b[39m(x)] \u001b[38;5;241m=\u001b[39m y\n\u001b[1;32m 230\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, value \u001b[38;5;129;01min\u001b[39;00m x\u001b[38;5;241m.\u001b[39mitems():\n\u001b[0;32m--> 231\u001b[0m y[deepcopy(key, memo)] \u001b[38;5;241m=\u001b[39m \u001b[43mdeepcopy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 232\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m y\n", + "File \u001b[0;32m/usr/lib/python3.10/copy.py:153\u001b[0m, in \u001b[0;36mdeepcopy\u001b[0;34m(x, memo, _nil)\u001b[0m\n\u001b[1;32m 151\u001b[0m copier \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mgetattr\u001b[39m(x, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m__deepcopy__\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m 152\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m copier \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 153\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43mcopier\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 155\u001b[0m reductor \u001b[38;5;241m=\u001b[39m dispatch_table\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;28mcls\u001b[39m)\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/gin/config.py:778\u001b[0m, in \u001b[0;36mConfigurableReference.__deepcopy__\u001b[0;34m(self, memo)\u001b[0m\n\u001b[1;32m 759\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Dishonestly implements the __deepcopy__ special method.\u001b[39;00m\n\u001b[1;32m 760\u001b[0m \n\u001b[1;32m 761\u001b[0m \u001b[38;5;124;03mWhen called, this returns either the `ConfigurableReference` instance itself\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 775\u001b[0m \u001b[38;5;124;03m `True`, returns the output of calling the underlying configurable.\u001b[39;00m\n\u001b[1;32m 776\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 777\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_evaluate:\n\u001b[0;32m--> 778\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_scoped_configurable_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 779\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_scoped_configurable_fn\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/gin/config.py:1545\u001b[0m, in \u001b[0;36m_make_gin_wrapper..gin_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1537\u001b[0m op_cfg\u001b[38;5;241m.\u001b[39mupdate(operative_parameter_values)\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;66;03m# We call deepcopy for two reasons: First, to prevent the called function\u001b[39;00m\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;66;03m# from modifying any of the values in `_CONFIG` through references passed in\u001b[39;00m\n\u001b[1;32m 1541\u001b[0m \u001b[38;5;66;03m# via `new_kwargs`; Second, to facilitate evaluation of any\u001b[39;00m\n\u001b[1;32m 1542\u001b[0m \u001b[38;5;66;03m# `ConfigurableReference` instances buried somewhere inside `new_kwargs`.\u001b[39;00m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;66;03m# See the docstring on `ConfigurableReference.__deepcopy__` above for more\u001b[39;00m\n\u001b[1;32m 1544\u001b[0m \u001b[38;5;66;03m# details on the dark magic happening here.\u001b[39;00m\n\u001b[0;32m-> 1545\u001b[0m new_kwargs \u001b[38;5;241m=\u001b[39m \u001b[43mcopy\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdeepcopy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnew_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1547\u001b[0m \u001b[38;5;66;03m# Validate args marked as REQUIRED have been bound in the Gin config.\u001b[39;00m\n\u001b[1;32m 1548\u001b[0m missing_required_params \u001b[38;5;241m=\u001b[39m []\n", + "File \u001b[0;32m/usr/lib/python3.10/copy.py:146\u001b[0m, in \u001b[0;36mdeepcopy\u001b[0;34m(x, memo, _nil)\u001b[0m\n\u001b[1;32m 144\u001b[0m copier \u001b[38;5;241m=\u001b[39m _deepcopy_dispatch\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 145\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m copier \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 146\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43mcopier\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 147\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 148\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28missubclass\u001b[39m(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mtype\u001b[39m):\n", + "File \u001b[0;32m/usr/lib/python3.10/copy.py:231\u001b[0m, in \u001b[0;36m_deepcopy_dict\u001b[0;34m(x, memo, deepcopy)\u001b[0m\n\u001b[1;32m 229\u001b[0m memo[\u001b[38;5;28mid\u001b[39m(x)] \u001b[38;5;241m=\u001b[39m y\n\u001b[1;32m 230\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, value \u001b[38;5;129;01min\u001b[39;00m x\u001b[38;5;241m.\u001b[39mitems():\n\u001b[0;32m--> 231\u001b[0m y[deepcopy(key, memo)] \u001b[38;5;241m=\u001b[39m \u001b[43mdeepcopy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 232\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m y\n", + "File \u001b[0;32m/usr/lib/python3.10/copy.py:153\u001b[0m, in \u001b[0;36mdeepcopy\u001b[0;34m(x, memo, _nil)\u001b[0m\n\u001b[1;32m 151\u001b[0m copier \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mgetattr\u001b[39m(x, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m__deepcopy__\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m 152\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m copier \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 153\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43mcopier\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 155\u001b[0m reductor \u001b[38;5;241m=\u001b[39m dispatch_table\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;28mcls\u001b[39m)\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/gin/config.py:778\u001b[0m, in \u001b[0;36mConfigurableReference.__deepcopy__\u001b[0;34m(self, memo)\u001b[0m\n\u001b[1;32m 759\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Dishonestly implements the __deepcopy__ special method.\u001b[39;00m\n\u001b[1;32m 760\u001b[0m \n\u001b[1;32m 761\u001b[0m \u001b[38;5;124;03mWhen called, this returns either the `ConfigurableReference` instance itself\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 775\u001b[0m \u001b[38;5;124;03m `True`, returns the output of calling the underlying configurable.\u001b[39;00m\n\u001b[1;32m 776\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 777\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_evaluate:\n\u001b[0;32m--> 778\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_scoped_configurable_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 779\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_scoped_configurable_fn\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/gin/config.py:670\u001b[0m, in \u001b[0;36m_decorate_with_scope..scope_decorator..scoping_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 667\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(fn_or_cls)\n\u001b[1;32m 668\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mscoping_wrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 669\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m config_scope(scope_components):\n\u001b[0;32m--> 670\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn_or_cls\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/gin/config.py:516\u001b[0m, in \u001b[0;36m_make_meta_call_wrapper..meta_call_wrapper\u001b[0;34m(new_cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 514\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m new_cls\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__bases__\u001b[39m \u001b[38;5;241m==\u001b[39m (\u001b[38;5;28mcls\u001b[39m,):\n\u001b[1;32m 515\u001b[0m new_cls \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mcls\u001b[39m\n\u001b[0;32m--> 516\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcls_meta\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mnew_cls\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/gin/config.py:1545\u001b[0m, in \u001b[0;36m_make_gin_wrapper..gin_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1537\u001b[0m op_cfg\u001b[38;5;241m.\u001b[39mupdate(operative_parameter_values)\n\u001b[1;32m 1539\u001b[0m \u001b[38;5;66;03m# We call deepcopy for two reasons: First, to prevent the called function\u001b[39;00m\n\u001b[1;32m 1540\u001b[0m \u001b[38;5;66;03m# from modifying any of the values in `_CONFIG` through references passed in\u001b[39;00m\n\u001b[1;32m 1541\u001b[0m \u001b[38;5;66;03m# via `new_kwargs`; Second, to facilitate evaluation of any\u001b[39;00m\n\u001b[1;32m 1542\u001b[0m \u001b[38;5;66;03m# `ConfigurableReference` instances buried somewhere inside `new_kwargs`.\u001b[39;00m\n\u001b[1;32m 1543\u001b[0m \u001b[38;5;66;03m# See the docstring on `ConfigurableReference.__deepcopy__` above for more\u001b[39;00m\n\u001b[1;32m 1544\u001b[0m \u001b[38;5;66;03m# details on the dark magic happening here.\u001b[39;00m\n\u001b[0;32m-> 1545\u001b[0m new_kwargs \u001b[38;5;241m=\u001b[39m \u001b[43mcopy\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdeepcopy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnew_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1547\u001b[0m \u001b[38;5;66;03m# Validate args marked as REQUIRED have been bound in the Gin config.\u001b[39;00m\n\u001b[1;32m 1548\u001b[0m missing_required_params \u001b[38;5;241m=\u001b[39m []\n", + "File \u001b[0;32m/usr/lib/python3.10/copy.py:146\u001b[0m, in \u001b[0;36mdeepcopy\u001b[0;34m(x, memo, _nil)\u001b[0m\n\u001b[1;32m 144\u001b[0m copier \u001b[38;5;241m=\u001b[39m _deepcopy_dispatch\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 145\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m copier \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 146\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43mcopier\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 147\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 148\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28missubclass\u001b[39m(\u001b[38;5;28mcls\u001b[39m, \u001b[38;5;28mtype\u001b[39m):\n", + "File \u001b[0;32m/usr/lib/python3.10/copy.py:231\u001b[0m, in \u001b[0;36m_deepcopy_dict\u001b[0;34m(x, memo, deepcopy)\u001b[0m\n\u001b[1;32m 229\u001b[0m memo[\u001b[38;5;28mid\u001b[39m(x)] \u001b[38;5;241m=\u001b[39m y\n\u001b[1;32m 230\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, value \u001b[38;5;129;01min\u001b[39;00m x\u001b[38;5;241m.\u001b[39mitems():\n\u001b[0;32m--> 231\u001b[0m y[deepcopy(key, memo)] \u001b[38;5;241m=\u001b[39m \u001b[43mdeepcopy\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 232\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m y\n", + "File \u001b[0;32m/usr/lib/python3.10/copy.py:153\u001b[0m, in \u001b[0;36mdeepcopy\u001b[0;34m(x, memo, _nil)\u001b[0m\n\u001b[1;32m 151\u001b[0m copier \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mgetattr\u001b[39m(x, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m__deepcopy__\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m 152\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m copier \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 153\u001b[0m y \u001b[38;5;241m=\u001b[39m \u001b[43mcopier\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmemo\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 155\u001b[0m reductor \u001b[38;5;241m=\u001b[39m dispatch_table\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;28mcls\u001b[39m)\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/gin/config.py:778\u001b[0m, in \u001b[0;36mConfigurableReference.__deepcopy__\u001b[0;34m(self, memo)\u001b[0m\n\u001b[1;32m 759\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Dishonestly implements the __deepcopy__ special method.\u001b[39;00m\n\u001b[1;32m 760\u001b[0m \n\u001b[1;32m 761\u001b[0m \u001b[38;5;124;03mWhen called, this returns either the `ConfigurableReference` instance itself\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 775\u001b[0m \u001b[38;5;124;03m `True`, returns the output of calling the underlying configurable.\u001b[39;00m\n\u001b[1;32m 776\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 777\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_evaluate:\n\u001b[0;32m--> 778\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_scoped_configurable_fn\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 779\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_scoped_configurable_fn\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/gin/config.py:670\u001b[0m, in \u001b[0;36m_decorate_with_scope..scope_decorator..scoping_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 667\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(fn_or_cls)\n\u001b[1;32m 668\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mscoping_wrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 669\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m config_scope(scope_components):\n\u001b[0;32m--> 670\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn_or_cls\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/gin/config.py:516\u001b[0m, in \u001b[0;36m_make_meta_call_wrapper..meta_call_wrapper\u001b[0;34m(new_cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 514\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m new_cls\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__bases__\u001b[39m \u001b[38;5;241m==\u001b[39m (\u001b[38;5;28mcls\u001b[39m,):\n\u001b[1;32m 515\u001b[0m new_cls \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mcls\u001b[39m\n\u001b[0;32m--> 516\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcls_meta\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__call__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mnew_cls\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/gin/config.py:1582\u001b[0m, in \u001b[0;36m_make_gin_wrapper..gin_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1579\u001b[0m new_kwargs\u001b[38;5;241m.\u001b[39mupdate(kwargs)\n\u001b[1;32m 1581\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1582\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfn\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mnew_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mnew_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1583\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e: \u001b[38;5;66;03m# pylint: disable=broad-except\u001b[39;00m\n\u001b[1;32m 1584\u001b[0m err_str \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/simulator/building.py:752\u001b[0m, in \u001b[0;36mFloorPlanBasedBuilding.__init__\u001b[0;34m(self, cv_size_cm, floor_height_cm, initial_temp, inside_air_properties, inside_wall_properties, building_exterior_properties, zone_map, zone_map_filepath, floor_plan, floor_plan_filepath, buffer_from_walls, convection_simulator, reset_temp_values)\u001b[0m\n\u001b[1;32m 743\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_density \u001b[38;5;241m=\u001b[39m _assign_interior_and_exterior_values(\n\u001b[1;32m 744\u001b[0m exterior_walls\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exterior_walls,\n\u001b[1;32m 745\u001b[0m interior_walls\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_interior_walls,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 748\u001b[0m interior_and_exterior_space_value\u001b[38;5;241m=\u001b[39minside_air_properties\u001b[38;5;241m.\u001b[39mdensity,\n\u001b[1;32m 749\u001b[0m )\n\u001b[1;32m 751\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdiffusers \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mzeros(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exterior_walls\u001b[38;5;241m.\u001b[39mshape)\n\u001b[0;32m--> 752\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdiffusers \u001b[38;5;241m=\u001b[39m \u001b[43m_assign_thermal_diffusers\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 753\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiffusers\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 754\u001b[0m \u001b[43m \u001b[49m\u001b[43mroom_dict\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_room_dict\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 755\u001b[0m \u001b[43m \u001b[49m\u001b[43minterior_walls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minterior_walls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 756\u001b[0m \u001b[43m \u001b[49m\u001b[43mbuffer_from_walls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbuffer_from_walls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 757\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 759\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cv_type \u001b[38;5;241m=\u001b[39m _construct_cv_type_array(\n\u001b[1;32m 760\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exterior_walls, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exterior_space\n\u001b[1;32m 761\u001b[0m )\n\u001b[1;32m 763\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mneighbors \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_calculate_neighbors()\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/simulator/building.py:343\u001b[0m, in \u001b[0;36m_assign_thermal_diffusers\u001b[0;34m(array_to_fill, room_dict, interior_walls, diffuser_spacing, buffer_from_walls)\u001b[0m\n\u001b[1;32m 340\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m key\u001b[38;5;241m.\u001b[39mstartswith(constants\u001b[38;5;241m.\u001b[39mROOM_STRING_DESIGNATOR):\n\u001b[1;32m 341\u001b[0m \u001b[38;5;28;01mcontinue\u001b[39;00m\n\u001b[0;32m--> 343\u001b[0m inds \u001b[38;5;241m=\u001b[39m \u001b[43mthermal_diffuser_utils\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdiffuser_allocation_switch\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 344\u001b[0m \u001b[43m \u001b[49m\u001b[43mroom_cv_indices\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 345\u001b[0m \u001b[43m \u001b[49m\u001b[43mspacing\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdiffuser_spacing\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 346\u001b[0m \u001b[43m \u001b[49m\u001b[43minterior_walls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minterior_walls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 347\u001b[0m \u001b[43m \u001b[49m\u001b[43mbuffer_from_walls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbuffer_from_walls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 348\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 349\u001b[0m num_inds \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(inds)\n\u001b[1;32m 350\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m ind \u001b[38;5;129;01min\u001b[39;00m inds:\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/simulator/thermal_diffuser_utils.py:232\u001b[0m, in \u001b[0;36mdiffuser_allocation_switch\u001b[0;34m(room_cv_indices, spacing, interior_walls, buffer_from_walls)\u001b[0m\n\u001b[1;32m 193\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdiffuser_allocation_switch\u001b[39m(\n\u001b[1;32m 194\u001b[0m room_cv_indices: Collection[Coordinates2D],\n\u001b[1;32m 195\u001b[0m spacing: \u001b[38;5;28mint\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m10\u001b[39m,\n\u001b[1;32m 196\u001b[0m interior_walls: Optional[building_utils\u001b[38;5;241m.\u001b[39mInteriorWalls] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 197\u001b[0m buffer_from_walls: \u001b[38;5;28mint\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m2\u001b[39m,\n\u001b[1;32m 198\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Collection[Coordinates2D]:\n\u001b[1;32m 199\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Switches between random and even assignment of thermal diffusers.\u001b[39;00m\n\u001b[1;32m 200\u001b[0m \n\u001b[1;32m 201\u001b[0m \u001b[38;5;124;03m A more in-depth explanation: here we provide a method for allocating thermal\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 229\u001b[0m \u001b[38;5;124;03m a list of inds to place diffusers.\u001b[39;00m\n\u001b[1;32m 230\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 232\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[43m_rectangularity_test\u001b[49m\u001b[43m(\u001b[49m\u001b[43mroom_cv_indices\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mthreshold\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0.1\u001b[39;49m\u001b[43m)\u001b[49m:\n\u001b[1;32m 233\u001b[0m inds \u001b[38;5;241m=\u001b[39m _determine_equal_spacing_for_thermal_diffusers(\n\u001b[1;32m 234\u001b[0m room_cv_indices, spacing\u001b[38;5;241m=\u001b[39mspacing, buffer_from_walls\u001b[38;5;241m=\u001b[39mbuffer_from_walls\n\u001b[1;32m 235\u001b[0m )\n\u001b[1;32m 236\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/simulator/thermal_diffuser_utils.py:95\u001b[0m, in \u001b[0;36m_rectangularity_test\u001b[0;34m(room_cv_indices, threshold)\u001b[0m\n\u001b[1;32m 92\u001b[0m num_cvs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(room_cv_indices)\n\u001b[1;32m 94\u001b[0m xs \u001b[38;5;241m=\u001b[39m [x \u001b[38;5;28;01mfor\u001b[39;00m (x, y) \u001b[38;5;129;01min\u001b[39;00m room_cv_indices]\n\u001b[0;32m---> 95\u001b[0m ys \u001b[38;5;241m=\u001b[39m [y \u001b[38;5;28;01mfor\u001b[39;00m (x, y) \u001b[38;5;129;01min\u001b[39;00m room_cv_indices]\n\u001b[1;32m 97\u001b[0m start_x, end_x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmin\u001b[39m(xs), \u001b[38;5;28mmax\u001b[39m(xs)\n\u001b[1;32m 98\u001b[0m start_y, end_y \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmin\u001b[39m(ys), \u001b[38;5;28mmax\u001b[39m(ys)\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/simulator/thermal_diffuser_utils.py:95\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 92\u001b[0m num_cvs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(room_cv_indices)\n\u001b[1;32m 94\u001b[0m xs \u001b[38;5;241m=\u001b[39m [x \u001b[38;5;28;01mfor\u001b[39;00m (x, y) \u001b[38;5;129;01min\u001b[39;00m room_cv_indices]\n\u001b[0;32m---> 95\u001b[0m ys \u001b[38;5;241m=\u001b[39m [y \u001b[38;5;28;01mfor\u001b[39;00m (x, y) \u001b[38;5;129;01min\u001b[39;00m room_cv_indices]\n\u001b[1;32m 97\u001b[0m start_x, end_x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmin\u001b[39m(xs), \u001b[38;5;28mmax\u001b[39m(xs)\n\u001b[1;32m 98\u001b[0m start_y, end_y \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmin\u001b[39m(ys), \u001b[38;5;28mmax\u001b[39m(ys)\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "import os\n", + "import tensorflow as tf\n", + "import tensorflow_probability as tfp # do not remove, despite not being used explicitly\n", + "import smart_control.reinforcement_learning.utils.config\n", + "from tf_agents.train import actor\n", + "from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment\n", + "from tf_agents.policies import py_tf_eager_policy\n", + "from tf_agents.environments import tf_py_environment\n", + "\n", + "\n", + "# policy_dir = os.path.join(os.path.join(\"experiment_results/sac-experiment_2025_03_22-19:13:39/policies\", \"greedy_policy\"))\n", + "# model = tf.saved_model.load(os.path.join(policy_dir))\n", + "\n", + "gin_config_path = \"/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-7_starttimestamp-2023-07-06.gin\"\n", + "env = create_and_setup_environment(gin_config_path)\n", + "tf_env = tf_py_environment.TFPyEnvironment(env)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "TimeStep(\n", + "{'discount': BoundedTensorSpec(shape=(), dtype=tf.float32, name='discount', minimum=array(0., dtype=float32), maximum=array(1., dtype=float32)),\n", + " 'observation': TensorSpec(shape=(53,), dtype=tf.float32, name='observation'),\n", + " 'reward': TensorSpec(shape=(), dtype=tf.float32, name='reward'),\n", + " 'step_type': TensorSpec(shape=(), dtype=tf.int32, name='step_type')})" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tf_env.time_step_spec()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "'TimeStep' object has no attribute 'action'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[9], line 10\u001b[0m\n\u001b[1;32m 7\u001b[0m policy_step \u001b[38;5;241m=\u001b[39m env\u001b[38;5;241m.\u001b[39mstep(action\u001b[38;5;241m=\u001b[39mtf\u001b[38;5;241m.\u001b[39mconstant(\u001b[38;5;241m0\u001b[39m, shape\u001b[38;5;241m=\u001b[39m(\u001b[38;5;241m2\u001b[39m,), dtype\u001b[38;5;241m=\u001b[39mtf\u001b[38;5;241m.\u001b[39mfloat32))\n\u001b[1;32m 9\u001b[0m \u001b[38;5;66;03m# Take a step in the environment to get next time step\u001b[39;00m\n\u001b[0;32m---> 10\u001b[0m next_time_step \u001b[38;5;241m=\u001b[39m tf_env\u001b[38;5;241m.\u001b[39mstep(\u001b[43mpolicy_step\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43maction\u001b[49m)\n\u001b[1;32m 12\u001b[0m \u001b[38;5;66;03m# Create a trajectory element (same format as what observers receive)\u001b[39;00m\n\u001b[1;32m 13\u001b[0m trajectory \u001b[38;5;241m=\u001b[39m Trajectory(\n\u001b[1;32m 14\u001b[0m step_type\u001b[38;5;241m=\u001b[39mtime_step\u001b[38;5;241m.\u001b[39mstep_type,\n\u001b[1;32m 15\u001b[0m observation\u001b[38;5;241m=\u001b[39mtime_step\u001b[38;5;241m.\u001b[39mobservation,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 21\u001b[0m next_observation\u001b[38;5;241m=\u001b[39mnext_time_step\u001b[38;5;241m.\u001b[39mobservation\n\u001b[1;32m 22\u001b[0m )\n", + "\u001b[0;31mAttributeError\u001b[0m: 'TimeStep' object has no attribute 'action'" + ] + } + ], + "source": [ + "from tf_agents.trajectories import Trajectory\n", + "\n", + "# Get initial time step from environment\n", + "time_step = tf_env.reset()\n", + "\n", + "# Get action from policy (your agent's policy)\n", + "next_time = env.step(action=tf.constant(0, shape=(2,), dtype=tf.float32))\n", + "\n", + "# Create a trajectory element (same format as what observers receive)\n", + "trajectory = Trajectory(\n", + " step_type=time_step.step_type,\n", + " observation=time_step.observation,\n", + " action=policy_step.action,\n", + " policy_info=policy_step.info,\n", + " next_step_type=next_time_step.step_type,\n", + " reward=next_time_step.reward,\n", + " discount=next_time_step.discount,\n", + " next_observation=next_time_step.observation\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from tf_agents.trajectories.trajectory import Trajectory\n", + "# Assuming you already have a tf_env object\n", + "\n", + "time_step_spec = tf_env.time_step_spec()\n", + "\n", + "trajectory_spec = Trajectory(\n", + " observation=tf_env.observation_spec(),\n", + " action=tf_env.action_spec(),\n", + " policy_info={}, # This depends on your policy\n", + " reward=tf_env.reward_spec(),\n", + " discount=tf_env.discount_spec(),\n", + " step_type=time_step_spec.step_type,\n", + " next_step_type=time_step_spec.step_type,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Trajectory(\n", + "{'action': BoundedTensorSpec(shape=(2,), dtype=tf.float32, name='action', minimum=array(-1., dtype=float32), maximum=array(1., dtype=float32)),\n", + " 'discount': BoundedArraySpec(shape=(), dtype=dtype('float32'), name='discount', minimum=0.0, maximum=1.0),\n", + " 'next_step_type': TensorSpec(shape=(), dtype=tf.int32, name='step_type'),\n", + " 'observation': TensorSpec(shape=(53,), dtype=tf.float32, name='observation'),\n", + " 'policy_info': {},\n", + " 'reward': TensorSpec(shape=(), dtype=tf.float32, name='reward'),\n", + " 'step_type': TensorSpec(shape=(), dtype=tf.int32, name='step_type')})" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trajectory_spec" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "step.observation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "step = env.step(action=tf.constant(0, shape=(2,), dtype=tf.float32))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "smart_control.environment.environment.Environment" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(env)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "BoundedArraySpec(shape=(2,), dtype=dtype('float32'), name='action', minimum=-1.0, maximum=1.0)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "env.action_spec()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "ArraySpec(shape=(53,), dtype=dtype('float32'), name='observation')" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "env.observation_spec()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import tensorflow as tf\n", + "from tf_agents.policies import tf_policy\n", + "from tf_agents.trajectories import policy_step, time_step as ts\n", + "import tensorflow_probability as tfp\n", + "\n", + "class SavedModelPolicy(tf_policy.TFPolicy):\n", + " \"\"\"Policy that uses a saved TF-Agents policy model.\"\"\"\n", + "\n", + " def __init__(self, \n", + " saved_model_path,\n", + " time_step_spec,\n", + " action_spec,\n", + " name=None):\n", + " \"\"\"Initialize a SavedModelPolicy.\n", + " \n", + " Args:\n", + " saved_model_path: Path to the saved model.\n", + " time_step_spec: A `TimeStep` spec of the expected time_steps.\n", + " action_spec: A nest of BoundedTensorSpec representing the actions.\n", + " name: The name of this policy.\n", + " \"\"\"\n", + " self._saved_model_path = saved_model_path\n", + " \n", + " # Load the saved policy\n", + " self._loaded_model = tf.saved_model.load(saved_model_path)\n", + " \n", + " # Print available signatures to help with debugging\n", + " print(f\"Available signatures: {list(self._loaded_model.signatures.keys())}\")\n", + " \n", + " # Try to get the policy_step_spec from the saved model\n", + " try:\n", + " self._policy_state_spec = self._loaded_model.policy_state_spec()\n", + " except (AttributeError, TypeError):\n", + " # If not available, use empty tuple as default\n", + " self._policy_state_spec = ()\n", + " \n", + " super(SavedModelPolicy, self).__init__(\n", + " time_step_spec=time_step_spec,\n", + " action_spec=action_spec,\n", + " policy_state_spec=self._policy_state_spec,\n", + " name=name or 'SavedModelPolicy')\n", + " \n", + " def _action(self, time_step, policy_state, seed):\n", + " \"\"\"Implementation of `action`.\"\"\"\n", + " # Convert the time_step to tensors in case they're numpy arrays\n", + " observation = tf.nest.map_structure(tf.convert_to_tensor, time_step.observation)\n", + " step_type = tf.convert_to_tensor(time_step.step_type)\n", + " reward = tf.convert_to_tensor(time_step.reward)\n", + " discount = tf.convert_to_tensor(time_step.discount)\n", + " \n", + " # Recreate the time step with tensors\n", + " time_step_tensors = ts.TimeStep(\n", + " step_type=step_type,\n", + " reward=reward,\n", + " discount=discount,\n", + " observation=observation\n", + " )\n", + " \n", + " # For debugging - use in non-tf.function context if needed\n", + " # print(f\"Time step: {time_step_tensors}\")\n", + " \n", + " # Try using the action function directly\n", + " try:\n", + " if hasattr(self._loaded_model, 'action'):\n", + " print(\"Yoooo\")\n", + " action_step = self._loaded_model.action(time_step_tensors)\n", + " return action_step\n", + " # Try using the __call__ method\n", + " elif callable(self._loaded_model):\n", + " result = self._loaded_model(time_step_tensors)\n", + " if isinstance(result, policy_step.PolicyStep):\n", + " print(\"Yo\")\n", + " return result\n", + " else:\n", + " print(\"No\")\n", + " return policy_step.PolicyStep(action=result, state=policy_state, info=())\n", + " except Exception as e:\n", + " print(\"error in method 1\")\n", + " tf.print(\"Error in action method:\", e)\n", + " \n", + " # If the above fails, try the serving_default signature\n", + " try:\n", + " serving_fn = self._loaded_model.signatures.get('serving_default')\n", + " if serving_fn is not None:\n", + " # TF-Agents models often expect flattened time_steps\n", + " inputs = {}\n", + " inputs['discount'] = time_step_tensors.discount\n", + " inputs['observation'] = time_step_tensors.observation\n", + " inputs['reward'] = time_step_tensors.reward\n", + " inputs['step_type'] = time_step_tensors.step_type\n", + " \n", + " result = serving_fn(**inputs)\n", + " # Extract the action - key might be 'action' or something else\n", + " action_key = next((k for k in result.keys() if 'action' in k.lower()), \n", + " next(iter(result.keys())))\n", + " return policy_step.PolicyStep(\n", + " action=result[action_key], \n", + " state=policy_state, \n", + " info=()\n", + " )\n", + " except Exception as e:\n", + " print(\"error in method 2\")\n", + " tf.print(\"Error in serving_default signature:\", e)\n", + " \n", + " # If all methods fail, raise an error\n", + " tf.print(\"All methods to get actions failed. Check saved model format.\")\n", + " return policy_step.PolicyStep(\n", + " action=tf.zeros_like(self.action_spec), # Default zero action\n", + " state=policy_state, \n", + " info=()\n", + " )\n", + " \n", + " def _distribution(self, time_step, policy_state):\n", + " \"\"\"Implementation of `distribution`.\"\"\"\n", + " # For greedy policies, we can just use the action and create a deterministic distribution\n", + " action_step = self._action(time_step, policy_state, seed=None)\n", + " \n", + " def _to_distribution(action):\n", + " return tfp.distributions.Deterministic(loc=action)\n", + " \n", + " action_distribution = tf.nest.map_structure(_to_distribution, action_step.action)\n", + " \n", + " return policy_step.PolicyStep(\n", + " action=action_distribution, \n", + " state=action_step.state, \n", + " info=action_step.info\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "env.time_step_spec()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Available signatures: ['action', 'get_initial_state', 'get_train_step', 'get_metadata']\n" + ] + } + ], + "source": [ + "from smart_control.reinforcement_learning.observers.composite_observer import \\\n", + " CompositeObserver\n", + "from smart_control.reinforcement_learning.observers.print_status_observer import \\\n", + " PrintStatusObserver\n", + "from tf_agents.environments import tf_py_environment\n", + " \n", + "tf_env = tf_py_environment.TFPyEnvironment(env)\n", + "\n", + "print_observer = PrintStatusObserver(\n", + " status_interval_steps=1,\n", + " environment=tf_env,\n", + " replay_buffer=None\n", + " )\n", + "\n", + "composite_observer = CompositeObserver(\n", + " observers=[print_observer]\n", + " )\n", + "\n", + "\n", + "policy = SavedModelPolicy(policy_dir, env.time_step_spec(), env.action_spec())\n", + "\n", + "eval_step = tf.Variable(0, trainable=False, dtype=tf.int64)\n", + "\n", + "\n", + "eval_actor = actor.Actor(\n", + " env,\n", + " py_tf_eager_policy.PyTFEagerPolicy(policy),\n", + " eval_step,\n", + " episodes_per_run=1,\n", + " summary_dir='eval',\n", + " observers=[composite_observer],\n", + " summary_interval=1\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import logging\n", + "\n", + "# Configure logging\n", + "logging.basicConfig(\n", + " level=logging.INFO,\n", + " format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]'\n", + ")\n", + "logger = logging.getLogger(__name__)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Reset complete. Initial time_step: TimeStep(\n", + "{'discount': ,\n", + " 'observation': ,\n", + " 'reward': ,\n", + " 'step_type': })\n", + "Yoooo\n", + "First action: [[ 0.98319685 -0.9942127 ]]\n", + "Step complete. Next time_step: TimeStep(\n", + "{'discount': ,\n", + " 'observation': ,\n", + " 'reward': ,\n", + " 'step_type': })\n", + "Yoooo\n", + "Second action: [[-0.2766815 -0.9552871]]\n", + "Second step complete: TimeStep(\n", + "{'discount': ,\n", + " 'observation': ,\n", + " 'reward': ,\n", + " 'step_type': })\n" + ] + } + ], + "source": [ + "# Manual stepping test\n", + "time_step = tf_env.reset()\n", + "print(\"Reset complete. Initial time_step:\", time_step)\n", + "\n", + "# Get first action\n", + "action_step = policy.action(time_step)\n", + "print(\"First action:\", action_step.action.numpy())\n", + "\n", + "# Step the environment\n", + "next_time_step = tf_env.step(action_step.action)\n", + "print(\"Step complete. Next time_step:\", next_time_step)\n", + "\n", + "# Try one more action and step if not terminal\n", + "if not next_time_step.is_last():\n", + " action_step = policy.action(next_time_step)\n", + " print(\"Second action:\", action_step.action.numpy())\n", + " next_time_step = tf_env.step(action_step.action)\n", + " print(\"Second step complete:\", next_time_step)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Yoooo\n", + "Yoooo\n", + "Yoooo\n", + "Yoooo\n", + "Yoooo\n", + "Yoooo\n", + "Yoooo\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[6], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43meval_actor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/tf_agents/train/actor.py:167\u001b[0m, in \u001b[0;36mActor.run\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 166\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrun\u001b[39m(\u001b[38;5;28mself\u001b[39m):\n\u001b[0;32m--> 167\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_time_step, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_policy_state \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_driver\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrun\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 168\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_time_step\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_policy_state\u001b[49m\n\u001b[1;32m 169\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 171\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m (\n\u001b[1;32m 172\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_write_summaries\n\u001b[1;32m 173\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_summary_interval \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m 174\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_train_step \u001b[38;5;241m-\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_last_summary \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_summary_interval\n\u001b[1;32m 175\u001b[0m ):\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mwrite_metric_summaries()\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/tf_agents/drivers/py_driver.py:120\u001b[0m, in \u001b[0;36mPyDriver.run\u001b[0;34m(self, time_step, policy_state)\u001b[0m\n\u001b[1;32m 117\u001b[0m policy_state \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_policy\u001b[38;5;241m.\u001b[39mget_initial_state(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39menv\u001b[38;5;241m.\u001b[39mbatch_size \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 119\u001b[0m action_step \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpolicy\u001b[38;5;241m.\u001b[39maction(time_step, policy_state)\n\u001b[0;32m--> 120\u001b[0m next_time_step \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43menv\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstep\u001b[49m\u001b[43m(\u001b[49m\u001b[43maction_step\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43maction\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 122\u001b[0m \u001b[38;5;66;03m# When using observer (for the purpose of training), only the previous\u001b[39;00m\n\u001b[1;32m 123\u001b[0m \u001b[38;5;66;03m# policy_state is useful. Therefore substitube it in the PolicyStep and\u001b[39;00m\n\u001b[1;32m 124\u001b[0m \u001b[38;5;66;03m# consume it w/ the observer.\u001b[39;00m\n\u001b[1;32m 125\u001b[0m action_step_with_previous_state \u001b[38;5;241m=\u001b[39m action_step\u001b[38;5;241m.\u001b[39m_replace(state\u001b[38;5;241m=\u001b[39mpolicy_state)\n", + "File \u001b[0;32m~/projects/sbsim/.venv/lib/python3.10/site-packages/tf_agents/environments/py_environment.py:236\u001b[0m, in \u001b[0;36mPyEnvironment.step\u001b[0;34m(self, action)\u001b[0m\n\u001b[1;32m 231\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_current_time_step \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mshould_reset(\n\u001b[1;32m 232\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_current_time_step\n\u001b[1;32m 233\u001b[0m ):\n\u001b[1;32m 234\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mreset()\n\u001b[0;32m--> 236\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_current_time_step \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_step\u001b[49m\u001b[43m(\u001b[49m\u001b[43maction\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 237\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_current_time_step\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/environment/environment.py:1297\u001b[0m, in \u001b[0;36mEnvironment._step\u001b[0;34m(self, action)\u001b[0m\n\u001b[1;32m 1291\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_metrics_writer\u001b[38;5;241m.\u001b[39mwrite_action_response(\n\u001b[1;32m 1292\u001b[0m action_response, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcurrent_simulation_timestamp\n\u001b[1;32m 1293\u001b[0m )\n\u001b[1;32m 1295\u001b[0m last_timestamp \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcurrent_simulation_timestamp\n\u001b[0;32m-> 1297\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbuilding\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwait_time\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1299\u001b[0m observation \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_observation()\n\u001b[1;32m 1301\u001b[0m \u001b[38;5;66;03m# We need to signal to the Actor that action was rejected and not to\u001b[39;00m\n\u001b[1;32m 1302\u001b[0m \u001b[38;5;66;03m# append this observation/action request to the trajectory.\u001b[39;00m\n\u001b[1;32m 1303\u001b[0m \u001b[38;5;66;03m# Since TimeStep cannot be extended and it is checked for NaNs,\u001b[39;00m\n\u001b[1;32m 1304\u001b[0m \u001b[38;5;66;03m# we apply -inf as a reward to indicate the rejection.\u001b[39;00m\n\u001b[1;32m 1305\u001b[0m \u001b[38;5;66;03m# This requires a specialized Actor extension class to handle the\u001b[39;00m\n\u001b[1;32m 1306\u001b[0m \u001b[38;5;66;03m# rejection.\u001b[39;00m\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/simulator/simulator_building.py:268\u001b[0m, in \u001b[0;36mSimulatorBuilding.wait_time\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 266\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Returns after a certain amount of time.\"\"\"\u001b[39;00m\n\u001b[1;32m 267\u001b[0m \u001b[38;5;66;03m# Update the building state.\u001b[39;00m\n\u001b[0;32m--> 268\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_simulator\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mexecute_step_sim\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/simulator/simulator_flexible_floor_plan.py:156\u001b[0m, in \u001b[0;36mSimulatorFlexibleGeometries.execute_step_sim\u001b[0;34m(self, video_filename)\u001b[0m\n\u001b[1;32m 150\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfinite_differences_timestep(\n\u001b[1;32m 151\u001b[0m ambient_temperature\u001b[38;5;241m=\u001b[39mambient_temperature,\n\u001b[1;32m 152\u001b[0m convection_coefficient\u001b[38;5;241m=\u001b[39mconvection_coefficient,\n\u001b[1;32m 153\u001b[0m )\n\u001b[1;32m 155\u001b[0m \u001b[38;5;66;03m# Simulate airflow\u001b[39;00m\n\u001b[0;32m--> 156\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_building\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mapply_convection\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 158\u001b[0m \u001b[38;5;66;03m# Reset the air handler and boiler flow rate demand before accumulating.\u001b[39;00m\n\u001b[1;32m 159\u001b[0m hvac\u001b[38;5;241m.\u001b[39mair_handler\u001b[38;5;241m.\u001b[39mreset_demand()\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/simulator/building.py:893\u001b[0m, in \u001b[0;36mFloorPlanBasedBuilding.apply_convection\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 891\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mapply_convection\u001b[39m(\u001b[38;5;28mself\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 892\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_convection_simulator \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 893\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_convection_simulator\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mapply_convection\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_room_dict\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtemp\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/simulator/stochastic_convection_simulator.py:81\u001b[0m, in \u001b[0;36mStochasticConvectionSimulator.apply_convection\u001b[0;34m(self, room_dict, temp)\u001b[0m\n\u001b[1;32m 79\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_shuffle_no_max_dist(v, temp)\n\u001b[1;32m 80\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m---> 81\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_shuffle_max_dist\u001b[49m\u001b[43m(\u001b[49m\u001b[43mp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdistance\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtemp\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/projects/sbsim/smart_control/simulator/stochastic_convection_simulator.py:136\u001b[0m, in \u001b[0;36mStochasticConvectionSimulator._shuffle_max_dist\u001b[0;34m(self, p, v, max_dist, temp)\u001b[0m\n\u001b[1;32m 133\u001b[0m candidates\u001b[38;5;241m.\u001b[39mappend(cv_2)\n\u001b[1;32m 134\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_cache[max_dist][val] \u001b[38;5;241m=\u001b[39m candidates\n\u001b[0;32m--> 136\u001b[0m swap_list\u001b[38;5;241m.\u001b[39mappend((val, \u001b[43mrandom\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mchoice\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcandidates\u001b[49m\u001b[43m)\u001b[49m))\n\u001b[1;32m 137\u001b[0m random\u001b[38;5;241m.\u001b[39mshuffle(swap_list)\n\u001b[1;32m 139\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i, _ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(swap_list):\n", + "File \u001b[0;32m/usr/lib/python3.10/random.py:378\u001b[0m, in \u001b[0;36mRandom.choice\u001b[0;34m(self, seq)\u001b[0m\n\u001b[1;32m 376\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Choose a random element from a non-empty sequence.\"\"\"\u001b[39;00m\n\u001b[1;32m 377\u001b[0m \u001b[38;5;66;03m# raises IndexError if seq is empty\u001b[39;00m\n\u001b[0;32m--> 378\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m seq[\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_randbelow\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mseq\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m]\n", + "File \u001b[0;32m/usr/lib/python3.10/random.py:245\u001b[0m, in \u001b[0;36mRandom._randbelow_with_getrandbits\u001b[0;34m(self, n)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[1;32m 244\u001b[0m getrandbits \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgetrandbits\n\u001b[0;32m--> 245\u001b[0m k \u001b[38;5;241m=\u001b[39m \u001b[43mn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbit_length\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# don't use (n-1) here because n can be 1\u001b[39;00m\n\u001b[1;32m 246\u001b[0m r \u001b[38;5;241m=\u001b[39m getrandbits(k) \u001b[38;5;66;03m# 0 <= r < 2**k\u001b[39;00m\n\u001b[1;32m 247\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m r \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m n:\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "eval_actor.run()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['sac_train-summer_eval-08-06_2025_04_15-01:43:44', 'schedule_eval-09-06_2025_04_14-23:56:28', 'schedule_eval-08-06_2025_04_15-01:46:14', 'ddpg_train-summer_eval-10-06_2025_04_14-21:49:08', 'schedule_eval-10-06_2025_04_14-21:49:09', 'ddpg_train-summer_eval-09-06_2025_04_14-23:54:58', 'sac_train-summer_eval-09-06_2025_04_14-23:53:57', 'schedule_eval-winter_2025_04_14-12:27:11', 'sac_train-summer_eval-winter_2025_04_14-10:08:56', 'ddpg_train-summer_eval-winter_2025_04_14-12:25:39', 'sac_train-summer_eval-10-06_2025_04_14-21:49:09', 'ddpg_train-summer_eval-08-06_2025_04_15-01:44:58'])" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import os\n", + "import numpy as np\n", + "\n", + "data = {}\n", + "\n", + "for name in os.listdir(\"eval_results\"):\n", + " data[name] = read_json_file(f\"eval_results/{name}/trajectories/episode_0.json\")\n", + "\n", + "data.keys()\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "plt.plot(np.cumsum(data[\"schedule_eval-winter_2025_04_14-12:27:11\"][\"rewards\"]), label=\"schedule\")\n", + "plt.plot(np.cumsum(data[\"ddpg_train-summer_eval-winter_2025_04_14-12:25:39\"][\"rewards\"]), label=\"ddpg\")\n", + "plt.plot(np.cumsum(data[\"sac_train-summer_eval-winter_2025_04_14-10:08:56\"][\"rewards\"]), label=\"sac\")\n", + "plt.grid()\n", + "plt.xlabel(\"Time step\")\n", + "plt.ylabel(\"Cumulative reward\")\n", + "plt.legend(loc=\"best\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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iXhzaF3JUA1GNx7fmJyM9DgdVn0mc+VkpGrKik12wTCLbJcDOS5HAlNePNkuB8IMi1y3E1lhIMhyPno5bm31KOFwOFBVVYVly5bhm2++wauvvor7778fixYtkhynNHoul0vymaIoMAy3RrW3t+OSSy7BU089FVeuV69e2LNnj6o+UhQVt+4k2v4mWbvpBhGyjmNMCS60O7owpn1fyKdLyAqEjeZ918ah4BLk9p+HjvADpjm+64NFiA0lP8yy1jMfFgAonWdikiaLJCM1gEwyUjvMhYbGPUFRiqJwzjnnYNSoUXjssccwcOBAVFVVYcCAAVjxv8UYdcbZupo89dRT8emnn2LAgAFwOuNFicGDB8PlcmH16tXo168fAODYsWPYtWsXLrjgAuG4nj17ora2Vvi8e/dudHR06G433dDVw5aWFqxZswYNDQ2CVMtz3XXXmdIxgjYy6QU2Hff/MmODZC2ntdH3TzhygR89H4NxmpXCQd+4SjRZGbilSzqhPbrQXE2W3ditobR670IrseK6r169GosWLcLkyZORk5ODbdu2obGxESNGjMBDDz2E3/3+98gv6o7LL70YdMiP5cuX409/+pOquv/4xz/ijTfewNVXX427774bJSUl2LNnDz766CO8+eabyM/Px0033YS77roL3bt3R2lpKf72t7+BpqURtRMnTsQrr7yC8ePHIxwO45577onToGlp1+FQb05NBZqFrK+//hrXXHMN2tvbUVhYKFlUKIoiQlbKSZd94zIzGSnFsmApCv6w/s11jCyOYVYakq0vulA74jlg1PE9XfbPzETk9i40gl3javfehUZN5nZqcwHuHjZFyIq5/oWFhVi6dCleeOEFeDwe9O/fH3PmzMGMGTMAAIcaW/HW66/g+cfuR48ePfCrX/1KdVO9e/fG8uXLcc8992Dq1Knw+/3o378/pk+fLghSzzzzjGDeKygowJ133onW1lZJPXPmzMGNN96I8847D71798aLL76IdevWGWo3ndAsZN1555347W9/i8cffxy5ublW9ImQIsy4qe1+5zZ6Dtksi06KSrm5kMdJuREQnYMd0YXiFA6pxm4h2wyMmXlM2lbHzGSktt/VqYVFvAY508yFSiVHjBiBefPmgWEYeDweFBYWSgSRX1//W/zsquvQtyQXxbnupP1paWmRfB46dCg+++wzxX7l5+fj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "plt.plot(np.array(data[\"schedule_eval-winter_2025_04_14-12:27:11\"][\"actions\"])[:, 1], label=\"schedule\")\n", + "plt.plot(np.array(data[\"ddpg_train-summer_eval-winter_2025_04_14-12:25:39\"][\"actions\"])[:, 1], label=\"ddpg\")\n", + "plt.plot(np.array(data[\"sac_train-summer_eval-winter_2025_04_14-10:08:56\"][\"actions\"])[:, 1], label=\"sac\")\n", + "plt.grid()\n", + "plt.xlabel(\"Time step\")\n", + "plt.ylabel(\"Action\")\n", + "plt.legend(loc=\"best\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "JSON data loaded successfully:\n", + "{'actions': [[0.05141826719045639, -0.6121522784233093], [-0.11327581852674484, -0.6630973219871521], [-0.13840782642364502, -0.6748526692390442], [-0.14648683369159698, -0.6818115711212158], [-0.15232370793819427, -0.6869191527366638], [-0.15531286597251892, -0.6893839836120605], [-0.14321601390838623, -0.6872460246086121], [-0.12731531262397766, -0.6833476424217224], [-0.11544112116098404, -0.6791760921478271], [-0.10488183051347733, -0.674959659576416], [-0.12044623494148254, -0.6776118278503418], [-0.13665105402469635, -0.6833900809288025], [-0.15867677330970764, -0.6921543478965759], [-0.17316029965877533, -0.7090639472007751], [-0.17965257167816162, -0.723373532295227], [-0.17267592251300812, -0.7356199622154236], [-0.1608540266752243, -0.7464838027954102], [-0.16377440094947815, -0.7509088516235352], [-0.18008318543434143, -0.7572010159492493], [-0.1940593421459198, -0.7642082571983337], [-0.20833778381347656, -0.7687699198722839], [-0.22335697710514069, -0.7716754674911499], [-0.23832200467586517, -0.7741525173187256], [-0.2589196562767029, -0.7783808708190918], [-0.2780683636665344, -0.7846173048019409], [-0.2771809995174408, -0.7798896431922913], [-0.28618764877319336, -0.7784956097602844], [-0.30157437920570374, -0.7761539816856384], [-0.30947116017341614, -0.7685626149177551], [-0.31445398926734924, -0.7555325627326965], [-0.3214537799358368, -0.741216242313385], [-0.32596713304519653, -0.7243398427963257], [-0.3142695724964142, -0.7057026028633118], [-0.30710533261299133, -0.6931498646736145], [-0.2983246445655823, -0.6823902130126953], [-0.2850662171840668, -0.6698333024978638], [-0.2678494453430176, -0.6575174927711487], [-0.23915886878967285, -0.633227527141571], [-0.22967611253261566, -0.6010925769805908], [-0.2383459210395813, -0.5732322931289673], [-0.22610747814178467, -0.5605707764625549], [-0.21614380180835724, -0.5573197603225708], [-0.21049177646636963, -0.5571770668029785], [-0.21168488264083862, -0.5569368004798889], [-0.2228454202413559, -0.558294951915741], [-0.24453461170196533, -0.5512051582336426], [-0.2662014961242676, -0.5420629382133484], [-0.2896568477153778, -0.5324952602386475], [-0.31056836247444153, -0.5225206613540649], [-0.33390024304389954, -0.4998711049556732], [-0.3366369605064392, -0.48392584919929504], [-0.3440856635570526, -0.4665409326553345], [-0.34957125782966614, -0.44958871603012085], [-0.3647770881652832, -0.46223729848861694], [-0.3753732442855835, -0.4697172939777374], [-0.37965577840805054, -0.4715125858783722], [-0.38227298855781555, -0.47110456228256226], [-0.381894052028656, -0.4670669734477997], [-0.37197601795196533, -0.4588160216808319], [-0.3573339581489563, -0.4472651481628418], [-0.3403759300708771, -0.43294259905815125], [-0.3194482624530792, -0.42734116315841675], [-0.3019009530544281, -0.42151719331741333], [-0.29550567269325256, -0.4246274530887604], [-0.2973085641860962, -0.4328361749649048], [-0.2980062663555145, -0.44118601083755493], [-0.301137775182724, -0.44665947556495667], [-0.3038661479949951, -0.4543018937110901], [-0.5870864391326904, -0.41957756876945496], [-0.5867049694061279, -0.44553980231285095], [-0.5934677124023438, -0.44747835397720337], [-0.5940892696380615, -0.4481683075428009], [-0.5914190411567688, -0.4436752498149872], [-0.5888447165489197, -0.4444657564163208], [-0.5845730304718018, -0.4436151385307312], [-0.5767413377761841, -0.44601672887802124], [-0.5749466419219971, -0.4474552273750305], [-0.5713390111923218, -0.4472314417362213], [-0.5636346340179443, -0.44623470306396484], [-0.549997866153717, -0.4423114061355591], [-0.5336175560951233, -0.44269081950187683], [-0.5154074430465698, -0.44379618763923645], [-0.4984736144542694, -0.44620490074157715], [-0.4862668216228485, -0.4500372111797333], [-0.47766003012657166, -0.45469775795936584], [-0.466687947511673, -0.4609360098838806], [-0.4544493854045868, -0.47070780396461487], [-0.44394245743751526, -0.48171737790107727], [-0.4309689700603485, -0.4950586259365082], [-0.41731613874435425, -0.48858317732810974], [-0.41135144233703613, -0.47797641158103943], [-0.4056589901447296, -0.46914997696876526], [-0.40225183963775635, -0.46177446842193604], [-0.3976026773452759, -0.4541158378124237], [-0.3931175172328949, -0.44726869463920593], [-0.3868550956249237, -0.4408833980560303], [-0.3718613386154175, -0.4346553087234497], [-0.3560408055782318, -0.42814478278160095], [-0.34289029240608215, -0.42513900995254517], [-0.3283576965332031, -0.43214625120162964], [-0.316357284784317, -0.4375302791595459], [-0.29079076647758484, -0.4555645287036896], [-0.2655179500579834, -0.4785207509994507], [-0.24721279740333557, -0.5134531259536743], [-0.2627224624156952, -0.5621499419212341], [-0.30802392959594727, -0.5882855653762817], [-0.35342782735824585, -0.6162610650062561], [-0.37517404556274414, -0.635759174823761], [-0.39483925700187683, -0.6544403433799744], [-0.40514206886291504, -0.6747294664382935], [-0.4172566831111908, -0.692237138748169], [-0.419836163520813, -0.7104113698005676], [-0.41943278908729553, -0.7308590412139893], [-0.42632073163986206, -0.7375954389572144], [-0.4338403344154358, -0.7440576553344727], [-0.46305570006370544, -0.7479463219642639], [0.02202726900577545, -0.6392096877098083], [0.059075381606817245, -0.5630260705947876], [0.056634169071912766, -0.5464737415313721], [0.03072984889149666, -0.5448683500289917], [0.6467742323875427, -0.5969371795654297], [0.5490125417709351, -0.5918856859207153], [0.5310386419296265, -0.5574880242347717], [0.4962277114391327, -0.5105578303337097], [0.4563785195350647, -0.4620492160320282], [0.3815089464187622, -0.39320310950279236], [0.3396725654602051, -0.332939475774765], [0.27301082015037537, -0.28549128770828247], [0.23349055647850037, -0.24194234609603882], [0.21350429952144623, -0.21073414385318756], [0.19214774668216705, -0.19179008901119232], [0.17102091014385223, -0.17652523517608643], [0.152085080742836, -0.16002093255519867], [0.12510527670383453, -0.15444457530975342], [0.10024962574243546, -0.1463182270526886], [0.09827073663473129, -0.12359807640314102], [0.10691484808921814, -0.10090573877096176], [0.12390851229429245, -0.014435531571507454], [0.16367918252944946, 0.06174424663186073], [0.23861515522003174, 0.12749283015727997], [0.33450812101364136, 0.159678116440773], [0.33605411648750305, 0.13240768015384674], [0.3328230381011963, 0.11685668677091599], [0.3294978737831116, 0.09910892695188522], [0.3288775682449341, 0.08103295415639877], [0.33820652961730957, 0.06781800091266632], [0.34791821241378784, 0.05454115569591522], [0.3571397364139557, 0.04275115951895714], [0.3672116994857788, 0.03185302019119263], [0.3481021523475647, 0.04278842732310295], [0.35439127683639526, 0.02960185520350933], [0.3555597960948944, 0.017194578424096107], [0.35690298676490784, 0.0009604316437616944], [0.3502305746078491, -0.011234287172555923], [0.3381730318069458, -0.024425065144896507], [0.33285263180732727, -0.038003649562597275], [0.33959463238716125, -0.041474904865026474], [0.3332846164703369, -0.044472239911556244], [0.327295184135437, -0.05532620847225189], [0.30925822257995605, -0.06732235103845596], [0.28484171628952026, -0.08070474117994308], [0.227289617061615, -0.10447575896978378], [0.1597498655319214, -0.12824831902980804], [0.09520773589611053, -0.15427620708942413], [-0.04716430604457855, -0.0796085000038147], [-0.0768258199095726, -0.09913555532693863], [-0.14943121373653412, -0.10497841238975525], [-0.20326948165893555, -0.11265745759010315], [-0.7301385998725891, -0.29178401827812195], [-0.7806881666183472, -0.31011924147605896], [-0.7876364588737488, -0.3208821713924408], [-0.7931877970695496, -0.3368401527404785], [-0.699181079864502, -0.39201462268829346], [-0.7049300074577332, -0.4016306400299072], [-0.6989882588386536, -0.41047632694244385], [-0.6930559873580933, -0.4141160547733307], [-0.6893379092216492, -0.41566020250320435], [-0.6783626079559326, -0.41678494215011597], [-0.6556053757667542, -0.41378629207611084], [-0.6325631141662598, -0.4151366651058197], [-0.6070502400398254, -0.4192410111427307], [-0.5859931111335754, -0.4166659116744995], [-0.5677704215049744, -0.41786620020866394], [-0.560740053653717, -0.41513603925704956], [-0.5457049012184143, -0.4139307141304016], [-0.5000560879707336, -0.4155946969985962], [-0.4341304302215576, -0.4320802688598633], [-0.3666921854019165, -0.45392367243766785], [-0.32005441188812256, -0.47941240668296814], [-0.27686309814453125, -0.49843546748161316], [-0.2382589429616928, -0.515422523021698], [-0.207358255982399, -0.5299216508865356], [-0.17697541415691376, -0.5442424416542053], [-0.15554845333099365, -0.5457009077072144], [-0.13495402038097382, -0.5496546626091003], [-0.11159869283437729, -0.5496239066123962], [-0.10228129476308823, -0.5545715093612671], [-0.10456828773021698, -0.5612176060676575], [-0.12981629371643066, -0.5702782869338989], [-0.15121088922023773, -0.5776262283325195], [-0.15393781661987305, -0.5810529589653015], [-0.15006697177886963, -0.5812932252883911], [-0.14371341466903687, -0.5869626402854919], [-0.12933579087257385, -0.5848036408424377], [-0.11930352449417114, -0.5867462754249573], [-0.0898120254278183, -0.6164647936820984], [-0.08443709462881088, -0.6423267722129822], [-0.07943630963563919, -0.6734828352928162], [-0.07281095534563065, -0.7059138417243958], [-0.06533887982368469, -0.7130613327026367], [-0.07058224827051163, -0.7194989919662476], [-0.1190931424498558, -0.7325957417488098], [0.6954252123832703, -0.7403557300567627], [0.6058648824691772, -0.6909384727478027], [0.5912294387817383, -0.6791596412658691], [0.5709670186042786, -0.6721771955490112], [0.8708042502403259, -0.82096266746521], [0.8487229347229004, -0.848039448261261], [0.8475784659385681, -0.8565757274627686], [0.8481768369674683, -0.8580754995346069], [0.8497868180274963, -0.856519341468811], [0.804705798625946, -0.8315630555152893], [0.7595359086990356, -0.7777372002601624], [0.6757925748825073, -0.6930243968963623], [0.5632228255271912, -0.5624786615371704], [0.3180989921092987, -0.4047372043132782], [0.11536464095115662, -0.24607770144939423], [0.02261536754667759, -0.05963008105754852], [-0.13230478763580322, 0.03416736051440239], [-0.16862419247627258, 0.09474971145391464], [-0.17427454888820648, 0.14581817388534546], [-0.14989224076271057, 0.19224749505519867], [-0.1178886815905571, 0.24160784482955933], [-0.10850581526756287, 0.23518815636634827], [-0.09442584961652756, 0.2156747579574585], [-0.08352305740118027, 0.1972212791442871], [-0.07304112613201141, 0.17045818269252777], [-0.060147903859615326, 0.19497688114643097], [-0.0505412295460701, 0.21186748147010803], [-0.0343598909676075, 0.2240966409444809], [0.010293916799128056, 0.22754986584186554], [0.051065754145383835, 0.21616415679454803], [0.10238862782716751, 0.1973842978477478], [0.16001160442829132, 0.18361757695674896], [0.215553879737854, 0.17533083260059357], [0.20004725456237793, 0.16566233336925507], [0.19012752175331116, 0.14639532566070557], [0.18681541085243225, 0.1182146966457367], [0.18315757811069489, 0.08563495427370071], [0.14674408733844757, 0.047718558460474014], [0.10774348676204681, 0.014318753033876419], [0.06657044589519501, -0.019406108185648918], [0.030204616487026215, -0.052929703146219254], [-0.024469129741191864, -0.09322794526815414], [-0.07705595344305038, -0.11412083357572556], [-0.11113985627889633, -0.14344246685504913], [-0.1628563404083252, -0.16921870410442352], [-0.21558551490306854, -0.18871545791625977], [-0.265211820602417, -0.19658729434013367], [-0.3007241189479828, -0.20461055636405945], [-0.5604575872421265, -0.19647158682346344], [-0.5648980140686035, -0.22590017318725586], [-0.5678057670593262, -0.22225314378738403], [-0.563930332660675, -0.21440351009368896], [-0.7766455411911011, -0.27029964327812195], [-0.7920517325401306, -0.30196213722229004], [-0.8039215207099915, -0.3272078335285187], [-0.8138234615325928, -0.3548820912837982], [-0.7272294163703918, -0.3416590690612793], [-0.7134862542152405, -0.2983599603176117], [-0.657611608505249, -0.28539907932281494], [-0.5722790360450745, -0.283377468585968], [-0.49069708585739136, -0.2905607223510742], [-0.43411585688591003, -0.28757908940315247], [-0.38390541076660156, -0.2896078824996948], [-0.334369033575058, -0.29405689239501953], [-0.2797982394695282, -0.30731427669525146], [-0.2620569169521332, -0.31578007340431213], [-0.26396456360816956, -0.3284527659416199], [-0.2870095372200012, -0.3463169038295746], [-0.2731626033782959, -0.3634174168109894], [-0.24479547142982483, -0.37352052330970764], [-0.21703268587589264, -0.3818318247795105], [-0.21608509123325348, -0.39379972219467163], [-0.22478127479553223, -0.4132378399372101], [-0.24106450378894806, -0.41905105113983154], [-0.26122161746025085, -0.4280052185058594], [-0.27651798725128174, -0.4328577220439911], [-0.3010656237602234, -0.437045156955719], [-0.30420956015586853, -0.4517514109611511], [-0.3044600188732147, -0.46502986550331116], [-0.30213117599487305, -0.478231817483902], [-0.30914434790611267, -0.49128615856170654], [-0.3046339750289917, -0.5153916478157043], [-0.2921546697616577, -0.5223388671875], [-0.28555819392204285, -0.527777910232544], [-0.2700240910053253, -0.5301772356033325], [-0.2792345881462097, -0.529747724533081], [-0.27662399411201477, -0.5359503626823425], [-0.25996673107147217, -0.530185341835022], [-0.2397715002298355, -0.5184771418571472], [-0.2020866423845291, -0.518837571144104], [-0.13973867893218994, -0.5219845771789551], [-0.0757238045334816, -0.5194402933120728], [-0.014125483110547066, -0.5183194875717163], [0.02598932385444641, -0.5017513632774353], [0.02481340430676937, -0.48326417803764343], [0.009720681235194206, -0.48708102107048035], [0.5143051743507385, -0.5569483041763306], [0.5097234845161438, -0.570309579372406], [0.5022364258766174, -0.5595428347587585], [0.4633368253707886, -0.545820951461792], [0.5591461658477783, -0.7197892069816589], [0.5676304697990417, -0.7075741291046143], [0.5653351545333862, -0.6924405694007874], [0.5560251474380493, -0.6722978353500366], [0.5486283898353577, -0.6564463376998901], [0.4715516269207001, -0.6247313022613525], [0.3923057019710541, -0.5719143748283386], [0.26925742626190186, -0.48844337463378906], [0.08512646704912186, -0.4029107093811035], [-0.06246964633464813, -0.35388466715812683], [-0.1997198760509491, -0.3054722547531128], [-0.28934362530708313, -0.23654037714004517], [-0.3293359875679016, -0.17631778120994568], [-0.37756478786468506, -0.10390792042016983], [-0.42683207988739014, -0.026273377239704132], [-0.4383651316165924, 0.05178060010075569], [-0.4372791647911072, 0.10787991434335709], [-0.4308622181415558, 0.14583279192447662], [-0.4095366299152374, 0.17782719433307648], [-0.3879227340221405, 0.2074447125196457], [-0.3629210591316223, 0.23268036544322968], [-0.32855984568595886, 0.25493407249450684], [-0.28939613699913025, 0.2817777097225189], [-0.2616240382194519, 0.2975391447544098], [-0.23071961104869843, 0.3076707422733307], [-0.17605935037136078, 0.3134620189666748], [-0.12425049394369125, 0.3049142062664032], [-0.07695777714252472, 0.30491235852241516], [-0.04213119298219681, 0.30047082901000977], [-0.043023910373449326, 0.30663904547691345], [-0.036468230187892914, 0.31888216733932495], [-0.019890567287802696, 0.32790666818618774], [-0.031100068241357803, 0.3194163143634796], [-0.07498347759246826, 0.2777361571788788], [-0.13101814687252045, 0.22416943311691284], [-0.19957613945007324, 0.16365452110767365], [-0.28113746643066406, 0.10970012843608856], [-0.364253431558609, 0.05161741375923157], [-0.4318395256996155, -0.005830824840813875], [-0.4722898304462433, -0.05317319184541702], [-0.5064823627471924, -0.10022637993097305], [-0.5152199268341064, -0.13506190478801727], [-0.5213244557380676, -0.16013361513614655], [-0.5260538458824158, -0.18265919387340546], [-0.6525790691375732, -0.42319223284721375], [-0.6516958475112915, -0.37506014108657837], [-0.6318227648735046, -0.3954818546772003], [-0.5946472883224487, -0.393545925617218], [-0.8312427997589111, -0.35653701424598694], [-0.7865764498710632, -0.3845355808734894], [-0.7579508423805237, -0.39926108717918396], [-0.7201588153839111, -0.4163634479045868], [-0.562743604183197, -0.5254671573638916], [-0.5258268117904663, -0.5037193298339844], [-0.4654107093811035, -0.5047621726989746], [-0.3986349105834961, -0.5030600428581238], [-0.3714997470378876, -0.5066751837730408], [-0.35046830773353577, -0.5165370106697083], [-0.33356595039367676, -0.5283638834953308], [-0.3289538025856018, -0.5360524654388428], [-0.3208373188972473, -0.5468997955322266], [-0.3181905746459961, -0.5580183267593384], [-0.32016369700431824, -0.5677756667137146], [-0.33552199602127075, -0.5799124836921692], [-0.35080811381340027, -0.5907784104347229], [-0.3625440299510956, -0.5926035642623901], [-0.37130334973335266, -0.5916603803634644], [-0.3913107216358185, -0.5919901132583618], [-0.4167967736721039, -0.5912402868270874], [-0.445507287979126, -0.5823544263839722], [-0.4746393859386444, -0.5655522346496582], [-0.46872371435165405, -0.5626633167266846], [-0.4696788191795349, -0.5491762161254883], [-0.4689888656139374, -0.5375661253929138], [-0.4715338945388794, -0.5244378447532654], [-0.47619324922561646, -0.5125527381896973], [-0.47794803977012634, -0.5004882216453552], [-0.47675085067749023, -0.4884559214115143], [-0.47169703245162964, -0.4854857623577118], [-0.4600701630115509, -0.4869152903556824], [-0.4426203668117523, -0.4830249547958374], [-0.400025337934494, -0.4728532135486603], [-0.334061861038208, -0.4463491141796112], [-0.26533517241477966, -0.4173285663127899], [-0.19506722688674927, -0.38918042182922363], [-0.16343218088150024, -0.3582753539085388], [-0.1369069516658783, -0.34105485677719116], [-0.1572655290365219, -0.33362969756126404], [-0.19535548985004425, -0.3150812089443207], [-0.17239908874034882, -0.29934993386268616], [-0.1747974157333374, -0.30652934312820435], [-0.16314126551151276, -0.3224436938762665], [-0.25251439213752747, -0.4576408267021179], [-0.3160780370235443, -0.44601672887802124], [-0.3791666626930237, -0.41566500067710876], [-0.4102179706096649, -0.3839018940925598], [-0.40855875611305237, -0.42520031332969666], [-0.4117935001850128, -0.46345263719558716], [-0.3885222375392914, -0.4968469440937042], [-0.376780241727829, -0.5199682712554932], [-0.35318049788475037, -0.5439805388450623], [-0.2787681519985199, -0.5441516041755676], [-0.2473386824131012, -0.5277539491653442], [-0.19677308201789856, -0.5129616260528564], [-0.1547183245420456, -0.48429664969444275], [-0.14648650586605072, -0.403908371925354], [-0.2473350316286087, -0.30388298630714417], [-0.35172486305236816, -0.24453000724315643], [-0.39366504549980164, -0.2244654893875122], [-0.39409324526786804, -0.20076404511928558], [-0.3889448940753937, -0.18835234642028809], [-0.382411926984787, -0.16925902664661407], [-0.378277063369751, -0.1238619014620781], [-0.37879377603530884, -0.10477901995182037], [-0.3782217800617218, -0.09573747962713242], [-0.37580427527427673, -0.08294395357370377], [-0.36801862716674805, -0.0730501189827919], [-0.34093165397644043, -0.03632392734289169], [-0.09472887963056564, 0.021117934957146645], [0.04871952161192894, 0.16274118423461914], [0.12953905761241913, 0.27059251070022583], [0.13362137973308563, 0.3343278467655182], [0.14476804435253143, 0.362548291683197], [0.1439184546470642, 0.36923545598983765], [0.14110666513442993, 0.3619789481163025], [0.13724173605442047, 0.3643028140068054], [0.08137831091880798, 0.3692919611930847], [0.10463038086891174, 0.3199293613433838], [0.1538967341184616, 0.27936485409736633], [0.16139476001262665, 0.239467591047287], [0.18846462666988373, 0.19362911581993103], [0.21582356095314026, 0.13754945993423462], [0.26514673233032227, 0.06155592203140259], [0.3196635842323303, -0.00917909573763609], [0.3008368909358978, -0.058953527361154556], [0.33505192399024963, -0.127249076962471], [0.20569464564323425, -0.12334530055522919], [0.24820604920387268, -0.16190066933631897], [0.29619061946868896, -0.1862812638282776], [0.32977330684661865, -0.19143643975257874], [0.3013482093811035, -0.20277050137519836], [0.2847836911678314, -0.205870121717453], [0.30503198504447937, -0.20898522436618805], [0.29073381423950195, -0.20284295082092285], [-0.3142973780632019, -0.3521953523159027], [-0.25783786177635193, -0.3389303982257843], [-0.25813478231430054, -0.27004459500312805], [-0.25783416628837585, -0.2695547938346863], [0.0037028465885668993, -0.24558451771736145], [-0.4801245331764221, -0.3089901804924011], [-0.4160994589328766, -0.3492042124271393], [-0.39638012647628784, -0.3583926260471344], [-0.36980685591697693, -0.37165361642837524], [-0.3569525480270386, -0.37993568181991577], [-0.33904263377189636, -0.3915199935436249], [-0.31982162594795227, -0.39633145928382874], [-0.30188852548599243, -0.3984750509262085], [-0.2835438549518585, -0.4056490957736969], [-0.2765257954597473, -0.4156005084514618], [-0.2708307206630707, -0.426043301820755], [-0.2712388038635254, -0.4354435205459595], [-0.2607065439224243, -0.4276147186756134], [-0.24201379716396332, -0.42421531677246094], [-0.21915864944458008, -0.42345839738845825], [-0.20786833763122559, -0.4212935268878937], [-0.20041732490062714, -0.41459158062934875], [-0.19223348796367645, -0.40705063939094543], [-0.18319250643253326, -0.3990636467933655], [-0.18271613121032715, -0.39283183217048645], [-0.18967969715595245, -0.3913884162902832], [-0.20420296490192413, -0.38629770278930664], [-0.21802468597888947, -0.37873712182044983], [-0.2326057255268097, -0.37094977498054504], [-0.2414190173149109, -0.3619394302368164], [-0.24916164577007294, -0.34999987483024597], [-0.25251463055610657, -0.34960612654685974], [-0.260038286447525, -0.3592318296432495], [-0.27424702048301697, -0.37235087156295776], [-0.2879800498485565, -0.3920401632785797], [-0.3129009008407593, -0.41813042759895325], [-0.3372824192047119, -0.4429798722267151], [-0.3346066176891327, -0.45040521025657654], [-0.3287101089954376, -0.45598557591438293], [-0.3195667564868927, -0.4601912200450897], [-0.31817713379859924, -0.46650004386901855], [-0.32232847809791565, -0.47567999362945557], [-0.3318020701408386, -0.4878086447715759], [-0.3452143371105194, -0.5017497539520264], [-0.018471362069249153, -0.5509995222091675], [-0.052432697266340256, -0.5267136096954346], [-0.03870604559779167, -0.5418261289596558], [-0.01817990466952324, -0.5393280386924744], [-0.6514446139335632, -0.4462178349494934], [-0.750201940536499, -0.549325168132782], [-0.7932465076446533, -0.5805564522743225], [-0.8007190227508545, -0.579730212688446], [-0.7637853622436523, -0.6264558434486389], [-0.7750170826911926, -0.6198827624320984], [-0.7411314249038696, -0.5954077839851379], [-0.7148531675338745, -0.560347855091095], [-0.697518527507782, -0.5106284022331238], [-0.683772087097168, -0.47419294714927673], [-0.6440983414649963, -0.48475977778434753], [-0.6174076199531555, -0.4563494920730591], [-0.6018118858337402, -0.44043558835983276], [-0.5897297859191895, -0.4350374937057495], [-0.5783789157867432, -0.4347304701805115], [-0.5667064785957336, -0.43876975774765015], [-0.5202166438102722, -0.4165482819080353], [-0.4958912134170532, -0.4059317409992218], [-0.4757961928844452, -0.38127976655960083], [-0.4617217779159546, -0.3600561320781708], [-0.4410998225212097, -0.3597039580345154], [-0.43942025303840637, -0.36287781596183777], [-0.37604984641075134, -0.3467099666595459], [-0.33542871475219727, -0.34330496191978455], [-0.3103889226913452, -0.34097519516944885], [-0.2132076919078827, -0.31483733654022217], [-0.15566903352737427, -0.3082650601863861], [-0.10297399014234543, -0.2873871624469757], [-0.010942185297608376, -0.2632412612438202], [0.11277122795581818, -0.24946415424346924], [0.21754929423332214, -0.22324609756469727], [0.3996361494064331, -0.24050678312778473], [0.5123388767242432, -0.21669955551624298], [0.5802671313285828, -0.22657132148742676], [0.6420014500617981, -0.21761582791805267], [0.6718751192092896, -0.2056778520345688], [0.7024085521697998, -0.19168886542320251], [0.683526337146759, -0.20170922577381134], [0.6672530174255371, -0.18321576714515686], [0.5923963785171509, -0.18000230193138123], [0.5574532747268677, -0.17554135620594025], [0.6092793345451355, -0.16527490317821503], [0.650119960308075, -0.13411785662174225], [0.6809634566307068, -0.10611359030008316], [0.7964446544647217, -0.25647807121276855], [0.7229284048080444, -0.30531251430511475], [0.6944871544837952, -0.28324583172798157], [0.6539856791496277, -0.298690527677536], [-0.19404439628124237, -0.33331403136253357], [-0.23053185641765594, -0.2455155998468399], [-0.2559904456138611, -0.2547931373119354], [-0.3258352279663086, -0.21026410162448883], [-0.14726877212524414, -0.327877014875412], [-0.2466748058795929, -0.4211226999759674], [-0.24673515558242798, -0.43741515278816223], [-0.2420499324798584, -0.44453492760658264], [-0.22019781172275543, -0.4479982852935791], [-0.1899944692850113, -0.45242300629615784], [-0.15454113483428955, -0.4574061632156372], [-0.13833822309970856, -0.461519330739975], [-0.1306927651166916, -0.472983181476593], [-0.1315571367740631, -0.4737001657485962], [-0.13239748775959015, -0.47351858019828796], [-0.1357138454914093, -0.4763945937156677], [-0.14147433638572693, -0.4812234938144684], [-0.15214060246944427, -0.4967276453971863], [-0.16678749024868011, -0.512712836265564], [-0.1635923832654953, -0.5194821953773499], [-0.15643620491027832, -0.5258325934410095], [-0.15658462047576904, -0.527174174785614], [-0.15547630190849304, -0.5283869504928589], [-0.15479321777820587, -0.5295747518539429], [-0.15507374703884125, -0.5310626029968262], [-0.15450458228588104, -0.5314288139343262], [-0.1538376361131668, -0.5314552783966064], [-0.15119564533233643, -0.5273969769477844], [-0.146835058927536, -0.5237606167793274], [-0.14572429656982422, -0.5219208598136902], [-0.1461898237466812, -0.5177614092826843], [-0.15257826447486877, -0.5138024091720581], [-0.15962456166744232, -0.5093540549278259], [-0.16381196677684784, -0.5070000886917114], [-0.16614744067192078, -0.5048806667327881], [-0.16175208985805511, -0.4975415766239166], [-0.15537002682685852, -0.4922049343585968], [-0.14857040345668793, -0.48595717549324036], [-0.14175626635551453, -0.4806756377220154], [-0.14210928976535797, -0.4809122085571289], [-0.1545112282037735, -0.4883657395839691], [-0.16387386620044708, -0.49452051520347595], [-0.171499103307724, -0.501926839351654], [-0.18401800096035004, -0.507170557975769], [-0.19855964183807373, -0.5086066126823425], [-0.21083711087703705, -0.5258665084838867], [-0.23064827919006348, -0.5469627380371094], [-0.2470320463180542, -0.5675483345985413], [-0.25904589891433716, -0.5868721604347229], [-0.2719804346561432, -0.5803154110908508], [-0.26900920271873474, -0.5717227458953857], [-0.24948814511299133, -0.5542723536491394], [-0.2335541695356369, -0.5400456190109253], [-0.22419536113739014, -0.525757908821106], [-0.2184256613254547, -0.5161342620849609], [-0.21280021965503693, -0.5104663968086243], [-0.20034095644950867, -0.5128133893013], [-0.19053703546524048, -0.5106392502784729], [-0.18147307634353638, -0.5080443620681763], [-0.16832859814167023, -0.5074309706687927], [-0.1660235971212387, -0.5012645721435547], [-0.1570993810892105, -0.4966270923614502], [-0.14642752707004547, -0.48705142736434937], [-0.14382173120975494, -0.4808316230773926], [-0.14958111941814423, -0.48203057050704956], [-0.15813009440898895, -0.48668381571769714], [-0.16013644635677338, -0.49066656827926636], [-0.1666945070028305, -0.48821696639060974], [-0.17328603565692902, -0.48534125089645386], [-0.17922921478748322, -0.4852478504180908], [-0.19151777029037476, -0.4827287197113037], [-0.20340213179588318, -0.48158639669418335], [-0.213885098695755, -0.4787638485431671], [-0.25203263759613037, -0.47596821188926697], [-0.286773681640625, -0.4722670018672943], [-0.28671929240226746, -0.467384934425354], [-0.2989853620529175, -0.45624515414237976], [-0.3001256585121155, -0.45836779475212097], [-0.31422102451324463, -0.4566493630409241], [-0.32689687609672546, -0.45642775297164917], [-0.3394317030906677, -0.4554036557674408], [-0.3480019271373749, -0.4537367820739746], [-0.35575222969055176, -0.45121434330940247], [-0.3618853986263275, -0.4475356340408325], [-0.3546222448348999, -0.4352279007434845], [-0.3404588997364044, -0.431465208530426], [-0.3228132128715515, -0.41684943437576294], [-0.2940191328525543, -0.4017897844314575], [-0.27831700444221497, -0.38651347160339355], [-0.24688783288002014, -0.37654706835746765], [-0.23017236590385437, -0.36336055397987366], [-0.21090033650398254, -0.35130593180656433], [-0.3272947072982788, -0.4130823016166687], [-0.31466707587242126, -0.4301266372203827], [-0.3109542429447174, -0.4319124221801758], [-0.3080626130104065, -0.43209677934646606], [-0.3047083020210266, -0.43220949172973633], [-0.2934091091156006, -0.4323529601097107], [-0.2808109223842621, -0.43021297454833984], [-0.2655520439147949, -0.4312911331653595], [-0.24967283010482788, -0.43499454855918884], [-0.23367349803447723, -0.4404774010181427], [-0.21561884880065918, -0.44530951976776123], [-0.191543310880661, -0.4567635655403137], [-0.1729719489812851, -0.4677269458770752], [-0.1536695510149002, -0.4794251620769501], [-0.13911835849285126, -0.49212339520454407], [-0.12184156477451324, -0.5093935132026672], [-0.10355277359485626, -0.5313103199005127], [-0.10633154958486557, -0.5454363226890564], [-0.10348562896251678, -0.5645781755447388], [-0.10689549148082733, -0.5826337337493896], [-0.12064763158559799, -0.6051068305969238], [-0.145852193236351, -0.6215465664863586], [-0.1734120398759842, -0.6338063478469849], [-0.19901177287101746, -0.6459898948669434], [-0.22095006704330444, -0.6543753743171692], [-0.2310309261083603, -0.6560337543487549], [-0.23500889539718628, -0.657079815864563], [-0.23480749130249023, -0.6573505997657776], [-0.23643657565116882, -0.6583031415939331], [-0.24533501267433167, -0.662894070148468], [-0.2517355978488922, -0.6684967875480652], [-0.2564764618873596, -0.6721123456954956], [-0.24827930331230164, -0.670936107635498], [-0.23295298218727112, -0.6687907576560974], [-0.21942313015460968, -0.6646831631660461], [-0.20628227293491364, -0.6572314500808716], [-0.1909828782081604, -0.6490883827209473], [-0.18053704500198364, -0.6431229710578918], [-0.17100889980793, -0.6370322704315186], [-0.1795901656150818, -0.6321958899497986], [-0.18360786139965057, -0.6322751641273499], [-0.1714244931936264, -0.6341556310653687], [-0.16024236381053925, -0.6329009532928467], [-0.15061767399311066, -0.632403552532196], [-0.14549343287944794, -0.6342499256134033], [-0.16465944051742554, -0.6541774272918701], [-0.16780583560466766, -0.6677524447441101], [-0.17952312529087067, -0.6774181723594666], [-0.1915121078491211, -0.6869255304336548], [-0.19490088522434235, -0.6902242302894592], [-0.20445770025253296, -0.6938332915306091], [-0.21260333061218262, -0.6968854069709778], [-0.21834325790405273, -0.6968541145324707], [-0.1920410543680191, -0.6804606318473816], [-0.2038162648677826, -0.6662585735321045], [-0.22840523719787598, -0.6586273908615112], [-0.24741455912590027, -0.6504491567611694], [-0.2698574662208557, -0.6524943113327026], [-0.2880595922470093, -0.655057966709137], [-0.3046146333217621, -0.6569393873214722], [-0.31944987177848816, -0.6582816243171692], [-0.32545211911201477, -0.6494215726852417], [-0.33217281103134155, -0.6351816654205322], [-0.33236998319625854, -0.6199350953102112], [-0.33186814188957214, -0.6039717197418213], [-0.31474819779396057, -0.5814817547798157], [-0.3000227212905884, -0.5556896924972534], [-0.28093770146369934, -0.5291399955749512], [-0.26168927550315857, -0.4911630153656006], [-0.2429616004228592, -0.47049856185913086], [-0.20581813156604767, -0.4441549479961395], [-0.18629090487957, -0.42837288975715637], [-0.17846903204917908, -0.4145628809928894], [-0.18934319913387299, -0.4008752405643463], [-0.20235814154148102, -0.39529985189437866], [-0.20946818590164185, -0.3855181038379669], [-0.21749699115753174, -0.3716512620449066], [-0.22683267295360565, -0.37310218811035156], [-0.2392081469297409, -0.3770824372768402], [-0.2529052495956421, -0.38183385133743286], [-0.26688632369041443, -0.3868071734905243], [-0.2750893831253052, -0.388150691986084], [-0.27434518933296204, -0.38248971104621887], [-0.27141454815864563, -0.37452930212020874], [-0.26796889305114746, -0.36660853028297424], [-0.2661272883415222, -0.3504977226257324], [-0.2611691355705261, -0.33272361755371094], [-0.2535027265548706, -0.31208011507987976], [-0.24474665522575378, -0.2880247235298157], [-0.24985460937023163, -0.30503401160240173], [-0.26113027334213257, -0.3314060568809509], [-0.28088393807411194, -0.3630068600177765], [-0.29567745327949524, -0.39470401406288147], [-0.2979307770729065, -0.40170446038246155], [-0.29755496978759766, -0.404314249753952], [-0.29398196935653687, -0.403145968914032], [-0.32374218106269836, -0.32424354553222656], [-0.35132014751434326, -0.3453017473220825], [-0.39988815784454346, -0.370252788066864], [-0.4419211149215698, -0.39554929733276367], [-0.4793211817741394, -0.4172210395336151], [-0.4925716519355774, -0.4257241189479828], [-0.4991748034954071, -0.42996346950531006], [-0.4980759918689728, -0.43526551127433777], [-0.48929572105407715, -0.4394032955169678], [-0.4935929477214813, -0.4522794187068939], [-0.49320849776268005, -0.46461230516433716], [-0.4857654273509979, -0.4718562066555023], [-0.47001856565475464, -0.47704869508743286], [-0.45680564641952515, -0.4584599435329437], [-0.44448789954185486, -0.44111424684524536], [-0.43319252133369446, -0.4244312047958374], [-0.4225367605686188, -0.4077284336090088], [-0.4126279056072235, -0.412317156791687], [-0.4095538854598999, -0.416000097990036], [-0.41014838218688965, -0.42435914278030396], [-0.4105629622936249, -0.43432989716529846], [-0.4070928990840912, -0.4282469153404236], [-0.4026014506816864, -0.4248385429382324], [-0.39889824390411377, -0.4197157621383667], [-0.39158904552459717, -0.4115648567676544], [-0.3880714476108551, -0.40882813930511475], [-0.38867995142936707, -0.409350723028183], [-0.39179739356040955, -0.4105629026889801], [-0.3957175612449646, -0.4145638048648834], [-0.3881819546222687, -0.4117864966392517], [-0.36852672696113586, -0.4075680375099182], [-0.3378961980342865, -0.40474140644073486], [-0.30682653188705444, -0.4089042544364929], [-0.2953760623931885, -0.43155398964881897], [-0.29562368988990784, -0.45899155735969543], [-0.29712679982185364, -0.4861449599266052], [-0.30098390579223633, -0.5122471451759338], [-0.309628963470459, -0.5412952899932861], [-0.3189637064933777, -0.5661821365356445], [-0.3490011692047119, -0.5865657925605774], [-0.372545063495636, -0.6049289703369141], [-0.41101396083831787, -0.6333593130111694], [-0.4341138005256653, -0.6548734903335571], [-0.4668899476528168, -0.6735677719116211], [-0.5194607377052307, -0.6940903663635254], [-0.6080713868141174, -0.7062339782714844], [-0.6655515432357788, -0.7230210900306702], [-0.6914390325546265, -0.7390143275260925], [-0.02013946883380413, -0.6114769577980042], [-0.4020901322364807, -0.3332864046096802], [-0.5813047289848328, -0.2993197739124298], [-0.5839316844940186, -0.31261587142944336], [0.5309642553329468, -0.3861238658428192], [-0.2848697304725647, -0.15560446679592133], [-0.4188813269138336, -0.29447993636131287], [-0.430844783782959, -0.22315119206905365], [-0.44624990224838257, -0.25120192766189575], [-0.4097862243652344, -0.18496517837047577], [-0.3531248867511749, -0.14343418180942535], [-0.26484766602516174, -0.0954168513417244], [-0.15272076427936554, -0.06286199390888214], [-0.0627140998840332, -0.039977237582206726], [0.036535825580358505, -0.015507309697568417], [0.15915557742118835, 0.009343731217086315], [0.2429608702659607, 0.0018367224838584661], [0.2944411039352417, -0.01734454557299614], [0.3547724187374115, -0.029928676784038544], [0.3953121602535248, -0.024769771844148636], [0.4407581686973572, -0.02234080247581005], [0.4842332601547241, -0.01961681991815567], [0.5319232940673828, -0.02003619819879532], [0.5544973015785217, 0.006664884742349386], [0.6047536730766296, 0.03417792171239853], [0.6649213433265686, 0.06217468902468681], [0.7185518145561218, 0.09090758860111237], [0.7960277199745178, 0.1402704417705536], [0.8290649056434631, 0.17707610130310059], [0.856159508228302, 0.21076422929763794], [0.8850066661834717, 0.24282006919384003], [0.9029621481895447, 0.2620197832584381], [0.9178693890571594, 0.28052642941474915], [0.9341152906417847, 0.32983967661857605], [0.9497832655906677, 0.36769336462020874], [0.9634025692939758, 0.38739535212516785], [0.9701471924781799, 0.3947056233882904], [0.9689063429832458, 0.38980603218078613], [0.964971125125885, 0.3934266269207001], [0.9671879410743713, 0.38976413011550903], [0.9635972380638123, 0.38246291875839233], [0.964492678642273, 0.3691342771053314], [0.9642755389213562, 0.3519904911518097], [0.9636650085449219, 0.3266906142234802], [0.9616194367408752, 0.30140331387519836], [0.9611424803733826, 0.2977665364742279], [0.9619112610816956, 0.2838437855243683], [0.9628667235374451, 0.2690752446651459], [0.9684712886810303, 0.3315376043319702], [0.9646247625350952, 0.3280549943447113], [0.9669399857521057, 0.3193468153476715], [0.9690863490104675, 0.30411234498023987], [0.2517882287502289, 0.3787205219268799], [0.3142493665218353, 0.32442232966423035], [0.206119105219841, 0.30074408650398254], [0.1499515026807785, 0.27720069885253906], [0.7295793890953064, 0.34400618076324463], [-0.39017316699028015, -0.21625325083732605], [-0.3639797270298004, -0.22696004807949066], [-0.3623984158039093, -0.23004138469696045], [-0.3586823642253876, -0.22903774678707123], [-0.35750991106033325, -0.23522350192070007], [-0.3637150526046753, -0.24172428250312805], [-0.36687391996383667, -0.2475774586200714], [-0.38374409079551697, -0.25967642664909363], [-0.39737409353256226, -0.26995837688446045], [-0.37833860516548157, -0.27043789625167847], [-0.33055591583251953, -0.26868006587028503], [-0.2692921757698059, -0.26420876383781433], [-0.23205329477787018, -0.258579283952713], [-0.19596266746520996, -0.25619375705718994], [-0.1695847362279892, -0.2600836753845215], [-0.13161814212799072, -0.26006442308425903], [-0.09085389226675034, -0.2591612935066223], [-0.052389755845069885, -0.2536509037017822], [-0.016987796872854233, -0.24398480355739594], [0.013845071196556091, -0.23668928444385529], [0.045568954199552536, -0.23197045922279358], [0.06541150063276291, -0.23054127395153046], [0.07166159898042679, -0.23415935039520264], [0.07596302777528763, -0.2406282126903534], [0.09610286355018616, -0.26107731461524963], [0.10612977296113968, -0.28205129504203796], [0.10934147238731384, -0.3114315867424011], [0.1042778268456459, -0.3449181318283081], [0.09408693015575409, -0.35522952675819397], [0.11174529790878296, -0.36072152853012085], [0.13117188215255737, -0.35616031289100647], [0.12853842973709106, -0.3408861756324768], [0.13238246738910675, -0.34089991450309753], [0.1486075520515442, -0.3343507945537567], [0.16226811707019806, -0.3264590799808502], [0.19758111238479614, -0.314240962266922], [0.22795045375823975, -0.286295086145401], [0.2408095747232437, -0.27118247747421265], [0.2598005533218384, -0.2520177960395813], [0.6341832280158997, -0.21599875390529633], [0.6058611273765564, -0.20270220935344696], [0.5907962918281555, -0.19458766281604767], [0.5713983178138733, -0.18167644739151], [0.4103650748729706, -0.2781129777431488], [0.3514212667942047, -0.3822343647480011], [0.27314895391464233, -0.4438561499118805], [0.23139731585979462, -0.4512168765068054], [0.22041024267673492, -0.40507403016090393], [0.29313087463378906, -0.25518858432769775], [0.3253345787525177, -0.09683340787887573], [0.2963222563266754, 0.03371647372841835], [0.2948642075061798, 0.12028320878744125], [0.3135755658149719, 0.14020636677742004], [0.3228491544723511, 0.17412269115447998], [0.33365750312805176, 0.20912471413612366], [0.3429009020328522, 0.2480742484331131], [0.3487884998321533, 0.3007396161556244], [0.358909547328949, 0.3473813235759735], [0.3975849151611328, 0.3985230624675751], [0.4497925937175751, 0.4262312054634094], [0.4682478904724121, 0.43516331911087036], [0.4759021997451782, 0.4417239725589752], [0.4844861328601837, 0.44436970353126526], [0.5010203123092651, 0.4374828040599823], [0.5224956274032593, 0.42675498127937317], [0.5482165217399597, 0.4109327495098114], [0.5705744624137878, 0.3956165313720703], [0.5915228724479675, 0.38100466132164], [0.6303850412368774, 0.3755880296230316], [0.6640570163726807, 0.3760850131511688], [0.6858012676239014, 0.3750320076942444], [0.7035877108573914, 0.3698164224624634], [0.6827176213264465, 0.3806361258029938], [0.667361319065094, 0.39212700724601746], [0.6535602807998657, 0.40210625529289246], [0.6477473378181458, 0.4085070490837097], [0.6453995108604431, 0.41279011964797974], [0.638568639755249, 0.4103931784629822], [0.6225766539573669, 0.40374955534935], [0.6098007559776306, 0.39116692543029785], [0.5742970108985901, 0.37068095803260803], [0.5324898958206177, 0.35117557644844055], [0.49619510769844055, 0.3322145342826843], [0.46861156821250916, 0.318796843290329], [0.44719424843788147, 0.30731815099716187], [0.4193647801876068, 0.28671514987945557], [0.3835248649120331, 0.2645348012447357], [0.05816390737891197, 0.08806081116199493], [-0.05197202414274216, 0.035474151372909546], [-0.09306886047124863, 0.0020174728706479073], [-0.12728771567344666, -0.019522083923220634], [-0.3494374752044678, -0.037381138652563095], [-0.36101892590522766, -0.07937293499708176], [-0.4057888984680176, -0.0908471941947937], [-0.42598605155944824, -0.10898059606552124], [-0.2265436351299286, -0.08271212130784988], [-0.26766595244407654, -0.09515053778886795], [-0.2823726236820221, -0.11332257837057114], [-0.2956028878688812, -0.12953485548496246], [-0.3144734501838684, -0.1566915512084961], [-0.3441353440284729, -0.18668201565742493], [-0.3517168164253235, -0.20807772874832153], [-0.2914295792579651, -0.21987766027450562], [-0.16230405867099762, -0.23925432562828064], [-0.07077249139547348, -0.24557815492153168], [0.005597658921033144, -0.2631889581680298], [0.04076765477657318, -0.276750773191452], [0.05063268542289734, -0.2901684641838074], [0.029686106368899345, -0.29001209139823914], [0.015612619929015636, -0.2881248891353607], [-0.0006620510248467326, -0.28319400548934937], [-0.021882934495806694, -0.2770586609840393], [-0.03691885992884636, -0.2688606083393097], [-0.010540921241044998, -0.2670040726661682], [0.009707331657409668, -0.2624117136001587], [0.03266453742980957, -0.2571083605289459], [0.05213851109147072, -0.25006288290023804], [0.06558966636657715, -0.24056965112686157], [0.08041112869977951, -0.23217839002609253], [0.09850698709487915, -0.22569285333156586], [0.10922316461801529, -0.21892358362674713], [0.12467632442712784, -0.20395183563232422], [0.15911631286144257, -0.18124769628047943], [0.18861359357833862, -0.15871095657348633], [0.22222667932510376, -0.13831213116645813], [0.24003548920154572, -0.1304119974374771], [0.2561701238155365, -0.12280915677547455], [0.28138962388038635, -0.11299294978380203], [0.30728232860565186, -0.09176294505596161], [0.32159531116485596, -0.06516506522893906], [0.34090644121170044, -0.03769088536500931], [0.373735249042511, -0.00569771695882082], [0.3715853691101074, 0.004689233843237162], [0.38855797052383423, 0.013720999471843243], [0.4046672582626343, 0.027699138969182968], [0.7251601815223694, -0.20075304806232452], [0.5952407717704773, -0.25489887595176697], [0.5166981816291809, -0.2514205574989319], [0.4820573925971985, -0.2443860024213791], [-0.14648795127868652, -0.37099871039390564], [-0.05280762165784836, -0.41595330834388733], [-0.06570704281330109, -0.3870599567890167], [-0.10576304793357849, -0.35238298773765564], [-0.14454323053359985, -0.3120070993900299], [-0.07612504065036774, -0.23395425081253052], [0.01441178284585476, -0.11932536214590073], [0.031106041744351387, 0.00486171105876565], [0.06070888042449951, 0.16087329387664795], [0.06757699698209763, 0.2567303776741028], [0.07533766329288483, 0.2697366178035736], [0.06665980815887451, 0.3023364841938019], [0.060385458171367645, 0.3258441686630249], [0.09394396841526031, 0.3507813811302185], [0.13567306101322174, 0.3842155337333679], [0.18908873200416565, 0.42095810174942017], [0.2431614249944687, 0.43864893913269043], [0.2708892226219177, 0.4438191056251526], [0.2955475151538849, 0.4540252089500427], [0.31866171956062317, 0.4608808159828186], [0.3654632270336151, 0.46320459246635437], [0.4098713994026184, 0.4710914194583893], [0.46551424264907837, 0.46747127175331116], [0.5115649104118347, 0.46419408917427063], [0.5446497797966003, 0.46317899227142334], [0.5490198731422424, 0.4524381756782532], [0.5545137524604797, 0.4451044797897339], [0.5556298494338989, 0.436030775308609], [0.5539442300796509, 0.4281447231769562], [0.5165624022483826, 0.44070732593536377], [0.4768734872341156, 0.4560239017009735], [0.43775975704193115, 0.4495728313922882], [0.40115463733673096, 0.4311700463294983], [0.3758529722690582, 0.40752363204956055], [0.34878402948379517, 0.3804874122142792], [0.3221352994441986, 0.35280418395996094], [0.2920942008495331, 0.3270094692707062], [0.2380993813276291, 0.28890180587768555], [0.17316927015781403, 0.24755261838436127], [0.08516176789999008, 0.19142980873584747], [0.003388488432392478, 0.12912467122077942], [-0.0567481704056263, 0.08228066563606262], [-0.11280611157417297, 0.046556323766708374], [-0.14671361446380615, 0.012418636120855808], [-0.32345157861709595, -0.2890080213546753], [-0.47667938470840454, -0.3770603537559509], [-0.519636869430542, -0.4203805923461914], [-0.5590643882751465, -0.4498504400253296], [-0.7682406902313232, -0.41657358407974243], [-0.7641753554344177, -0.4411831796169281], [-0.781681478023529, -0.4569200873374939], [-0.7952510714530945, -0.4742368459701538], [-0.6864574551582336, -0.49328485131263733], [-0.6994282603263855, -0.5005875825881958], [-0.6911510825157166, -0.5366058945655823], [-0.6703386306762695, -0.5768197178840637], [-0.6489377617835999, -0.614825427532196], [-0.6444726586341858, -0.623475193977356], [-0.6362462639808655, -0.6291338205337524], [-0.6267117261886597, -0.6330874562263489], [-0.6165650486946106, -0.6349222660064697], [-0.595610499382019, -0.647803544998169], [-0.5761594176292419, -0.6606611609458923], [-0.5645621418952942, -0.669704020023346], [-0.537024736404419, -0.6738278269767761], [-0.503761351108551, -0.6736045479774475], [-0.46824911236763, -0.6721249222755432], [-0.447771281003952, -0.6652101874351501], [-0.43025559186935425, -0.6571877598762512], [-0.42033129930496216, -0.6414707899093628], [-0.4024200737476349, -0.6230097413063049], [-0.3874952793121338, -0.596981942653656], [-0.37700438499450684, -0.5717710256576538], [-0.3657286465167999, -0.5459051728248596], [-0.3397587239742279, -0.5091252326965332], [-0.3243187367916107, -0.46245768666267395], [-0.3100750744342804, -0.41188931465148926], [-0.2522960901260376, -0.37663760781288147], [-0.19697760045528412, -0.3386171758174896], [-0.12888948619365692, -0.2868638038635254], [-0.059371110051870346, -0.22304897010326385], [-0.028916018083691597, -0.16906693577766418], [0.011126452125608921, -0.12267329543828964], [0.03588174656033516, -0.09043046087026596], [0.05150759592652321, -0.059631697833538055], [0.09771402925252914, -0.01610199362039566], [0.10309513658285141, 0.024490507319569588], [0.11249011009931564, 0.06286200135946274], [0.11801808327436447, 0.09592016786336899], [0.11097262799739838, 0.1097107008099556], [0.10589391738176346, 0.1187635213136673], [0.07795625180006027, 0.1248411163687706], [-0.13695064187049866, -0.08528931438922882], [-0.2259085774421692, -0.08652716130018234], [-0.23956236243247986, -0.08584407716989517], [-0.2553481161594391, -0.07622578740119934], [-0.4185749888420105, -0.15757955610752106], [-0.415449857711792, -0.18625985085964203], [-0.44557303190231323, -0.17432396113872528], [-0.4661817252635956, -0.15190373361110687], [-0.4845483899116516, -0.12671351432800293], [-0.4769890606403351, -0.11768290400505066], [-0.4568478763103485, -0.0939585343003273], [-0.4323507845401764, -0.048173364251852036], [-0.4114072024822235, 0.006777129601687193], [-0.4292222261428833, 0.03002455085515976], [-0.443785160779953, 0.041728559881448746], [-0.4348876178264618, 0.039957694709300995], [-0.434661328792572, 0.03156634047627449], [-0.42768394947052, 0.04232921823859215], [-0.4132651388645172, 0.04336892440915108], [-0.39630356431007385, 0.03461059182882309], [-0.3941294252872467, 0.03780147060751915], [-0.38565608859062195, 0.06867869198322296], [-0.4177309572696686, 0.11069381237030029], [-0.42910364270210266, 0.14918725192546844], [-0.3983963131904602, 0.15743711590766907], [-0.34653523564338684, 0.16066259145736694], [-0.2825983762741089, 0.17905385792255402], [-0.20479819178581238, 0.20554161071777344], [-0.15655408799648285, 0.24593760073184967], [-0.12463932484388351, 0.27445223927497864], [-0.06927400827407837, 0.26951369643211365], [-0.017694005742669106, 0.249709814786911], [0.01989499107003212, 0.23155489563941956], [-0.022927504032850266, 0.21180002391338348], [-0.07252559810876846, 0.18769803643226624], [-0.10782965272665024, 0.1616269201040268], [-0.1275775134563446, 0.1295030415058136], [-0.15332403779029846, 0.09933396428823471], [-0.17865869402885437, 0.0680261105298996], [-0.2165052741765976, 0.0234496109187603], [-0.27053239941596985, -0.034381888806819916], [-0.3475345969200134, -0.08992702513933182], [-0.41434863209724426, -0.14933443069458008], [-0.47492706775665283, -0.21126167476177216], [-0.5084641575813293, -0.26684412360191345], [-0.5315084457397461, -0.32106250524520874], [-0.5474023222923279, -0.3718636631965637], [-0.5661049485206604, -0.4286682605743408], [-0.33353108167648315, -0.40694940090179443], [-0.31213515996932983, -0.3334663212299347], [-0.26463428139686584, -0.3255230784416199], [-0.24734993278980255, -0.30533531308174133], [-0.5858114361763, -0.375006765127182], [-0.5889388918876648, -0.384112149477005], [-0.5602666735649109, -0.3977402150630951], [-0.5476558804512024, -0.4164750874042511], [-0.5632637143135071, -0.47642338275909424], [-0.5563887357711792, -0.5000450611114502], [-0.528160035610199, -0.5133172273635864], [-0.4898839294910431, -0.5135776996612549], [-0.45036694407463074, -0.5064398050308228], [-0.42625895142555237, -0.5026271343231201], [-0.41407912969589233, -0.5058900713920593], [-0.4049925208091736, -0.5133158564567566], [-0.40073162317276, -0.5212220549583435], [-0.3966260552406311, -0.5208052396774292], [-0.3902398943901062, -0.5173815488815308], [-0.39142757654190063, -0.5115950107574463], [-0.3939804136753082, -0.5063509941101074], [-0.3973070979118347, -0.5012774467468262], [-0.401486873626709, -0.4960443079471588], [-0.407946914434433, -0.49158820509910583], [-0.41649389266967773, -0.4888686239719391], [-0.4350655972957611, -0.485747754573822], [-0.45863932371139526, -0.47768065333366394], [-0.4545746445655823, -0.47464317083358765], [-0.44913095235824585, -0.46088892221450806], [-0.4384961724281311, -0.4470519721508026], [-0.4279311001300812, -0.4316335618495941], [-0.41906920075416565, -0.42037394642829895], [-0.4177910089492798, -0.41214218735694885], [-0.41714349389076233, -0.4066671133041382], [-0.4128347337245941, -0.39866894483566284], [-0.3977760076522827, -0.39164936542510986], [-0.3748784363269806, -0.3766739070415497], [-0.3653307259082794, -0.3732309341430664], [-0.3624301850795746, -0.3766360282897949], [-0.3571907579898834, -0.37897422909736633], [-0.35003459453582764, -0.37793198227882385], [-0.3317088484764099, -0.3681384027004242], [-0.3106788396835327, -0.35746660828590393], [-0.28968295454978943, -0.3474617302417755], [-0.26633867621421814, -0.3390916585922241], [-0.25844472646713257, -0.33220648765563965], [-0.26505666971206665, -0.3253663182258606], [-0.2832915782928467, -0.32564568519592285], [-0.1360415816307068, -0.3534449338912964], [-0.133771151304245, -0.34283384680747986], [-0.16237600147724152, -0.352727472782135], [-0.17106826603412628, -0.36562007665634155], [-0.7825960516929626, -0.18716749548912048], [-0.8106460571289062, -0.22192226350307465], [-0.8433335423469543, -0.22088859975337982], [-0.8588607907295227, -0.22298182547092438], [-0.8658276796340942, -0.22137093544006348], [-0.8473619222640991, -0.2541075050830841], [-0.8084030747413635, -0.26018568873405457], [-0.7525872588157654, -0.2786335349082947], [-0.6936657428741455, -0.28911784291267395], [-0.6503137350082397, -0.3115222752094269], [-0.5931368470191956, -0.3304905295372009], [-0.5130987167358398, -0.36068424582481384], [-0.4248037040233612, -0.3970445990562439], [-0.35000887513160706, -0.41684794425964355], [-0.29459306597709656, -0.4444202184677124], [-0.24006667733192444, -0.467752069234848], [-0.20648880302906036, -0.48965319991111755], [-0.18790647387504578, -0.5059937238693237], [-0.17183361947536469, -0.5083731412887573], [-0.16861456632614136, -0.5090633630752563], [-0.15793010592460632, -0.5058053731918335], [-0.1527532935142517, -0.5020237565040588], [-0.15082429349422455, -0.4950428605079651], [-0.14930669963359833, -0.4858517348766327], [-0.15413884818553925, -0.47557294368743896], [-0.1562947779893875, -0.4714398682117462], [-0.15985141694545746, -0.4709000587463379], [-0.16666632890701294, -0.47334906458854675], [-0.17144593596458435, -0.4759167432785034], [-0.21356970071792603, -0.4678713381290436], [-0.265215128660202, -0.4693000912666321], [-0.29750049114227295, -0.4691943824291229], [-0.31053608655929565, -0.468332976102829], [-0.31211790442466736, -0.4679393470287323], [-0.30899375677108765, -0.46667978167533875], [-0.30396154522895813, -0.4628291428089142], [-0.3104391396045685, -0.4478009343147278], [-0.330694317817688, -0.4517039656639099], [-0.3383442163467407, -0.4652811288833618], [-0.34643781185150146, -0.4740522503852844], [-0.3511776030063629, -0.46944165229797363], [-0.33997419476509094, -0.4453510642051697], [-0.330221563577652, -0.4143151640892029], [-0.3181836009025574, -0.38478055596351624], [-0.05070042982697487, -0.31990543007850647], [-0.03303370252251625, -0.26258841156959534], [-0.016837650910019875, -0.24855686724185944], [-0.013804042711853981, -0.23089149594306946], [-0.2600404620170593, -0.31092318892478943], [-0.26319414377212524, -0.3143896758556366], [-0.24834895133972168, -0.31093060970306396], [-0.23322951793670654, -0.31259283423423767], [-0.30828601121902466, -0.33130401372909546], [-0.28978535532951355, -0.35000157356262207], [-0.27974411845207214, -0.3609170615673065], [-0.2623872756958008, -0.37232765555381775], [-0.2490820288658142, -0.38237547874450684], [-0.23545385897159576, -0.39303234219551086], [-0.2145557701587677, -0.40388333797454834], [-0.20470203459262848, -0.41012781858444214], [-0.20029230415821075, -0.4116765260696411], [-0.1968306005001068, -0.4148455858230591], [-0.19793976843357086, -0.41700470447540283], [-0.19630426168441772, -0.4250780940055847], [-0.19487106800079346, -0.44161951541900635], [-0.19836854934692383, -0.45972317457199097], [-0.20273087918758392, -0.48007893562316895], [-0.20806314051151276, -0.5000874996185303], [-0.20015881955623627, -0.5029650926589966], [-0.1975281834602356, -0.5035268068313599], [-0.19831018149852753, -0.503757119178772], [-0.1992846131324768, -0.5037056803703308], [-0.2002609223127365, -0.503099799156189], [-0.20124737918376923, -0.5033187866210938], [-0.20293034613132477, -0.5025849938392639], [-0.20094719529151917, -0.5001002550125122], [-0.198316290974617, -0.4960896968841553], [-0.19826176762580872, -0.4930514991283417], [-0.2035139501094818, -0.4917147159576416], [-0.2077714204788208, -0.49100688099861145], [-0.21350133419036865, -0.49183711409568787], [-0.22027258574962616, -0.492457777261734], [-0.2252853661775589, -0.49191850423812866], [-0.22164134681224823, -0.4859444499015808], [-0.21877813339233398, -0.4786143898963928], [-0.20126736164093018, -0.47765910625457764], [-0.18697547912597656, -0.4766122102737427], [-0.17215165495872498, -0.4762808084487915], [-0.16318346560001373, -0.48082467913627625], [-0.17410507798194885, -0.4746711850166321], [-0.19471968710422516, -0.47394049167633057], [-0.2169928103685379, -0.47259241342544556], [-0.21837711334228516, -0.4589069187641144], [-0.23046164214611053, -0.4628528356552124], [-0.23109321296215057, -0.4655342102050781], [-0.23147203028202057, -0.4657350182533264], [-0.2341400682926178, -0.4656910300254822], [-0.23778845369815826, -0.46447497606277466], [-0.23931480944156647, -0.4620305001735687], [-0.23841066658496857, -0.4587818384170532], [-0.2333955317735672, -0.45623522996902466], [-0.23661217093467712, -0.45740461349487305], [-0.23804971575737, -0.4645039141178131], [-0.23862434923648834, -0.4730105996131897], [-0.23745915293693542, -0.48185694217681885], [-0.21490558981895447, -0.4624449610710144], [-0.1997944414615631, -0.43823009729385376], [-0.1963811218738556, -0.4169769883155823], [-0.19737176597118378, -0.40221744775772095], [-0.20005354285240173, -0.3990658223628998], [-0.20856449007987976, -0.4002397358417511], [-0.21852752566337585, -0.4018631875514984], [-0.2285151332616806, -0.4028943181037903], [-0.23328758776187897, -0.4113489091396332], [-0.2383616417646408, -0.41874393820762634], [-0.24531617760658264, -0.42564308643341064], [-0.2519850730895996, -0.4327819347381592], [-0.26882046461105347, -0.42555394768714905], [-0.29643839597702026, -0.41823050379753113], [-0.3239504098892212, -0.42403969168663025], [-0.34557366371154785, -0.42944008111953735], [-0.35699573159217834, -0.43868958950042725], [-0.36800533533096313, -0.4452257752418518], [-0.3789166510105133, -0.4516757130622864], [-0.3896213471889496, -0.4595692753791809], [-0.40329015254974365, -0.460647314786911], [-0.4164831042289734, -0.4622458815574646], [-0.42948368191719055, -0.46339350938796997], [-0.4421553909778595, -0.46416953206062317], [-0.45250964164733887, -0.4782524108886719], [-0.4668963849544525, -0.48969995975494385], [-0.4807387590408325, -0.5014485120773315], [-0.47847628593444824, -0.5031470060348511], [-0.47078901529312134, -0.4947843849658966], [-0.46447309851646423, -0.48775866627693176], [-0.4581822454929352, -0.4804612994194031], [-0.4473423957824707, -0.46814754605293274], [-0.4360559582710266, -0.4536569118499756], [-0.4254564344882965, -0.4385340213775635], [-0.4138540029525757, -0.42280954122543335], [-0.4772961437702179, -0.4522351622581482], [-0.47064468264579773, -0.46834832429885864], [-0.4610253572463989, -0.46636977791786194], [-0.4479353427886963, -0.45993831753730774], [-0.43337854743003845, -0.45591849088668823], [-0.42141568660736084, -0.4538393020629883], [-0.4125480353832245, -0.45510753989219666], [-0.3997651934623718, -0.4644358456134796], [-0.3880855143070221, -0.4747648239135742], [-0.3784307539463043, -0.48531657457351685], [-0.3685697019100189, -0.4957111179828644], [-0.35880246758461, -0.5057263970375061], [-0.35143715143203735, -0.5156829953193665], [-0.3504141867160797, -0.5271710753440857], [-0.350145161151886, -0.5396549701690674], [-0.35582423210144043, -0.5577747821807861], [-0.3543122708797455, -0.5785850286483765], [-0.34820306301116943, -0.5894885063171387], [-0.3456896245479584, -0.5988410711288452], [-0.345233678817749, -0.6085213422775269], [-0.3454824388027191, -0.618498682975769], [-0.333762526512146, -0.6357219219207764], [-0.33152663707733154, -0.6462480425834656], [-0.33753105998039246, -0.6564469337463379], [-0.3498588800430298, -0.6662987470626831], [-0.36699822545051575, -0.6698976755142212], [-0.38275963068008423, -0.673539400100708], [-0.3988036811351776, -0.6773348450660706], [-0.40659740567207336, -0.6770861148834229]], 'rewards': [-0.019170967862010002, -0.019145647063851357, -0.019141782075166702, -0.019291287288069725, -0.019290396943688393, -0.01928994059562683, -0.01929178647696972, -0.019353002309799194, -0.019354810938239098, -0.019356420263648033, -0.019354049116373062, -0.01936984620988369, -0.019368184730410576, -0.019367672502994537, -0.019368374720215797, -0.019383039325475693, -0.0193848367780447, -0.019384393468499184, -0.019381912425160408, -0.019404366612434387, -0.019402196630835533, -0.0194034855812788, -0.01940639689564705, -0.019427910447120667, -0.01942356303334236, -0.019425401464104652, -0.019420674070715904, -0.01943657547235489, -0.01943327486515045, -0.01942964270710945, -0.01942487061023712, -0.019439205527305603, -0.019442033022642136, -0.0194406695663929, -0.01944058947265148, -0.019361302256584167, -0.019361212849617004, -0.019364140927791595, -0.01935894787311554, -0.019197290763258934, -0.01920103095471859, -0.019200466573238373, -0.01919889636337757, -0.019088219851255417, -0.019081376492977142, -0.019072815775871277, -0.019066069275140762, -0.01902373693883419, -0.019199036061763763, -0.019794080406427383, -0.020396310836076736, -0.02096792683005333, -0.02104489877820015, -0.021041350439190865, -0.0210406556725502, -0.021004734560847282, -0.021004635840654373, -0.021005291491746902, -0.021008556708693504, -0.020979002118110657, -0.02063603699207306, -0.02024267613887787, -0.019847344607114792, -0.019423887133598328, -0.01902514137327671, -0.018916761502623558, -0.01891929656267166, -0.018896790221333504, -0.018841847777366638, -0.018841907382011414, -0.018840858712792397, -0.01882779970765114, -0.01883784867823124, -0.01884402520954609, -0.018846703693270683, -0.018852952867746353, -0.018853910267353058, -0.018856504932045937, -0.01886013150215149, -0.018863536417484283, -0.018868273124098778, -0.01887313649058342, -0.018877265974879265, -0.018885571509599686, -0.01888800598680973, -0.0188918374478817, -0.018895676359534264, -0.0189049132168293, -0.018907349556684494, -0.018909582868218422, -0.018909180536866188, -0.019418111070990562, -0.01941824145615101, -0.019419154152274132, -0.019419806078076363, -0.01955556310713291, -0.019559286534786224, -0.019561808556318283, -0.0195633415132761, -0.019716739654541016, -0.019719775766134262, -0.019727522507309914, -0.019732916727662086, -0.01979498751461506, -0.019787052646279335, -0.01977534033358097, -0.019768550992012024, -0.019787540659308434, -0.019786611199378967, -0.019788287580013275, -0.01978783681988716, -0.019802624359726906, -0.019803181290626526, -0.01980094239115715, -0.019799718633294106, -0.020205041393637657, -0.02033662050962448, -0.020320115610957146, -0.020290231332182884, -0.020309802144765854, -0.020456558093428612, -0.02041652426123619, -0.020379262045025826, -0.020390715450048447, -0.020380845293402672, -0.020362326875329018, -0.02035568654537201, -0.020357931032776833, -0.02035496197640896, -0.02035360224545002, -0.020348649471998215, -0.020263826474547386, -0.020258164033293724, -0.020249657332897186, -0.020243115723133087, -0.020089736208319664, -0.020084569230675697, -0.020080260932445526, -0.021063661202788353, -0.02201436087489128, -0.02216746285557747, -0.022152932360768318, -0.02215183898806572, -0.02117202617228031, -0.021346352994441986, -0.02154911868274212, -0.021750448271632195, -0.021925009787082672, -0.02177896909415722, -0.021571911871433258, -0.02137792482972145, -0.021141523495316505, -0.021116048097610474, -0.021113600581884384, -0.02111087553203106, -0.021078769117593765, -0.020908961072564125, -0.02070716768503189, -0.020507602021098137, -0.02027810364961624, -0.019901955500245094, -0.019490474835038185, -0.019081493839621544, -0.01894092559814453, -0.01892208680510521, -0.018920933827757835, -0.01891312375664711, -0.01889529824256897, -0.01881703920662403, -0.018812645226716995, -0.018815014511346817, -0.018820298835635185, -0.018834875896573067, -0.018833983689546585, -0.018834905698895454, -0.01883639395236969, -0.018850553780794144, -0.01885695569217205, -0.01886596716940403, -0.018878543749451637, -0.018884647637605667, -0.018888864666223526, -0.0188929233700037, -0.018899986520409584, -0.01890542171895504, -0.018919507041573524, -0.0189349502325058, -0.01945464499294758, -0.019459882751107216, -0.01946752890944481, -0.019474288448691368, -0.019613508135080338, -0.019617997109889984, -0.019619720056653023, -0.0196226816624403, -0.01977722719311714, -0.019776279106736183, -0.019774002954363823, -0.019766397774219513, -0.01982259936630726, -0.019825296476483345, -0.019826970994472504, -0.019828330725431442, -0.01985005848109722, -0.01985248737037182, -0.019861772656440735, -0.019860222935676575, -0.019874457269906998, -0.01987571269273758, -0.019876966252923012, -0.019874075427651405, -0.020271658897399902, -0.02045290358364582, -0.020439814776182175, -0.02039049006998539, -0.020402561873197556, -0.02049841172993183, -0.020442811772227287, -0.0204460509121418, -0.02046724408864975, -0.020464401692152023, -0.02044699713587761, -0.020437154918909073, -0.02043605037033558, -0.020414790138602257, -0.02037421613931656, -0.02033981680870056, -0.02024119719862938, -0.020215287804603577, -0.020206725224852562, -0.020202649757266045, -0.02004910632967949, -0.020055457949638367, -0.02005847543478012, -0.020062187686562538, -0.019961806014180183, -0.019968902692198753, -0.01996791921555996, -0.019965510815382004, -0.019083570688962936, -0.019093628972768784, -0.019097531214356422, -0.019105538725852966, -0.01909075677394867, -0.01909896545112133, -0.01908436045050621, -0.019083792343735695, -0.01905178092420101, -0.01905115693807602, -0.01903989352285862, -0.01903342455625534, -0.018997395411133766, -0.018994318321347237, -0.01898442581295967, -0.01897837221622467, -0.01895369216799736, -0.018942642956972122, -0.018934303894639015, -0.018927156925201416, -0.018898501992225647, -0.01885286346077919, -0.018852176144719124, -0.01885172538459301, -0.018839966505765915, -0.01880810409784317, -0.018807437270879745, -0.018807319924235344, -0.018813105300068855, -0.01885356567800045, -0.018846552819013596, -0.01886594481766224, -0.018886256963014603, -0.018899982795119286, -0.018906157463788986, -0.018914565443992615, -0.01892935112118721, -0.018940402194857597, -0.018938513472676277, -0.01893654465675354, -0.018937217071652412, -0.018947457894682884, -0.018956083804368973, -0.018962005153298378, -0.019466238096356392, -0.01946329139173031, -0.019459543749690056, -0.019455835223197937, -0.019588643684983253, -0.01958339288830757, -0.019586512818932533, -0.019586961716413498, -0.0197385735809803, -0.01973762921988964, -0.019741885364055634, -0.019746743142604828, -0.01980721205472946, -0.01981101557612419, -0.019805526360869408, -0.019807880744338036, -0.019830966368317604, -0.019836219027638435, -0.019846398383378983, -0.01986144483089447, -0.019884807989001274, -0.0198935829102993, -0.019895991310477257, -0.01988896168768406, -0.02029592916369438, -0.02042643167078495, -0.020398614928126335, -0.0203691516071558, -0.020383816212415695, -0.02041972056031227, -0.020406750962138176, -0.02040466107428074, -0.020423026755452156, -0.02041901834309101, -0.020394902676343918, -0.020380105823278427, -0.020376812666654587, -0.020348362624645233, -0.02032523788511753, -0.020303618162870407, -0.02020857110619545, -0.020199470221996307, -0.02018916606903076, -0.02017870917916298, -0.02001970447599888, -0.02001822739839554, -0.020017536357045174, -0.020019041374325752, -0.019923316314816475, -0.019930029287934303, -0.019935013726353645, -0.019939960911870003, -0.019057394936680794, -0.019060982391238213, -0.01907177083194256, -0.01907755248248577, -0.01905928924679756, -0.019060803577303886, -0.019052812829613686, -0.019053390249609947, -0.01902327872812748, -0.01901676505804062, -0.01900436170399189, -0.018993616104125977, -0.018951842561364174, -0.018940946087241173, -0.01892981119453907, -0.018921077251434326, -0.018892157822847366, -0.018892819061875343, -0.018898947164416313, -0.018900176510214806, -0.018875783309340477, -0.01884719729423523, -0.018850384280085564, -0.018868805840611458, -0.018866335973143578, -0.018813421949744225, -0.018822072073817253, -0.01883457601070404, -0.01885656639933586, -0.018903370946645737, -0.01888999342918396, -0.018905146047472954, -0.018916867673397064, -0.018915947526693344, -0.01891987770795822, -0.018923508003354073, -0.018929317593574524, -0.018932905048131943, -0.018934091553092003, -0.018934709951281548, -0.018937913700938225, -0.018935557454824448, -0.018934352323412895, -0.018933508545160294, -0.019436147063970566, -0.019433043897151947, -0.019429832696914673, -0.01942703127861023, -0.01956995017826557, -0.019568651914596558, -0.019569031894207, -0.019568106159567833, -0.019718019291758537, -0.019718240946531296, -0.019718913361430168, -0.01972031220793724, -0.019782014191150665, -0.01978558674454689, -0.01979612000286579, -0.019809845834970474, -0.019838815554976463, -0.019847888499498367, -0.019844530150294304, -0.019845979288220406, -0.01984540931880474, -0.019838446751236916, -0.019853657111525536, -0.019850745797157288, -0.020268525928258896, -0.020241079851984978, -0.020230166614055634, -0.02021932229399681, -0.020241988822817802, -0.02025178261101246, -0.020252134650945663, -0.02026146650314331, -0.020283928140997887, -0.02028929814696312, -0.02030840888619423, -0.02030600607395172, -0.02033442072570324, -0.020335927605628967, -0.020328396931290627, -0.020298300310969353, -0.020199446007609367, -0.020188435912132263, -0.02018660493195057, -0.02019108273088932, -0.020033417269587517, -0.020031996071338654, -0.020029520615935326, -0.020028145983815193, -0.019919458776712418, -0.02017786167562008, -0.0266119334846735, -0.03218008950352669, -0.030597183853387833, -0.030623745173215866, -0.03061191365122795, -0.030619246885180473, -0.03058098442852497, -0.030919814482331276, -0.0364321693778038, -0.04134400933980942, -0.04129546508193016, -0.04132351651787758, -0.04132000729441643, -0.04133826866745949, -0.04129096120595932, -0.04132363572716713, -0.04135936498641968, -0.04134161397814751, -0.035938993096351624, -0.035853806883096695, -0.035885728895664215, -0.03592395782470703, -0.03589310869574547, -0.035868436098098755, -0.04124293103814125, -0.041265733540058136, -0.041229695081710815, -0.040891751646995544, -0.046301234513521194, -0.046306341886520386, -0.046318307518959045, -0.018948420882225037, -0.018868841230869293, -0.01888221502304077, -0.018887262791395187, -0.018893107771873474, -0.01889682374894619, -0.018911218270659447, -0.018926367163658142, -0.018930647522211075, -0.01893528550863266, -0.018936138600111008, -0.018944690003991127, -0.018945293501019478, -0.018950538709759712, -0.018956566229462624, -0.019469471648335457, -0.019469229504466057, -0.01946971006691456, -0.019471073523163795, -0.019606783986091614, -0.019607091322541237, -0.019606467336416245, -0.01960468478500843, -0.019755110144615173, -0.019752800464630127, -0.019752444699406624, -0.01975146494805813, -0.01981048658490181, -0.019807012751698494, -0.019802125170826912, -0.01979849673807621, -0.0198095440864563, -0.019805999472737312, -0.019810892641544342, -0.01981230638921261, -0.01982612907886505, -0.019825048744678497, -0.019823510199785233, -0.01982121542096138, -0.0202313344925642, -0.020334498956799507, -0.020270779728889465, -0.02028055302798748, -0.020310217514634132, -0.02640797384083271, -0.026356635615229607, -0.026334263384342194, -0.032123588025569916, -0.03213953971862793, -0.03212466463446617, -0.03213236853480339, -0.03216424584388733, -0.032531168311834335, -0.03829168528318405, -0.03797126188874245, -0.03782908245921135, -0.03783044219017029, -0.037831198424100876, -0.0381033793091774, -0.04352584481239319, -0.043539319187402725, -0.0432809442281723, -0.0432857982814312, -0.04305674880743027, -0.04332331195473671, -0.049264222383499146, -0.05471336096525192, -0.05231839418411255, -0.05775691568851471, -0.057553499937057495, -0.057826362550258636, -0.06349685043096542, -0.06911178678274155, -0.07436258345842361, -0.07392363995313644, -0.08470489084720612, -0.07935164123773575, -0.07938084006309509, -0.07941372692584991, -0.07930300384759903, -0.07393211126327515, -0.0739227831363678, -0.0685335099697113, -0.06840729713439941, -0.06839744746685028, -0.06843851506710052, -0.06845388561487198, -0.06837273389101028, -0.06307250261306763, -0.06300481408834457, -0.06299979239702225, -0.06831249594688416, -0.06784659624099731, -0.06783652305603027, -0.06783299893140793, -0.06781461089849472, -0.018929067999124527, -0.01891537755727768, -0.018917091190814972, -0.01891808770596981, -0.0189231988042593, -0.018929606303572655, -0.018936825916171074, -0.01894787885248661, -0.018960578367114067, -0.01895897462964058, -0.01895884796977043, -0.018964074552059174, -0.018964480608701706, -0.018963702023029327, -0.018962467089295387, -0.01901569776237011, -0.01901748776435852, -0.0190162044018507, -0.01901659369468689, -0.019150802865624428, -0.019150596112012863, -0.019150828942656517, -0.019150948151946068, -0.0193023644387722, -0.019303323701024055, -0.019302939996123314, -0.019302600994706154, -0.019359387457370758, -0.019358202815055847, -0.01935805007815361, -0.019358009099960327, -0.01937807910144329, -0.0193793885409832, -0.019380493089556694, -0.019381532445549965, -0.019392170011997223, -0.019388241693377495, -0.01938733272254467, -0.019386466592550278, -0.01940830796957016, -0.019407445564866066, -0.01940765045583248, -0.019405053928494453, -0.019430428743362427, -0.01942765712738037, -0.019423851743340492, -0.01942530833184719, -0.019450372084975243, -0.01945049688220024, -0.01944912038743496, -0.019447702914476395, -0.019464796409010887, -0.019466154277324677, -0.019465507939457893, -0.019465073943138123, -0.019385790452361107, -0.019382614642381668, -0.019383404403924942, -0.019383633509278297, -0.019227294251322746, -0.0192232858389616, -0.01921979896724224, -0.01921890676021576, -0.019107894971966743, -0.01910516619682312, -0.019102653488516808, -0.019097967073321342, -0.0190595556050539, -0.019054757431149483, -0.019040705636143684, -0.019032515585422516, -0.0190119631588459, -0.019006241112947464, -0.019006263464689255, -0.01900014840066433, -0.01896396279335022, -0.018960334360599518, -0.01895797811448574, -0.01903383992612362, -0.01920224167406559, -0.019231246784329414, -0.019234534353017807, -0.01923765428364277, -0.0192191731184721, -0.019046379253268242, -0.018926778808236122, -0.018928546458482742, -0.01890810951590538, -0.018876947462558746, -0.01888573355972767, -0.01889508217573166, -0.01888417825102806, -0.018886500969529152, -0.0188913494348526, -0.01889524981379509, -0.018902488052845, -0.018908504396677017, -0.01891445182263851, -0.018921051174402237, -0.018927818164229393, -0.018933191895484924, -0.018939757719635963, -0.018944639712572098, -0.018956724554300308, -0.018961457535624504, -0.018959108740091324, -0.01896224543452263, -0.018968524411320686, -0.018966328352689743, -0.018962165340781212, -0.018959209322929382, -0.01900525577366352, -0.01900077611207962, -0.01899954304099083, -0.01899825967848301, -0.019131585955619812, -0.019131021574139595, -0.019128408282995224, -0.019127851352095604, -0.01927824318408966, -0.019281696528196335, -0.019285250455141068, -0.01928701251745224, -0.01934775337576866, -0.019350450485944748, -0.01935121789574623, -0.019352512434124947, -0.019366400316357613, -0.019366562366485596, -0.019371164962649345, -0.019372696056962013, -0.01938580721616745, -0.019387513399124146, -0.01938217133283615, -0.01938609778881073, -0.01940912753343582, -0.019407259300351143, -0.019408201798796654, -0.019405703991651535, -0.01943030208349228, -0.019428150728344917, -0.019435876980423927, -0.01942596212029457, -0.019439375028014183, -0.019437436014413834, -0.019433453679084778, -0.01943141035735607, -0.019447142258286476, -0.01944350078701973, -0.019442399963736534, -0.0194395761936903, -0.019358588382601738, -0.019355403259396553, -0.01935744471848011, -0.01935589872300625, -0.01920231059193611, -0.019203584641218185, -0.01920466125011444, -0.019211789593100548, -0.019102515652775764, -0.019098294898867607, -0.019089996814727783, -0.019084209576249123, -0.019045745953917503, -0.019042639061808586, -0.01903926394879818, -0.01903512328863144, -0.019007960334420204, -0.019004041329026222, -0.019002055749297142, -0.01906311698257923, -0.019230125471949577, -0.019603179767727852, -0.020001187920570374, -0.02040068991482258, -0.020768260583281517, -0.02047519013285637, -0.020074976608157158, -0.019674688577651978, -0.01924777403473854, -0.01919487677514553, -0.01919642649590969, -0.019196901470422745, -0.019172003492712975, -0.01887870579957962, -0.018878253176808357, -0.01887054368853569, -0.018855653703212738, -0.018850654363632202, -0.018852774053812027, -0.018852898851037025, -0.018857095390558243, -0.01886322908103466, -0.018863748759031296, -0.018868062645196915, -0.018872426822781563, -0.018874580040574074, -0.01887446828186512, -0.018874501809477806, -0.018879860639572144, -0.018884846940636635, -0.01888969913125038, -0.01889244094491005, -0.018901344388723373, -0.018901310861110687, -0.018902519717812538, -0.018903393298387527, -0.01941206492483616, -0.019415464252233505, -0.019417040050029755, -0.019417935982346535, -0.01955324411392212, -0.01955251954495907, -0.019555576145648956, -0.019560571759939194, -0.019717996940016747, -0.019722718745470047, -0.01972115971148014, -0.01971917226910591, -0.01977761834859848, -0.01977665163576603, -0.01977456547319889, -0.019773058593273163, -0.019783439114689827, -0.019782664254307747, -0.019776107743382454, -0.019776873290538788, -0.019783981144428253, -0.019772863015532494, -0.01975732110440731, -0.019748758524656296, -0.020163631066679955, -0.020323961973190308, -0.020208299160003662, -0.02018003538250923, -0.020206954330205917, -0.1710759401321411, -0.17058712244033813, -0.1705174446105957, -0.1729821264743805, -0.17068442702293396, -0.17208868265151978, -0.17123836278915405, -0.17143481969833374, -0.1713993400335312, -0.17138783633708954, -0.17139503359794617, -0.17046037316322327, -0.17049270868301392, -0.17050926387310028, -0.15904060006141663, -0.15783394873142242, -0.15785357356071472, -0.14646382629871368, -0.129373699426651, -0.128680020570755, -0.12870603799819946, -0.12873436510562897, -0.1174117773771286, -0.11225362867116928, -0.11225888133049011, -0.1068515032529831, -0.1068623885512352, -0.10673597455024719, -0.10132740437984467, -0.095917247235775, -0.09050599485635757, -0.09085816890001297, -0.08553637564182281, -0.08011311292648315, -0.08011125028133392, -0.07457780092954636, -0.07427739351987839, -0.07403525710105896, -0.07403767108917236, -0.07394882291555405, -0.07395097613334656, -0.07395143806934357, -0.0739520713686943, -0.07385414838790894, -0.0738614872097969, -0.07386734336614609, -0.07388020306825638, -0.07384214550256729, -0.07344289124011993, -0.07348310947418213, -0.07342865318059921, -0.07341330498456955, -0.019065741449594498, -0.01887589879333973, -0.018879959359765053, -0.018878748640418053, -0.018881049007177353, -0.018882952630519867, -0.018883714452385902, -0.01889045163989067, -0.01888955943286419, -0.01888916827738285, -0.01889384351670742, -0.018909156322479248, -0.018918650224804878, -0.018924422562122345, -0.01893136277794838, -0.01945737563073635, -0.019465085119009018, -0.019471734762191772, -0.019477173686027527, -0.019616160541772842, -0.019620036706328392, -0.019624963402748108, -0.019625958055257797, -0.01977519504725933, -0.019777175039052963, -0.019784489646553993, -0.019785964861512184, -0.019845668226480484, -0.019843537360429764, -0.019841164350509644, -0.019848428666591644, -0.0198698528110981, -0.01986745186150074, -0.019870756193995476, -0.019876888021826744, -0.01989203877747059, -0.019900893792510033, -0.019904596731066704, -0.019903605803847313, -0.020318543538451195, -0.02042446658015251, -0.020368101075291634, -0.02036137320101261, -0.020383300259709358, -0.02035210281610489, -0.020343497395515442, -0.02033207193017006, -0.02034691534936428, -0.02034369297325611, -0.020372465252876282, -0.020371824502944946, -0.020469974726438522, -0.020952295511960983, -0.020901957526803017, -0.02095760963857174, -0.020941361784934998, -0.02085033804178238, -0.020840683951973915, -0.02078462578356266, -0.020615868270397186, -0.020604481920599937, -0.020458616316318512, -0.02029624581336975, -0.02004126086831093, -0.020043374970555305, -0.020045723766088486, -0.020048588514328003, -0.019170986488461494, -0.019170546904206276, -0.019176186993718147, -0.019177060574293137, -0.019409313797950745, -0.019636698067188263, -0.019826387986540794, -0.020024482160806656, -0.02018764615058899, -0.02038724720478058, -0.020586639642715454, -0.02078399248421192, -0.02094692923128605, -0.020798278972506523, -0.020590441301465034, -0.02038421295583248, -0.020155129954218864, -0.019953949376940727, -0.01975320279598236, -0.01954936608672142, -0.019318029284477234, -0.019236663356423378, -0.019219566136598587, -0.019213249906897545, -0.01919485442340374, -0.018855400383472443, -0.01885705068707466, -0.018853554502129555, -0.018856562674045563, -0.01889093406498432, -0.018890677019953728, -0.018898148089647293, -0.018898341804742813, -0.0188978873193264, -0.018894867971539497, -0.018900955095887184, -0.01893097534775734, -0.018964609131217003, -0.018974026665091515, -0.018984969705343246, -0.01899118721485138, -0.018988344818353653, -0.01897977665066719, -0.0189787819981575, -0.019482502713799477, -0.0194784514605999, -0.01947721838951111, -0.01948820799589157, -0.01962433010339737, -0.019628243520855904, -0.019630590453743935, -0.019631605595350266, -0.019784580916166306, -0.019787833094596863, -0.01978820562362671, -0.01979130692780018, -0.019858285784721375, -0.019861863926053047, -0.019867563620209694, -0.019867591559886932, -0.019887937232851982, -0.019893204793334007, -0.019897175952792168, -0.01989738643169403, -0.019912967458367348, -0.019921759143471718, -0.02015017531812191, -0.02043774724006653, -0.021189004182815552, -0.020435670390725136, -0.020353617146611214, -0.020342137664556503, -0.02036256715655327, -0.020270811393857002, -0.020284486934542656, -0.020282605662941933, -0.020297745242714882, -0.020290469750761986, -0.020298827439546585, -0.020310411229729652, -0.020335538312792778, -0.02125118114054203, -0.02180090919137001, -0.021690230816602707, -0.02164565771818161, -0.021429551765322685, -0.021209467202425003, -0.021053139120340347, -0.020767033100128174, -0.02048775926232338, -0.0201200433075428, -0.02011989802122116, -0.02001252770423889, -0.020020075142383575, -0.020022964105010033, -0.020029766485095024, -0.019409406930208206, -0.019464069977402687, -0.019460180774331093, -0.0194613765925169, -0.019437523558735847, -0.019436882808804512, -0.019425073638558388, -0.01941864751279354, -0.0193796269595623, -0.019547823816537857, -0.019744956865906715, -0.019939642399549484, -0.02010386809706688, -0.01977836899459362, -0.019368810579180717, -0.018999475985765457, -0.018964698538184166, -0.018952038139104843, -0.018942728638648987, -0.01893405057489872, -0.018905537202954292, -0.0188775435090065, -0.018855515867471695, -0.018850579857826233, -0.018833231180906296, -0.01880079135298729, -0.01880142278969288, -0.0187987070530653, -0.018799304962158203, -0.018830033019185066, -0.018830332905054092, -0.018838735297322273, -0.018846115097403526, -0.018849536776542664, -0.018847301602363586, -0.01884922757744789, -0.01885644532740116, -0.018859846517443657, -0.018866686150431633, -0.018871163949370384, -0.018879517912864685, -0.018888261169195175, -0.018896128982305527, -0.018903743475675583, -0.019414225593209267, -0.019416380673646927, -0.019416602328419685, -0.019420664757490158, -0.0195569209754467, -0.019557757303118706, -0.01955958642065525, -0.019565964117646217, -0.019717495888471603, -0.01972108893096447, -0.01973865181207657, -0.019748177379369736, -0.019820915535092354, -0.019831525161862373, -0.01982957310974598, -0.019837141036987305, -0.019856534898281097, -0.01985900290310383, -0.019940849393606186, -0.020463360473513603, -0.020989151671528816, -0.021274976432323456, -0.02138000726699829, -0.0214504636824131, -0.021936340257525444, -0.020246602594852448, -0.020233601331710815, -0.02023160643875599, -0.020300228148698807, -0.0202310923486948, -0.020231548696756363, -0.02022715099155903, -0.020245183259248734, -0.020248599350452423, -0.020255671814084053, -0.020260654389858246, -0.02055376209318638, -0.0209969449788332, -0.021174531430006027, -0.021266842260956764, -0.02117348648607731, -0.020917223766446114, -0.02079010009765625, -0.020586369559168816, -0.020149318501353264, -0.02004079706966877, -0.02003980614244938, -0.02002515085041523, -0.019915873184800148, -0.019924072548747063, -0.01993195153772831, -0.019940119236707687, -0.01906789280474186, -0.0190668273717165, -0.01906551606953144, -0.01907464861869812, -0.019055455923080444, -0.019058849662542343, -0.019038422033190727, -0.019029607996344566, -0.018993902951478958, -0.018993530422449112, -0.01898851990699768, -0.018984679132699966, -0.018947318196296692, -0.018937893211841583, -0.01892552338540554, -0.018916908651590347, -0.018884869292378426, -0.018886355683207512, -0.018887076526880264, -0.01888757012784481, -0.01886027492582798, -0.018941447138786316, -0.018910007551312447, -0.018923601135611534, -0.018909864127635956, -0.018844589591026306, -0.018845828250050545, -0.018851997330784798, -0.018858371302485466, -0.01886068470776081, -0.018873171880841255, -0.018882961943745613, -0.018890900537371635, -0.018898965790867805, -0.0189017653465271, -0.01890331506729126, -0.018911411985754967, -0.018911238759756088, -0.018911849707365036, -0.018913233652710915, -0.01891792006790638, -0.01891728863120079, -0.018916640430688858, -0.018915845081210136, -0.019422445446252823, -0.019422480836510658, -0.019419658929109573, -0.019416924566030502, -0.019558383151888847, -0.019559433683753014, -0.019561907276511192, -0.01956348679959774, -0.019715523347258568, -0.01971444860100746, -0.019714441150426865, -0.019715696573257446, -0.019778618589043617, -0.019781678915023804, -0.019779225811362267, -0.01977689564228058, -0.019794704392552376, -0.019796088337898254, -0.01980067603290081, -0.01980425976216793, -0.019819308072328568, -0.01982317492365837, -0.019821785390377045, -0.019818391650915146, -0.020226608961820602, -0.020276710391044617, -0.02025504969060421, -0.020247463136911392, -0.02027665637433529, -0.02017795294523239, -0.02017385885119438, -0.020169086754322052, -0.020187916234135628, -0.020185278728604317, -0.020186351612210274, -0.020190414041280746, -0.02021496184170246, -0.020236117765307426, -0.02024773322045803, -0.020258309319615364, -0.020193258300423622, -0.020205892622470856, -0.02021300606429577, -0.020216327160596848, -0.020068814978003502, -0.02006704732775688, -0.02006404846906662, -0.020062731578946114, -0.01995026506483555, -0.019951434805989265, -0.019949646666646004, -0.019947752356529236, -0.019063344225287437, -0.0190597977489233, -0.019058212637901306, -0.019055712968111038, -0.019029298797249794, -0.01902719773352146, -0.0190125685185194, -0.019001252949237823, -0.01896512694656849, -0.01896471157670021, -0.018964722752571106, -0.019042713567614555, -0.019213205203413963, -0.018934762105345726, -0.01893269084393978, -0.018937116488814354, -0.01891486719250679, -0.018916433677077293, -0.01892263814806938, -0.01892561838030815, -0.018904009833931923, -0.01898959092795849, -0.018949177116155624, -0.018951432779431343, -0.018936727195978165, -0.018888218328356743, -0.018889451399445534, -0.018893476575613022, -0.01890839822590351, -0.018890319392085075, -0.018908178433775902, -0.018911445513367653, -0.018915671855211258, -0.018918756395578384, -0.018922649323940277, -0.01892886869609356, -0.018935706466436386, -0.01893717236816883, -0.018939267843961716, -0.018940027803182602, -0.018948649987578392, -0.018950559198856354, -0.018950888887047768, -0.018951784819364548, -0.019000476226210594, -0.019003979861736298, -0.019003476947546005, -0.019002769142389297, -0.01913684606552124, -0.019136695191264153, -0.019136542454361916, -0.01913616433739662, -0.019287867471575737, -0.019288379698991776, -0.019287949427962303, -0.019286245107650757, -0.019344571977853775, -0.019343450665473938, -0.019342241808772087, -0.01934177801012993, -0.01936207339167595, -0.019364068284630775, -0.01937090791761875, -0.01937422901391983, -0.019390173256397247, -0.019388854503631592, -0.019382132217288017, -0.019375663250684738, -0.0193948931992054, -0.019398219883441925, -0.01939457282423973, -0.01939641684293747, -0.019422005861997604, -0.01942121423780918, -0.019420495256781578, -0.019420621916651726, -0.01944216713309288, -0.01944362185895443, -0.019441742449998856, -0.01944182626903057, -0.019459836184978485, -0.01945693977177143, -0.01946060173213482, -0.019458267837762833, -0.01937311887741089, -0.019370531663298607, -0.01936814934015274, -0.01936417818069458, -0.019206909462809563, -0.019205374643206596, -0.01920553483068943, -0.019204705953598022, -0.019095731899142265, -0.01909133791923523, -0.01908358559012413, -0.01907407119870186, -0.019031452015042305, -0.019029131159186363, -0.019029123708605766, -0.019027497619390488, -0.01900271326303482, -0.018999384716153145, -0.018995054066181183, -0.018991386517882347, -0.0189549271017313, -0.018954742699861526, -0.018955258652567863, -0.01895405724644661, -0.01892433874309063, -0.01892746426165104, -0.018929587677121162, -0.018930329009890556, -0.018906930461525917, -0.0189093928784132, -0.018911218270659447, -0.01891274005174637, -0.018889106810092926, -0.018868032842874527, -0.01888289302587509, -0.018886618316173553, -0.018878033384680748, -0.01888226717710495, -0.018885398283600807, -0.01888796128332615, -0.01889503188431263, -0.0188983753323555, -0.018901245668530464, -0.018904533237218857, -0.018906300887465477, -0.018908750265836716, -0.01890953630208969, -0.018911169841885567, -0.018916483968496323, -0.018917961046099663, -0.018919702619314194, -0.01891946978867054, -0.018925363197922707, -0.01892692595720291, -0.018932532519102097, -0.01893296279013157, -0.01898033544421196, -0.018977340310811996, -0.018973859027028084, -0.018971659243106842, -0.01910358853638172, -0.019103804603219032], 'timestamps': ['2023-08-06 00:15:00-07:00', '2023-08-06 00:30:00-07:00', '2023-08-06 00:45:00-07:00', '2023-08-06 01:00:00-07:00', '2023-08-06 01:15:00-07:00', '2023-08-06 01:30:00-07:00', '2023-08-06 01:45:00-07:00', '2023-08-06 02:00:00-07:00', '2023-08-06 02:15:00-07:00', '2023-08-06 02:30:00-07:00', '2023-08-06 02:45:00-07:00', '2023-08-06 03:00:00-07:00', '2023-08-06 03:15:00-07:00', '2023-08-06 03:30:00-07:00', '2023-08-06 03:45:00-07:00', '2023-08-06 04:00:00-07:00', '2023-08-06 04:15:00-07:00', '2023-08-06 04:30:00-07:00', '2023-08-06 04:45:00-07:00', '2023-08-06 05:00:00-07:00', '2023-08-06 05:15:00-07:00', '2023-08-06 05:30:00-07:00', '2023-08-06 05:45:00-07:00', '2023-08-06 06:00:00-07:00', '2023-08-06 06:15:00-07:00', '2023-08-06 06:30:00-07:00', '2023-08-06 06:45:00-07:00', '2023-08-06 07:00:00-07:00', '2023-08-06 07:15:00-07:00', '2023-08-06 07:30:00-07:00', '2023-08-06 07:45:00-07:00', '2023-08-06 08:00:00-07:00', '2023-08-06 08:15:00-07:00', '2023-08-06 08:30:00-07:00', '2023-08-06 08:45:00-07:00', '2023-08-06 09:00:00-07:00', '2023-08-06 09:15:00-07:00', '2023-08-06 09:30:00-07:00', '2023-08-06 09:45:00-07:00', '2023-08-06 10:00:00-07:00', '2023-08-06 10:15:00-07:00', '2023-08-06 10:30:00-07:00', '2023-08-06 10:45:00-07:00', '2023-08-06 11:00:00-07:00', '2023-08-06 11:15:00-07:00', '2023-08-06 11:30:00-07:00', '2023-08-06 11:45:00-07:00', '2023-08-06 12:00:00-07:00', '2023-08-06 12:15:00-07:00', '2023-08-06 12:30:00-07:00', '2023-08-06 12:45:00-07:00', '2023-08-06 13:00:00-07:00', '2023-08-06 13:15:00-07:00', '2023-08-06 13:30:00-07:00', '2023-08-06 13:45:00-07:00', '2023-08-06 14:00:00-07:00', '2023-08-06 14:15:00-07:00', '2023-08-06 14:30:00-07:00', '2023-08-06 14:45:00-07:00', '2023-08-06 15:00:00-07:00', '2023-08-06 15:15:00-07:00', '2023-08-06 15:30:00-07:00', '2023-08-06 15:45:00-07:00', '2023-08-06 16:00:00-07:00', '2023-08-06 16:15:00-07:00', '2023-08-06 16:30:00-07:00', '2023-08-06 16:45:00-07:00', '2023-08-06 17:00:00-07:00', '2023-08-06 17:15:00-07:00', '2023-08-06 17:30:00-07:00', '2023-08-06 17:45:00-07:00', '2023-08-06 18:00:00-07:00', '2023-08-06 18:15:00-07:00', '2023-08-06 18:30:00-07:00', '2023-08-06 18:45:00-07:00', '2023-08-06 19:00:00-07:00', '2023-08-06 19:15:00-07:00', '2023-08-06 19:30:00-07:00', '2023-08-06 19:45:00-07:00', '2023-08-06 20:00:00-07:00', '2023-08-06 20:15:00-07:00', '2023-08-06 20:30:00-07:00', '2023-08-06 20:45:00-07:00', '2023-08-06 21:00:00-07:00', '2023-08-06 21:15:00-07:00', '2023-08-06 21:30:00-07:00', '2023-08-06 21:45:00-07:00', '2023-08-06 22:00:00-07:00', '2023-08-06 22:15:00-07:00', '2023-08-06 22:30:00-07:00', '2023-08-06 22:45:00-07:00', '2023-08-06 23:00:00-07:00', '2023-08-06 23:15:00-07:00', '2023-08-06 23:30:00-07:00', '2023-08-06 23:45:00-07:00', '2023-08-07 00:00:00-07:00', '2023-08-07 00:15:00-07:00', '2023-08-07 00:30:00-07:00', '2023-08-07 00:45:00-07:00', '2023-08-07 01:00:00-07:00', '2023-08-07 01:15:00-07:00', '2023-08-07 01:30:00-07:00', '2023-08-07 01:45:00-07:00', '2023-08-07 02:00:00-07:00', '2023-08-07 02:15:00-07:00', '2023-08-07 02:30:00-07:00', '2023-08-07 02:45:00-07:00', '2023-08-07 03:00:00-07:00', '2023-08-07 03:15:00-07:00', '2023-08-07 03:30:00-07:00', '2023-08-07 03:45:00-07:00', '2023-08-07 04:00:00-07:00', '2023-08-07 04:15:00-07:00', '2023-08-07 04:30:00-07:00', '2023-08-07 04:45:00-07:00', '2023-08-07 05:00:00-07:00', '2023-08-07 05:15:00-07:00', '2023-08-07 05:30:00-07:00', '2023-08-07 05:45:00-07:00', '2023-08-07 06:00:00-07:00', '2023-08-07 06:15:00-07:00', '2023-08-07 06:30:00-07:00', '2023-08-07 06:45:00-07:00', '2023-08-07 07:00:00-07:00', '2023-08-07 07:15:00-07:00', '2023-08-07 07:30:00-07:00', '2023-08-07 07:45:00-07:00', '2023-08-07 08:00:00-07:00', '2023-08-07 08:15:00-07:00', '2023-08-07 08:30:00-07:00', '2023-08-07 08:45:00-07:00', '2023-08-07 09:00:00-07:00', '2023-08-07 09:15:00-07:00', '2023-08-07 09:30:00-07:00', '2023-08-07 09:45:00-07:00', '2023-08-07 10:00:00-07:00', '2023-08-07 10:15:00-07:00', '2023-08-07 10:30:00-07:00', '2023-08-07 10:45:00-07:00', '2023-08-07 11:00:00-07:00', '2023-08-07 11:15:00-07:00', '2023-08-07 11:30:00-07:00', '2023-08-07 11:45:00-07:00', '2023-08-07 12:00:00-07:00', '2023-08-07 12:15:00-07:00', '2023-08-07 12:30:00-07:00', '2023-08-07 12:45:00-07:00', '2023-08-07 13:00:00-07:00', '2023-08-07 13:15:00-07:00', '2023-08-07 13:30:00-07:00', '2023-08-07 13:45:00-07:00', '2023-08-07 14:00:00-07:00', '2023-08-07 14:15:00-07:00', '2023-08-07 14:30:00-07:00', '2023-08-07 14:45:00-07:00', '2023-08-07 15:00:00-07:00', '2023-08-07 15:15:00-07:00', '2023-08-07 15:30:00-07:00', '2023-08-07 15:45:00-07:00', '2023-08-07 16:00:00-07:00', '2023-08-07 16:15:00-07:00', '2023-08-07 16:30:00-07:00', '2023-08-07 16:45:00-07:00', '2023-08-07 17:00:00-07:00', '2023-08-07 17:15:00-07:00', '2023-08-07 17:30:00-07:00', '2023-08-07 17:45:00-07:00', '2023-08-07 18:00:00-07:00', '2023-08-07 18:15:00-07:00', '2023-08-07 18:30:00-07:00', '2023-08-07 18:45:00-07:00', '2023-08-07 19:00:00-07:00', '2023-08-07 19:15:00-07:00', '2023-08-07 19:30:00-07:00', '2023-08-07 19:45:00-07:00', '2023-08-07 20:00:00-07:00', '2023-08-07 20:15:00-07:00', '2023-08-07 20:30:00-07:00', '2023-08-07 20:45:00-07:00', '2023-08-07 21:00:00-07:00', '2023-08-07 21:15:00-07:00', '2023-08-07 21:30:00-07:00', '2023-08-07 21:45:00-07:00', '2023-08-07 22:00:00-07:00', '2023-08-07 22:15:00-07:00', '2023-08-07 22:30:00-07:00', '2023-08-07 22:45:00-07:00', '2023-08-07 23:00:00-07:00', '2023-08-07 23:15:00-07:00', '2023-08-07 23:30:00-07:00', '2023-08-07 23:45:00-07:00', '2023-08-08 00:00:00-07:00', '2023-08-08 00:15:00-07:00', '2023-08-08 00:30:00-07:00', '2023-08-08 00:45:00-07:00', '2023-08-08 01:00:00-07:00', '2023-08-08 01:15:00-07:00', '2023-08-08 01:30:00-07:00', '2023-08-08 01:45:00-07:00', '2023-08-08 02:00:00-07:00', '2023-08-08 02:15:00-07:00', '2023-08-08 02:30:00-07:00', '2023-08-08 02:45:00-07:00', '2023-08-08 03:00:00-07:00', '2023-08-08 03:15:00-07:00', '2023-08-08 03:30:00-07:00', '2023-08-08 03:45:00-07:00', '2023-08-08 04:00:00-07:00', '2023-08-08 04:15:00-07:00', '2023-08-08 04:30:00-07:00', '2023-08-08 04:45:00-07:00', '2023-08-08 05:00:00-07:00', '2023-08-08 05:15:00-07:00', '2023-08-08 05:30:00-07:00', '2023-08-08 05:45:00-07:00', '2023-08-08 06:00:00-07:00', '2023-08-08 06:15:00-07:00', '2023-08-08 06:30:00-07:00', '2023-08-08 06:45:00-07:00', '2023-08-08 07:00:00-07:00', '2023-08-08 07:15:00-07:00', '2023-08-08 07:30:00-07:00', '2023-08-08 07:45:00-07:00', '2023-08-08 08:00:00-07:00', '2023-08-08 08:15:00-07:00', '2023-08-08 08:30:00-07:00', '2023-08-08 08:45:00-07:00', '2023-08-08 09:00:00-07:00', '2023-08-08 09:15:00-07:00', '2023-08-08 09:30:00-07:00', '2023-08-08 09:45:00-07:00', '2023-08-08 10:00:00-07:00', '2023-08-08 10:15:00-07:00', '2023-08-08 10:30:00-07:00', '2023-08-08 10:45:00-07:00', '2023-08-08 11:00:00-07:00', '2023-08-08 11:15:00-07:00', '2023-08-08 11:30:00-07:00', '2023-08-08 11:45:00-07:00', '2023-08-08 12:00:00-07:00', '2023-08-08 12:15:00-07:00', '2023-08-08 12:30:00-07:00', '2023-08-08 12:45:00-07:00', '2023-08-08 13:00:00-07:00', '2023-08-08 13:15:00-07:00', '2023-08-08 13:30:00-07:00', '2023-08-08 13:45:00-07:00', '2023-08-08 14:00:00-07:00', '2023-08-08 14:15:00-07:00', '2023-08-08 14:30:00-07:00', '2023-08-08 14:45:00-07:00', '2023-08-08 15:00:00-07:00', '2023-08-08 15:15:00-07:00', '2023-08-08 15:30:00-07:00', '2023-08-08 15:45:00-07:00', '2023-08-08 16:00:00-07:00', '2023-08-08 16:15:00-07:00', '2023-08-08 16:30:00-07:00', '2023-08-08 16:45:00-07:00', '2023-08-08 17:00:00-07:00', '2023-08-08 17:15:00-07:00', '2023-08-08 17:30:00-07:00', '2023-08-08 17:45:00-07:00', '2023-08-08 18:00:00-07:00', '2023-08-08 18:15:00-07:00', '2023-08-08 18:30:00-07:00', '2023-08-08 18:45:00-07:00', '2023-08-08 19:00:00-07:00', '2023-08-08 19:15:00-07:00', '2023-08-08 19:30:00-07:00', '2023-08-08 19:45:00-07:00', '2023-08-08 20:00:00-07:00', '2023-08-08 20:15:00-07:00', '2023-08-08 20:30:00-07:00', '2023-08-08 20:45:00-07:00', '2023-08-08 21:00:00-07:00', '2023-08-08 21:15:00-07:00', '2023-08-08 21:30:00-07:00', '2023-08-08 21:45:00-07:00', '2023-08-08 22:00:00-07:00', '2023-08-08 22:15:00-07:00', '2023-08-08 22:30:00-07:00', '2023-08-08 22:45:00-07:00', '2023-08-08 23:00:00-07:00', '2023-08-08 23:15:00-07:00', '2023-08-08 23:30:00-07:00', '2023-08-08 23:45:00-07:00', '2023-08-09 00:00:00-07:00', '2023-08-09 00:15:00-07:00', '2023-08-09 00:30:00-07:00', '2023-08-09 00:45:00-07:00', '2023-08-09 01:00:00-07:00', '2023-08-09 01:15:00-07:00', '2023-08-09 01:30:00-07:00', '2023-08-09 01:45:00-07:00', '2023-08-09 02:00:00-07:00', '2023-08-09 02:15:00-07:00', '2023-08-09 02:30:00-07:00', '2023-08-09 02:45:00-07:00', '2023-08-09 03:00:00-07:00', '2023-08-09 03:15:00-07:00', '2023-08-09 03:30:00-07:00', '2023-08-09 03:45:00-07:00', '2023-08-09 04:00:00-07:00', '2023-08-09 04:15:00-07:00', '2023-08-09 04:30:00-07:00', '2023-08-09 04:45:00-07:00', '2023-08-09 05:00:00-07:00', '2023-08-09 05:15:00-07:00', '2023-08-09 05:30:00-07:00', '2023-08-09 05:45:00-07:00', '2023-08-09 06:00:00-07:00', '2023-08-09 06:15:00-07:00', '2023-08-09 06:30:00-07:00', '2023-08-09 06:45:00-07:00', '2023-08-09 07:00:00-07:00', '2023-08-09 07:15:00-07:00', '2023-08-09 07:30:00-07:00', '2023-08-09 07:45:00-07:00', '2023-08-09 08:00:00-07:00', '2023-08-09 08:15:00-07:00', '2023-08-09 08:30:00-07:00', '2023-08-09 08:45:00-07:00', '2023-08-09 09:00:00-07:00', '2023-08-09 09:15:00-07:00', '2023-08-09 09:30:00-07:00', '2023-08-09 09:45:00-07:00', '2023-08-09 10:00:00-07:00', '2023-08-09 10:15:00-07:00', '2023-08-09 10:30:00-07:00', '2023-08-09 10:45:00-07:00', '2023-08-09 11:00:00-07:00', '2023-08-09 11:15:00-07:00', '2023-08-09 11:30:00-07:00', '2023-08-09 11:45:00-07:00', '2023-08-09 12:00:00-07:00', '2023-08-09 12:15:00-07:00', '2023-08-09 12:30:00-07:00', '2023-08-09 12:45:00-07:00', '2023-08-09 13:00:00-07:00', '2023-08-09 13:15:00-07:00', '2023-08-09 13:30:00-07:00', '2023-08-09 13:45:00-07:00', '2023-08-09 14:00:00-07:00', '2023-08-09 14:15:00-07:00', '2023-08-09 14:30:00-07:00', '2023-08-09 14:45:00-07:00', '2023-08-09 15:00:00-07:00', '2023-08-09 15:15:00-07:00', '2023-08-09 15:30:00-07:00', '2023-08-09 15:45:00-07:00', '2023-08-09 16:00:00-07:00', '2023-08-09 16:15:00-07:00', '2023-08-09 16:30:00-07:00', '2023-08-09 16:45:00-07:00', '2023-08-09 17:00:00-07:00', '2023-08-09 17:15:00-07:00', '2023-08-09 17:30:00-07:00', '2023-08-09 17:45:00-07:00', '2023-08-09 18:00:00-07:00', '2023-08-09 18:15:00-07:00', '2023-08-09 18:30:00-07:00', '2023-08-09 18:45:00-07:00', '2023-08-09 19:00:00-07:00', '2023-08-09 19:15:00-07:00', '2023-08-09 19:30:00-07:00', '2023-08-09 19:45:00-07:00', '2023-08-09 20:00:00-07:00', '2023-08-09 20:15:00-07:00', '2023-08-09 20:30:00-07:00', '2023-08-09 20:45:00-07:00', '2023-08-09 21:00:00-07:00', '2023-08-09 21:15:00-07:00', '2023-08-09 21:30:00-07:00', '2023-08-09 21:45:00-07:00', '2023-08-09 22:00:00-07:00', '2023-08-09 22:15:00-07:00', '2023-08-09 22:30:00-07:00', '2023-08-09 22:45:00-07:00', '2023-08-09 23:00:00-07:00', '2023-08-09 23:15:00-07:00', '2023-08-09 23:30:00-07:00', '2023-08-09 23:45:00-07:00', '2023-08-10 00:00:00-07:00', '2023-08-10 00:15:00-07:00', '2023-08-10 00:30:00-07:00', '2023-08-10 00:45:00-07:00', '2023-08-10 01:00:00-07:00', '2023-08-10 01:15:00-07:00', '2023-08-10 01:30:00-07:00', '2023-08-10 01:45:00-07:00', '2023-08-10 02:00:00-07:00', '2023-08-10 02:15:00-07:00', '2023-08-10 02:30:00-07:00', '2023-08-10 02:45:00-07:00', '2023-08-10 03:00:00-07:00', '2023-08-10 03:15:00-07:00', '2023-08-10 03:30:00-07:00', '2023-08-10 03:45:00-07:00', '2023-08-10 04:00:00-07:00', '2023-08-10 04:15:00-07:00', '2023-08-10 04:30:00-07:00', '2023-08-10 04:45:00-07:00', '2023-08-10 05:00:00-07:00', '2023-08-10 05:15:00-07:00', '2023-08-10 05:30:00-07:00', '2023-08-10 05:45:00-07:00', '2023-08-10 06:00:00-07:00', '2023-08-10 06:15:00-07:00', '2023-08-10 06:30:00-07:00', '2023-08-10 06:45:00-07:00', '2023-08-10 07:00:00-07:00', '2023-08-10 07:15:00-07:00', '2023-08-10 07:30:00-07:00', '2023-08-10 07:45:00-07:00', '2023-08-10 08:00:00-07:00', '2023-08-10 08:15:00-07:00', '2023-08-10 08:30:00-07:00', '2023-08-10 08:45:00-07:00', '2023-08-10 09:00:00-07:00', '2023-08-10 09:15:00-07:00', '2023-08-10 09:30:00-07:00', '2023-08-10 09:45:00-07:00', '2023-08-10 10:00:00-07:00', '2023-08-10 10:15:00-07:00', '2023-08-10 10:30:00-07:00', '2023-08-10 10:45:00-07:00', '2023-08-10 11:00:00-07:00', '2023-08-10 11:15:00-07:00', '2023-08-10 11:30:00-07:00', '2023-08-10 11:45:00-07:00', '2023-08-10 12:00:00-07:00', '2023-08-10 12:15:00-07:00', '2023-08-10 12:30:00-07:00', '2023-08-10 12:45:00-07:00', '2023-08-10 13:00:00-07:00', '2023-08-10 13:15:00-07:00', '2023-08-10 13:30:00-07:00', '2023-08-10 13:45:00-07:00', '2023-08-10 14:00:00-07:00', '2023-08-10 14:15:00-07:00', '2023-08-10 14:30:00-07:00', '2023-08-10 14:45:00-07:00', '2023-08-10 15:00:00-07:00', '2023-08-10 15:15:00-07:00', '2023-08-10 15:30:00-07:00', '2023-08-10 15:45:00-07:00', '2023-08-10 16:00:00-07:00', '2023-08-10 16:15:00-07:00', '2023-08-10 16:30:00-07:00', '2023-08-10 16:45:00-07:00', '2023-08-10 17:00:00-07:00', '2023-08-10 17:15:00-07:00', '2023-08-10 17:30:00-07:00', '2023-08-10 17:45:00-07:00', '2023-08-10 18:00:00-07:00', '2023-08-10 18:15:00-07:00', '2023-08-10 18:30:00-07:00', '2023-08-10 18:45:00-07:00', '2023-08-10 19:00:00-07:00', '2023-08-10 19:15:00-07:00', '2023-08-10 19:30:00-07:00', '2023-08-10 19:45:00-07:00', '2023-08-10 20:00:00-07:00', '2023-08-10 20:15:00-07:00', '2023-08-10 20:30:00-07:00', '2023-08-10 20:45:00-07:00', '2023-08-10 21:00:00-07:00', '2023-08-10 21:15:00-07:00', '2023-08-10 21:30:00-07:00', '2023-08-10 21:45:00-07:00', '2023-08-10 22:00:00-07:00', '2023-08-10 22:15:00-07:00', '2023-08-10 22:30:00-07:00', '2023-08-10 22:45:00-07:00', '2023-08-10 23:00:00-07:00', '2023-08-10 23:15:00-07:00', '2023-08-10 23:30:00-07:00', '2023-08-10 23:45:00-07:00', '2023-08-11 00:00:00-07:00', '2023-08-11 00:15:00-07:00', '2023-08-11 00:30:00-07:00', '2023-08-11 00:45:00-07:00', '2023-08-11 01:00:00-07:00', '2023-08-11 01:15:00-07:00', '2023-08-11 01:30:00-07:00', '2023-08-11 01:45:00-07:00', '2023-08-11 02:00:00-07:00', '2023-08-11 02:15:00-07:00', '2023-08-11 02:30:00-07:00', '2023-08-11 02:45:00-07:00', '2023-08-11 03:00:00-07:00', '2023-08-11 03:15:00-07:00', '2023-08-11 03:30:00-07:00', '2023-08-11 03:45:00-07:00', '2023-08-11 04:00:00-07:00', '2023-08-11 04:15:00-07:00', '2023-08-11 04:30:00-07:00', '2023-08-11 04:45:00-07:00', '2023-08-11 05:00:00-07:00', '2023-08-11 05:15:00-07:00', '2023-08-11 05:30:00-07:00', '2023-08-11 05:45:00-07:00', '2023-08-11 06:00:00-07:00', '2023-08-11 06:15:00-07:00', '2023-08-11 06:30:00-07:00', '2023-08-11 06:45:00-07:00', '2023-08-11 07:00:00-07:00', '2023-08-11 07:15:00-07:00', '2023-08-11 07:30:00-07:00', '2023-08-11 07:45:00-07:00', '2023-08-11 08:00:00-07:00', '2023-08-11 08:15:00-07:00', '2023-08-11 08:30:00-07:00', '2023-08-11 08:45:00-07:00', '2023-08-11 09:00:00-07:00', '2023-08-11 09:15:00-07:00', '2023-08-11 09:30:00-07:00', '2023-08-11 09:45:00-07:00', '2023-08-11 10:00:00-07:00', '2023-08-11 10:15:00-07:00', '2023-08-11 10:30:00-07:00', '2023-08-11 10:45:00-07:00', '2023-08-11 11:00:00-07:00', '2023-08-11 11:15:00-07:00', '2023-08-11 11:30:00-07:00', '2023-08-11 11:45:00-07:00', '2023-08-11 12:00:00-07:00', '2023-08-11 12:15:00-07:00', '2023-08-11 12:30:00-07:00', '2023-08-11 12:45:00-07:00', '2023-08-11 13:00:00-07:00', '2023-08-11 13:15:00-07:00', '2023-08-11 13:30:00-07:00', '2023-08-11 13:45:00-07:00', '2023-08-11 14:00:00-07:00', '2023-08-11 14:15:00-07:00', '2023-08-11 14:30:00-07:00', '2023-08-11 14:45:00-07:00', '2023-08-11 15:00:00-07:00', '2023-08-11 15:15:00-07:00', '2023-08-11 15:30:00-07:00', '2023-08-11 15:45:00-07:00', '2023-08-11 16:00:00-07:00', '2023-08-11 16:15:00-07:00', '2023-08-11 16:30:00-07:00', '2023-08-11 16:45:00-07:00', '2023-08-11 17:00:00-07:00', '2023-08-11 17:15:00-07:00', '2023-08-11 17:30:00-07:00', '2023-08-11 17:45:00-07:00', '2023-08-11 18:00:00-07:00', '2023-08-11 18:15:00-07:00', '2023-08-11 18:30:00-07:00', '2023-08-11 18:45:00-07:00', '2023-08-11 19:00:00-07:00', '2023-08-11 19:15:00-07:00', '2023-08-11 19:30:00-07:00', '2023-08-11 19:45:00-07:00', '2023-08-11 20:00:00-07:00', '2023-08-11 20:15:00-07:00', '2023-08-11 20:30:00-07:00', '2023-08-11 20:45:00-07:00', '2023-08-11 21:00:00-07:00', '2023-08-11 21:15:00-07:00', '2023-08-11 21:30:00-07:00', '2023-08-11 21:45:00-07:00', '2023-08-11 22:00:00-07:00', '2023-08-11 22:15:00-07:00', '2023-08-11 22:30:00-07:00', '2023-08-11 22:45:00-07:00', '2023-08-11 23:00:00-07:00', '2023-08-11 23:15:00-07:00', '2023-08-11 23:30:00-07:00', '2023-08-11 23:45:00-07:00', '2023-08-12 00:00:00-07:00', '2023-08-12 00:15:00-07:00', '2023-08-12 00:30:00-07:00', '2023-08-12 00:45:00-07:00', '2023-08-12 01:00:00-07:00', '2023-08-12 01:15:00-07:00', '2023-08-12 01:30:00-07:00', '2023-08-12 01:45:00-07:00', '2023-08-12 02:00:00-07:00', '2023-08-12 02:15:00-07:00', '2023-08-12 02:30:00-07:00', '2023-08-12 02:45:00-07:00', '2023-08-12 03:00:00-07:00', '2023-08-12 03:15:00-07:00', '2023-08-12 03:30:00-07:00', '2023-08-12 03:45:00-07:00', '2023-08-12 04:00:00-07:00', '2023-08-12 04:15:00-07:00', '2023-08-12 04:30:00-07:00', '2023-08-12 04:45:00-07:00', '2023-08-12 05:00:00-07:00', '2023-08-12 05:15:00-07:00', '2023-08-12 05:30:00-07:00', '2023-08-12 05:45:00-07:00', '2023-08-12 06:00:00-07:00', '2023-08-12 06:15:00-07:00', '2023-08-12 06:30:00-07:00', '2023-08-12 06:45:00-07:00', '2023-08-12 07:00:00-07:00', '2023-08-12 07:15:00-07:00', '2023-08-12 07:30:00-07:00', '2023-08-12 07:45:00-07:00', '2023-08-12 08:00:00-07:00', '2023-08-12 08:15:00-07:00', '2023-08-12 08:30:00-07:00', '2023-08-12 08:45:00-07:00', '2023-08-12 09:00:00-07:00', '2023-08-12 09:15:00-07:00', '2023-08-12 09:30:00-07:00', '2023-08-12 09:45:00-07:00', '2023-08-12 10:00:00-07:00', '2023-08-12 10:15:00-07:00', '2023-08-12 10:30:00-07:00', '2023-08-12 10:45:00-07:00', '2023-08-12 11:00:00-07:00', '2023-08-12 11:15:00-07:00', '2023-08-12 11:30:00-07:00', '2023-08-12 11:45:00-07:00', '2023-08-12 12:00:00-07:00', '2023-08-12 12:15:00-07:00', '2023-08-12 12:30:00-07:00', '2023-08-12 12:45:00-07:00', '2023-08-12 13:00:00-07:00', '2023-08-12 13:15:00-07:00', '2023-08-12 13:30:00-07:00', '2023-08-12 13:45:00-07:00', '2023-08-12 14:00:00-07:00', '2023-08-12 14:15:00-07:00', '2023-08-12 14:30:00-07:00', '2023-08-12 14:45:00-07:00', '2023-08-12 15:00:00-07:00', '2023-08-12 15:15:00-07:00', '2023-08-12 15:30:00-07:00', '2023-08-12 15:45:00-07:00', '2023-08-12 16:00:00-07:00', '2023-08-12 16:15:00-07:00', '2023-08-12 16:30:00-07:00', '2023-08-12 16:45:00-07:00', '2023-08-12 17:00:00-07:00', '2023-08-12 17:15:00-07:00', '2023-08-12 17:30:00-07:00', '2023-08-12 17:45:00-07:00', '2023-08-12 18:00:00-07:00', '2023-08-12 18:15:00-07:00', '2023-08-12 18:30:00-07:00', '2023-08-12 18:45:00-07:00', '2023-08-12 19:00:00-07:00', '2023-08-12 19:15:00-07:00', '2023-08-12 19:30:00-07:00', '2023-08-12 19:45:00-07:00', '2023-08-12 20:00:00-07:00', '2023-08-12 20:15:00-07:00', '2023-08-12 20:30:00-07:00', '2023-08-12 20:45:00-07:00', '2023-08-12 21:00:00-07:00', '2023-08-12 21:15:00-07:00', '2023-08-12 21:30:00-07:00', '2023-08-12 21:45:00-07:00', '2023-08-12 22:00:00-07:00', '2023-08-12 22:15:00-07:00', '2023-08-12 22:30:00-07:00', '2023-08-12 22:45:00-07:00', '2023-08-12 23:00:00-07:00', '2023-08-12 23:15:00-07:00', '2023-08-12 23:30:00-07:00', '2023-08-12 23:45:00-07:00', '2023-08-13 00:00:00-07:00', '2023-08-13 00:15:00-07:00', '2023-08-13 00:30:00-07:00', '2023-08-13 00:45:00-07:00', '2023-08-13 01:00:00-07:00', '2023-08-13 01:15:00-07:00', '2023-08-13 01:30:00-07:00', '2023-08-13 01:45:00-07:00', '2023-08-13 02:00:00-07:00', '2023-08-13 02:15:00-07:00', '2023-08-13 02:30:00-07:00', '2023-08-13 02:45:00-07:00', '2023-08-13 03:00:00-07:00', '2023-08-13 03:15:00-07:00', '2023-08-13 03:30:00-07:00', '2023-08-13 03:45:00-07:00', '2023-08-13 04:00:00-07:00', '2023-08-13 04:15:00-07:00', '2023-08-13 04:30:00-07:00', '2023-08-13 04:45:00-07:00', '2023-08-13 05:00:00-07:00', '2023-08-13 05:15:00-07:00', '2023-08-13 05:30:00-07:00', '2023-08-13 05:45:00-07:00', '2023-08-13 06:00:00-07:00', '2023-08-13 06:15:00-07:00', '2023-08-13 06:30:00-07:00', '2023-08-13 06:45:00-07:00', '2023-08-13 07:00:00-07:00', '2023-08-13 07:15:00-07:00', '2023-08-13 07:30:00-07:00', '2023-08-13 07:45:00-07:00', '2023-08-13 08:00:00-07:00', '2023-08-13 08:15:00-07:00', '2023-08-13 08:30:00-07:00', '2023-08-13 08:45:00-07:00', '2023-08-13 09:00:00-07:00', '2023-08-13 09:15:00-07:00', '2023-08-13 09:30:00-07:00', '2023-08-13 09:45:00-07:00', '2023-08-13 10:00:00-07:00', '2023-08-13 10:15:00-07:00', '2023-08-13 10:30:00-07:00', '2023-08-13 10:45:00-07:00', '2023-08-13 11:00:00-07:00', '2023-08-13 11:15:00-07:00', '2023-08-13 11:30:00-07:00', '2023-08-13 11:45:00-07:00', '2023-08-13 12:00:00-07:00', '2023-08-13 12:15:00-07:00', '2023-08-13 12:30:00-07:00', '2023-08-13 12:45:00-07:00', '2023-08-13 13:00:00-07:00', '2023-08-13 13:15:00-07:00', '2023-08-13 13:30:00-07:00', '2023-08-13 13:45:00-07:00', '2023-08-13 14:00:00-07:00', '2023-08-13 14:15:00-07:00', '2023-08-13 14:30:00-07:00', '2023-08-13 14:45:00-07:00', '2023-08-13 15:00:00-07:00', '2023-08-13 15:15:00-07:00', '2023-08-13 15:30:00-07:00', '2023-08-13 15:45:00-07:00', '2023-08-13 16:00:00-07:00', '2023-08-13 16:15:00-07:00', '2023-08-13 16:30:00-07:00', '2023-08-13 16:45:00-07:00', '2023-08-13 17:00:00-07:00', '2023-08-13 17:15:00-07:00', '2023-08-13 17:30:00-07:00', '2023-08-13 17:45:00-07:00', '2023-08-13 18:00:00-07:00', '2023-08-13 18:15:00-07:00', '2023-08-13 18:30:00-07:00', '2023-08-13 18:45:00-07:00', '2023-08-13 19:00:00-07:00', '2023-08-13 19:15:00-07:00', '2023-08-13 19:30:00-07:00', '2023-08-13 19:45:00-07:00', '2023-08-13 20:00:00-07:00', '2023-08-13 20:15:00-07:00', '2023-08-13 20:30:00-07:00', '2023-08-13 20:45:00-07:00', '2023-08-13 21:00:00-07:00', '2023-08-13 21:15:00-07:00', '2023-08-13 21:30:00-07:00', '2023-08-13 21:45:00-07:00', '2023-08-13 22:00:00-07:00', '2023-08-13 22:15:00-07:00', '2023-08-13 22:30:00-07:00', '2023-08-13 22:45:00-07:00', '2023-08-13 23:00:00-07:00', '2023-08-13 23:15:00-07:00', '2023-08-13 23:30:00-07:00', '2023-08-13 23:45:00-07:00', '2023-08-14 00:00:00-07:00', '2023-08-14 00:15:00-07:00', '2023-08-14 00:30:00-07:00', '2023-08-14 00:45:00-07:00', '2023-08-14 01:00:00-07:00', '2023-08-14 01:15:00-07:00', '2023-08-14 01:30:00-07:00', '2023-08-14 01:45:00-07:00', '2023-08-14 02:00:00-07:00', '2023-08-14 02:15:00-07:00', '2023-08-14 02:30:00-07:00', '2023-08-14 02:45:00-07:00', '2023-08-14 03:00:00-07:00', '2023-08-14 03:15:00-07:00', '2023-08-14 03:30:00-07:00', '2023-08-14 03:45:00-07:00', '2023-08-14 04:00:00-07:00', '2023-08-14 04:15:00-07:00', '2023-08-14 04:30:00-07:00', '2023-08-14 04:45:00-07:00', '2023-08-14 05:00:00-07:00', '2023-08-14 05:15:00-07:00', '2023-08-14 05:30:00-07:00', '2023-08-14 05:45:00-07:00', '2023-08-14 06:00:00-07:00', '2023-08-14 06:15:00-07:00', '2023-08-14 06:30:00-07:00', '2023-08-14 06:45:00-07:00', '2023-08-14 07:00:00-07:00', '2023-08-14 07:15:00-07:00', '2023-08-14 07:30:00-07:00', '2023-08-14 07:45:00-07:00', '2023-08-14 08:00:00-07:00', '2023-08-14 08:15:00-07:00', '2023-08-14 08:30:00-07:00', '2023-08-14 08:45:00-07:00', '2023-08-14 09:00:00-07:00', '2023-08-14 09:15:00-07:00', '2023-08-14 09:30:00-07:00', '2023-08-14 09:45:00-07:00', '2023-08-14 10:00:00-07:00', '2023-08-14 10:15:00-07:00', '2023-08-14 10:30:00-07:00', '2023-08-14 10:45:00-07:00', '2023-08-14 11:00:00-07:00', '2023-08-14 11:15:00-07:00', '2023-08-14 11:30:00-07:00', '2023-08-14 11:45:00-07:00', '2023-08-14 12:00:00-07:00', '2023-08-14 12:15:00-07:00', '2023-08-14 12:30:00-07:00', '2023-08-14 12:45:00-07:00', '2023-08-14 13:00:00-07:00', '2023-08-14 13:15:00-07:00', '2023-08-14 13:30:00-07:00', '2023-08-14 13:45:00-07:00', '2023-08-14 14:00:00-07:00', '2023-08-14 14:15:00-07:00', '2023-08-14 14:30:00-07:00', '2023-08-14 14:45:00-07:00', '2023-08-14 15:00:00-07:00', '2023-08-14 15:15:00-07:00', '2023-08-14 15:30:00-07:00', '2023-08-14 15:45:00-07:00', '2023-08-14 16:00:00-07:00', '2023-08-14 16:15:00-07:00', '2023-08-14 16:30:00-07:00', '2023-08-14 16:45:00-07:00', '2023-08-14 17:00:00-07:00', '2023-08-14 17:15:00-07:00', '2023-08-14 17:30:00-07:00', '2023-08-14 17:45:00-07:00', '2023-08-14 18:00:00-07:00', '2023-08-14 18:15:00-07:00', '2023-08-14 18:30:00-07:00', '2023-08-14 18:45:00-07:00', '2023-08-14 19:00:00-07:00', '2023-08-14 19:15:00-07:00', '2023-08-14 19:30:00-07:00', '2023-08-14 19:45:00-07:00', '2023-08-14 20:00:00-07:00', '2023-08-14 20:15:00-07:00', '2023-08-14 20:30:00-07:00', '2023-08-14 20:45:00-07:00', '2023-08-14 21:00:00-07:00', '2023-08-14 21:15:00-07:00', '2023-08-14 21:30:00-07:00', '2023-08-14 21:45:00-07:00', '2023-08-14 22:00:00-07:00', '2023-08-14 22:15:00-07:00', '2023-08-14 22:30:00-07:00', '2023-08-14 22:45:00-07:00', '2023-08-14 23:00:00-07:00', '2023-08-14 23:15:00-07:00', '2023-08-14 23:30:00-07:00', '2023-08-14 23:45:00-07:00', '2023-08-15 00:00:00-07:00', '2023-08-15 00:15:00-07:00', '2023-08-15 00:30:00-07:00', '2023-08-15 00:45:00-07:00', '2023-08-15 01:00:00-07:00', '2023-08-15 01:15:00-07:00', '2023-08-15 01:30:00-07:00', '2023-08-15 01:45:00-07:00', '2023-08-15 02:00:00-07:00', '2023-08-15 02:15:00-07:00', '2023-08-15 02:30:00-07:00', '2023-08-15 02:45:00-07:00', '2023-08-15 03:00:00-07:00', '2023-08-15 03:15:00-07:00', '2023-08-15 03:30:00-07:00', '2023-08-15 03:45:00-07:00', '2023-08-15 04:00:00-07:00', '2023-08-15 04:15:00-07:00', '2023-08-15 04:30:00-07:00', '2023-08-15 04:45:00-07:00', '2023-08-15 05:00:00-07:00', '2023-08-15 05:15:00-07:00', '2023-08-15 05:30:00-07:00', '2023-08-15 05:45:00-07:00', '2023-08-15 06:00:00-07:00', '2023-08-15 06:15:00-07:00', '2023-08-15 06:30:00-07:00', '2023-08-15 06:45:00-07:00', '2023-08-15 07:00:00-07:00', '2023-08-15 07:15:00-07:00', '2023-08-15 07:30:00-07:00', '2023-08-15 07:45:00-07:00', '2023-08-15 08:00:00-07:00', '2023-08-15 08:15:00-07:00', '2023-08-15 08:30:00-07:00', '2023-08-15 08:45:00-07:00', '2023-08-15 09:00:00-07:00', '2023-08-15 09:15:00-07:00', '2023-08-15 09:30:00-07:00', '2023-08-15 09:45:00-07:00', '2023-08-15 10:00:00-07:00', '2023-08-15 10:15:00-07:00', '2023-08-15 10:30:00-07:00', '2023-08-15 10:45:00-07:00', '2023-08-15 11:00:00-07:00', '2023-08-15 11:15:00-07:00', '2023-08-15 11:30:00-07:00', '2023-08-15 11:45:00-07:00', '2023-08-15 12:00:00-07:00', '2023-08-15 12:15:00-07:00', '2023-08-15 12:30:00-07:00', '2023-08-15 12:45:00-07:00', '2023-08-15 13:00:00-07:00', '2023-08-15 13:15:00-07:00', '2023-08-15 13:30:00-07:00', '2023-08-15 13:45:00-07:00', '2023-08-15 14:00:00-07:00', '2023-08-15 14:15:00-07:00', '2023-08-15 14:30:00-07:00', '2023-08-15 14:45:00-07:00', '2023-08-15 15:00:00-07:00', '2023-08-15 15:15:00-07:00', '2023-08-15 15:30:00-07:00', '2023-08-15 15:45:00-07:00', '2023-08-15 16:00:00-07:00', '2023-08-15 16:15:00-07:00', '2023-08-15 16:30:00-07:00', '2023-08-15 16:45:00-07:00', '2023-08-15 17:00:00-07:00', '2023-08-15 17:15:00-07:00', '2023-08-15 17:30:00-07:00', '2023-08-15 17:45:00-07:00', '2023-08-15 18:00:00-07:00', '2023-08-15 18:15:00-07:00', '2023-08-15 18:30:00-07:00', '2023-08-15 18:45:00-07:00', '2023-08-15 19:00:00-07:00', '2023-08-15 19:15:00-07:00', '2023-08-15 19:30:00-07:00', '2023-08-15 19:45:00-07:00', '2023-08-15 20:00:00-07:00', '2023-08-15 20:15:00-07:00', '2023-08-15 20:30:00-07:00', '2023-08-15 20:45:00-07:00', '2023-08-15 21:00:00-07:00', '2023-08-15 21:15:00-07:00', '2023-08-15 21:30:00-07:00', '2023-08-15 21:45:00-07:00', '2023-08-15 22:00:00-07:00', '2023-08-15 22:15:00-07:00', '2023-08-15 22:30:00-07:00', '2023-08-15 22:45:00-07:00', '2023-08-15 23:00:00-07:00', '2023-08-15 23:15:00-07:00', '2023-08-15 23:30:00-07:00', '2023-08-15 23:45:00-07:00', '2023-08-16 00:00:00-07:00', '2023-08-16 00:15:00-07:00', '2023-08-16 00:30:00-07:00', '2023-08-16 00:45:00-07:00', '2023-08-16 01:00:00-07:00', '2023-08-16 01:15:00-07:00', '2023-08-16 01:30:00-07:00', '2023-08-16 01:45:00-07:00', '2023-08-16 02:00:00-07:00', '2023-08-16 02:15:00-07:00', '2023-08-16 02:30:00-07:00', '2023-08-16 02:45:00-07:00', '2023-08-16 03:00:00-07:00', '2023-08-16 03:15:00-07:00', '2023-08-16 03:30:00-07:00', '2023-08-16 03:45:00-07:00', '2023-08-16 04:00:00-07:00', '2023-08-16 04:15:00-07:00', '2023-08-16 04:30:00-07:00', '2023-08-16 04:45:00-07:00', '2023-08-16 05:00:00-07:00', '2023-08-16 05:15:00-07:00', '2023-08-16 05:30:00-07:00', '2023-08-16 05:45:00-07:00', '2023-08-16 06:00:00-07:00', '2023-08-16 06:15:00-07:00', '2023-08-16 06:30:00-07:00', '2023-08-16 06:45:00-07:00', '2023-08-16 07:00:00-07:00', '2023-08-16 07:15:00-07:00', '2023-08-16 07:30:00-07:00', '2023-08-16 07:45:00-07:00', '2023-08-16 08:00:00-07:00', '2023-08-16 08:15:00-07:00', '2023-08-16 08:30:00-07:00', '2023-08-16 08:45:00-07:00', '2023-08-16 09:00:00-07:00', '2023-08-16 09:15:00-07:00', '2023-08-16 09:30:00-07:00', '2023-08-16 09:45:00-07:00', '2023-08-16 10:00:00-07:00', '2023-08-16 10:15:00-07:00', '2023-08-16 10:30:00-07:00', '2023-08-16 10:45:00-07:00', '2023-08-16 11:00:00-07:00', '2023-08-16 11:15:00-07:00', '2023-08-16 11:30:00-07:00', '2023-08-16 11:45:00-07:00', '2023-08-16 12:00:00-07:00', '2023-08-16 12:15:00-07:00', '2023-08-16 12:30:00-07:00', '2023-08-16 12:45:00-07:00', '2023-08-16 13:00:00-07:00', '2023-08-16 13:15:00-07:00', '2023-08-16 13:30:00-07:00', '2023-08-16 13:45:00-07:00', '2023-08-16 14:00:00-07:00', '2023-08-16 14:15:00-07:00', '2023-08-16 14:30:00-07:00', '2023-08-16 14:45:00-07:00', '2023-08-16 15:00:00-07:00', '2023-08-16 15:15:00-07:00', '2023-08-16 15:30:00-07:00', '2023-08-16 15:45:00-07:00', '2023-08-16 16:00:00-07:00', '2023-08-16 16:15:00-07:00', '2023-08-16 16:30:00-07:00', '2023-08-16 16:45:00-07:00', '2023-08-16 17:00:00-07:00', '2023-08-16 17:15:00-07:00', '2023-08-16 17:30:00-07:00', '2023-08-16 17:45:00-07:00', '2023-08-16 18:00:00-07:00', '2023-08-16 18:15:00-07:00', '2023-08-16 18:30:00-07:00', '2023-08-16 18:45:00-07:00', '2023-08-16 19:00:00-07:00', '2023-08-16 19:15:00-07:00', '2023-08-16 19:30:00-07:00', '2023-08-16 19:45:00-07:00', '2023-08-16 20:00:00-07:00', '2023-08-16 20:15:00-07:00', '2023-08-16 20:30:00-07:00', '2023-08-16 20:45:00-07:00', '2023-08-16 21:00:00-07:00', '2023-08-16 21:15:00-07:00', '2023-08-16 21:30:00-07:00', '2023-08-16 21:45:00-07:00', '2023-08-16 22:00:00-07:00', '2023-08-16 22:15:00-07:00', '2023-08-16 22:30:00-07:00', '2023-08-16 22:45:00-07:00', '2023-08-16 23:00:00-07:00', '2023-08-16 23:15:00-07:00', '2023-08-16 23:30:00-07:00', '2023-08-16 23:45:00-07:00', '2023-08-17 00:00:00-07:00', '2023-08-17 00:15:00-07:00', '2023-08-17 00:30:00-07:00', '2023-08-17 00:45:00-07:00', '2023-08-17 01:00:00-07:00', '2023-08-17 01:15:00-07:00', '2023-08-17 01:30:00-07:00', '2023-08-17 01:45:00-07:00', '2023-08-17 02:00:00-07:00', '2023-08-17 02:15:00-07:00', '2023-08-17 02:30:00-07:00', '2023-08-17 02:45:00-07:00', '2023-08-17 03:00:00-07:00', '2023-08-17 03:15:00-07:00', '2023-08-17 03:30:00-07:00', '2023-08-17 03:45:00-07:00', '2023-08-17 04:00:00-07:00', '2023-08-17 04:15:00-07:00', '2023-08-17 04:30:00-07:00', '2023-08-17 04:45:00-07:00', '2023-08-17 05:00:00-07:00', '2023-08-17 05:15:00-07:00', '2023-08-17 05:30:00-07:00', '2023-08-17 05:45:00-07:00', '2023-08-17 06:00:00-07:00', '2023-08-17 06:15:00-07:00', '2023-08-17 06:30:00-07:00', '2023-08-17 06:45:00-07:00', '2023-08-17 07:00:00-07:00', '2023-08-17 07:15:00-07:00', '2023-08-17 07:30:00-07:00', '2023-08-17 07:45:00-07:00', '2023-08-17 08:00:00-07:00', '2023-08-17 08:15:00-07:00', '2023-08-17 08:30:00-07:00', '2023-08-17 08:45:00-07:00', '2023-08-17 09:00:00-07:00', '2023-08-17 09:15:00-07:00', '2023-08-17 09:30:00-07:00', '2023-08-17 09:45:00-07:00', '2023-08-17 10:00:00-07:00', '2023-08-17 10:15:00-07:00', '2023-08-17 10:30:00-07:00', '2023-08-17 10:45:00-07:00', '2023-08-17 11:00:00-07:00', '2023-08-17 11:15:00-07:00', '2023-08-17 11:30:00-07:00', '2023-08-17 11:45:00-07:00', '2023-08-17 12:00:00-07:00', '2023-08-17 12:15:00-07:00', '2023-08-17 12:30:00-07:00', '2023-08-17 12:45:00-07:00', '2023-08-17 13:00:00-07:00', '2023-08-17 13:15:00-07:00', '2023-08-17 13:30:00-07:00', '2023-08-17 13:45:00-07:00', '2023-08-17 14:00:00-07:00', '2023-08-17 14:15:00-07:00', '2023-08-17 14:30:00-07:00', '2023-08-17 14:45:00-07:00', '2023-08-17 15:00:00-07:00', '2023-08-17 15:15:00-07:00', '2023-08-17 15:30:00-07:00', '2023-08-17 15:45:00-07:00', '2023-08-17 16:00:00-07:00', '2023-08-17 16:15:00-07:00', '2023-08-17 16:30:00-07:00', '2023-08-17 16:45:00-07:00', '2023-08-17 17:00:00-07:00', '2023-08-17 17:15:00-07:00', '2023-08-17 17:30:00-07:00', '2023-08-17 17:45:00-07:00', '2023-08-17 18:00:00-07:00', '2023-08-17 18:15:00-07:00', '2023-08-17 18:30:00-07:00', '2023-08-17 18:45:00-07:00', '2023-08-17 19:00:00-07:00', '2023-08-17 19:15:00-07:00', '2023-08-17 19:30:00-07:00', '2023-08-17 19:45:00-07:00', '2023-08-17 20:00:00-07:00', '2023-08-17 20:15:00-07:00', '2023-08-17 20:30:00-07:00', '2023-08-17 20:45:00-07:00', '2023-08-17 21:00:00-07:00', '2023-08-17 21:15:00-07:00', '2023-08-17 21:30:00-07:00', '2023-08-17 21:45:00-07:00', '2023-08-17 22:00:00-07:00', '2023-08-17 22:15:00-07:00', '2023-08-17 22:30:00-07:00', '2023-08-17 22:45:00-07:00', '2023-08-17 23:00:00-07:00', '2023-08-17 23:15:00-07:00', '2023-08-17 23:30:00-07:00', '2023-08-17 23:45:00-07:00', '2023-08-18 00:00:00-07:00', '2023-08-18 00:15:00-07:00', '2023-08-18 00:30:00-07:00', '2023-08-18 00:45:00-07:00', '2023-08-18 01:00:00-07:00', '2023-08-18 01:15:00-07:00', '2023-08-18 01:30:00-07:00', '2023-08-18 01:45:00-07:00', '2023-08-18 02:00:00-07:00', '2023-08-18 02:15:00-07:00', '2023-08-18 02:30:00-07:00', '2023-08-18 02:45:00-07:00', '2023-08-18 03:00:00-07:00', '2023-08-18 03:15:00-07:00', '2023-08-18 03:30:00-07:00', '2023-08-18 03:45:00-07:00', '2023-08-18 04:00:00-07:00', '2023-08-18 04:15:00-07:00', '2023-08-18 04:30:00-07:00', '2023-08-18 04:45:00-07:00', '2023-08-18 05:00:00-07:00', '2023-08-18 05:15:00-07:00', '2023-08-18 05:30:00-07:00', '2023-08-18 05:45:00-07:00', '2023-08-18 06:00:00-07:00', '2023-08-18 06:15:00-07:00', '2023-08-18 06:30:00-07:00', '2023-08-18 06:45:00-07:00', '2023-08-18 07:00:00-07:00', '2023-08-18 07:15:00-07:00', '2023-08-18 07:30:00-07:00', '2023-08-18 07:45:00-07:00', '2023-08-18 08:00:00-07:00', '2023-08-18 08:15:00-07:00', '2023-08-18 08:30:00-07:00', '2023-08-18 08:45:00-07:00', '2023-08-18 09:00:00-07:00', '2023-08-18 09:15:00-07:00', '2023-08-18 09:30:00-07:00', '2023-08-18 09:45:00-07:00', '2023-08-18 10:00:00-07:00', '2023-08-18 10:15:00-07:00', '2023-08-18 10:30:00-07:00', '2023-08-18 10:45:00-07:00', '2023-08-18 11:00:00-07:00', '2023-08-18 11:15:00-07:00', '2023-08-18 11:30:00-07:00', '2023-08-18 11:45:00-07:00', '2023-08-18 12:00:00-07:00', '2023-08-18 12:15:00-07:00', '2023-08-18 12:30:00-07:00', '2023-08-18 12:45:00-07:00', '2023-08-18 13:00:00-07:00', '2023-08-18 13:15:00-07:00', '2023-08-18 13:30:00-07:00', '2023-08-18 13:45:00-07:00', '2023-08-18 14:00:00-07:00', '2023-08-18 14:15:00-07:00', '2023-08-18 14:30:00-07:00', '2023-08-18 14:45:00-07:00', '2023-08-18 15:00:00-07:00', '2023-08-18 15:15:00-07:00', '2023-08-18 15:30:00-07:00', '2023-08-18 15:45:00-07:00', '2023-08-18 16:00:00-07:00', '2023-08-18 16:15:00-07:00', '2023-08-18 16:30:00-07:00', '2023-08-18 16:45:00-07:00', '2023-08-18 17:00:00-07:00', '2023-08-18 17:15:00-07:00', '2023-08-18 17:30:00-07:00', '2023-08-18 17:45:00-07:00', '2023-08-18 18:00:00-07:00', '2023-08-18 18:15:00-07:00', '2023-08-18 18:30:00-07:00', '2023-08-18 18:45:00-07:00', '2023-08-18 19:00:00-07:00', '2023-08-18 19:15:00-07:00', '2023-08-18 19:30:00-07:00', '2023-08-18 19:45:00-07:00', '2023-08-18 20:00:00-07:00', '2023-08-18 20:15:00-07:00', '2023-08-18 20:30:00-07:00', '2023-08-18 20:45:00-07:00', '2023-08-18 21:00:00-07:00', '2023-08-18 21:15:00-07:00', '2023-08-18 21:30:00-07:00', '2023-08-18 21:45:00-07:00', '2023-08-18 22:00:00-07:00', '2023-08-18 22:15:00-07:00', '2023-08-18 22:30:00-07:00', '2023-08-18 22:45:00-07:00', '2023-08-18 23:00:00-07:00', '2023-08-18 23:15:00-07:00', '2023-08-18 23:30:00-07:00', '2023-08-18 23:45:00-07:00', '2023-08-19 00:00:00-07:00', '2023-08-19 00:15:00-07:00', '2023-08-19 00:30:00-07:00', '2023-08-19 00:45:00-07:00', '2023-08-19 01:00:00-07:00', '2023-08-19 01:15:00-07:00', '2023-08-19 01:30:00-07:00', '2023-08-19 01:45:00-07:00', '2023-08-19 02:00:00-07:00', '2023-08-19 02:15:00-07:00', '2023-08-19 02:30:00-07:00', '2023-08-19 02:45:00-07:00', '2023-08-19 03:00:00-07:00', '2023-08-19 03:15:00-07:00', '2023-08-19 03:30:00-07:00', '2023-08-19 03:45:00-07:00', '2023-08-19 04:00:00-07:00', '2023-08-19 04:15:00-07:00', '2023-08-19 04:30:00-07:00', '2023-08-19 04:45:00-07:00', '2023-08-19 05:00:00-07:00', '2023-08-19 05:15:00-07:00', '2023-08-19 05:30:00-07:00', '2023-08-19 05:45:00-07:00', '2023-08-19 06:00:00-07:00', '2023-08-19 06:15:00-07:00', '2023-08-19 06:30:00-07:00', '2023-08-19 06:45:00-07:00', '2023-08-19 07:00:00-07:00', '2023-08-19 07:15:00-07:00', '2023-08-19 07:30:00-07:00', '2023-08-19 07:45:00-07:00', '2023-08-19 08:00:00-07:00', '2023-08-19 08:15:00-07:00', '2023-08-19 08:30:00-07:00', '2023-08-19 08:45:00-07:00', '2023-08-19 09:00:00-07:00', '2023-08-19 09:15:00-07:00', '2023-08-19 09:30:00-07:00', '2023-08-19 09:45:00-07:00', '2023-08-19 10:00:00-07:00', '2023-08-19 10:15:00-07:00', '2023-08-19 10:30:00-07:00', '2023-08-19 10:45:00-07:00', '2023-08-19 11:00:00-07:00', '2023-08-19 11:15:00-07:00', '2023-08-19 11:30:00-07:00', '2023-08-19 11:45:00-07:00', '2023-08-19 12:00:00-07:00', '2023-08-19 12:15:00-07:00', '2023-08-19 12:30:00-07:00', '2023-08-19 12:45:00-07:00', '2023-08-19 13:00:00-07:00', '2023-08-19 13:15:00-07:00', '2023-08-19 13:30:00-07:00', '2023-08-19 13:45:00-07:00', '2023-08-19 14:00:00-07:00', '2023-08-19 14:15:00-07:00', '2023-08-19 14:30:00-07:00', '2023-08-19 14:45:00-07:00', '2023-08-19 15:00:00-07:00', '2023-08-19 15:15:00-07:00', '2023-08-19 15:30:00-07:00', '2023-08-19 15:45:00-07:00', '2023-08-19 16:00:00-07:00', '2023-08-19 16:15:00-07:00', '2023-08-19 16:30:00-07:00', '2023-08-19 16:45:00-07:00', '2023-08-19 17:00:00-07:00', '2023-08-19 17:15:00-07:00', '2023-08-19 17:30:00-07:00', '2023-08-19 17:45:00-07:00', '2023-08-19 18:00:00-07:00', '2023-08-19 18:15:00-07:00', '2023-08-19 18:30:00-07:00', '2023-08-19 18:45:00-07:00', '2023-08-19 19:00:00-07:00', '2023-08-19 19:15:00-07:00', '2023-08-19 19:30:00-07:00', '2023-08-19 19:45:00-07:00', '2023-08-19 20:00:00-07:00', '2023-08-19 20:15:00-07:00', '2023-08-19 20:30:00-07:00', '2023-08-19 20:45:00-07:00', '2023-08-19 21:00:00-07:00', '2023-08-19 21:15:00-07:00', '2023-08-19 21:30:00-07:00', '2023-08-19 21:45:00-07:00', '2023-08-19 22:00:00-07:00', '2023-08-19 22:15:00-07:00', '2023-08-19 22:30:00-07:00', '2023-08-19 22:45:00-07:00', '2023-08-19 23:00:00-07:00', '2023-08-19 23:15:00-07:00', '2023-08-19 23:30:00-07:00', '2023-08-19 23:45:00-07:00', '2023-08-20 00:00:00-07:00', '2023-08-20 00:15:00-07:00'], 'step_counts': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1344], 'cumulative_reward': -33.724615570157766, 'episode_number': 0, 'environment_states': {}}\n" + ] + } + ], + "source": [ + "import json\n", + "\n", + "def read_json_file(file_path):\n", + " try:\n", + " with open(file_path, 'r') as file:\n", + " data = json.load(file)\n", + " return data\n", + " except Exception as e:\n", + " print(e)\n", + " pass\n", + "\n", + "# Example usage\n", + "file_path = \"eval_results/sac_train-summer_eval-08-06_2025_04_15-01:43:44/trajectories/episode_0.json\"\n", + "json_data = read_json_file(file_path)\n", + "\n", + "if json_data is not None:\n", + " print(\"JSON data loaded successfully:\")\n", + " print(json_data)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "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", + "
Unnamed: 0TimeStationNameStationIdLocationTempCDewPointCBarometerMbarRainRainTotalWindspeedKmphWindDirectionSkyCoverageVisibilityKmHumidityTempF
0020230630-1700Mountain View Moffett Field Naval Air Station10680520c827db24Mountain View, California, US20.015.0-9999.0-9999.0-9999.09.363500-9999.075.068.0
1120230630-1800Mountain View Moffett Field Naval Air Station10680520c827db24Mountain View, California, US21.015.0-9999.0-9999.0-9999.012.963500-9999.070.069.8
2220230630-1900Mountain View Moffett Field Naval Air Station10680520c827db24Mountain View, California, US22.015.0-9999.0-9999.0-9999.014.763500-9999.065.071.6
3320230630-2000Mountain View Moffett Field Naval Air Station10680520c827db24Mountain View, California, US25.015.0-9999.0-9999.0-9999.012.963400-9999.050.077.0
4420230630-2100Mountain View Moffett Field Naval Air Station10680520c827db24Mountain View, California, US25.015.0-9999.0-9999.0-9999.016.563500-9999.050.077.0
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 Time StationName \\\n", + "0 0 20230630-1700 Mountain View Moffett Field Naval Air Station \n", + "1 1 20230630-1800 Mountain View Moffett Field Naval Air Station \n", + "2 2 20230630-1900 Mountain View Moffett Field Naval Air Station \n", + "3 3 20230630-2000 Mountain View Moffett Field Naval Air Station \n", + "4 4 20230630-2100 Mountain View Moffett Field Naval Air Station \n", + "\n", + " StationId Location TempC DewPointC \\\n", + "0 10680520c827db24 Mountain View, California, US 20.0 15.0 \n", + "1 10680520c827db24 Mountain View, California, US 21.0 15.0 \n", + "2 10680520c827db24 Mountain View, California, US 22.0 15.0 \n", + "3 10680520c827db24 Mountain View, California, US 25.0 15.0 \n", + "4 10680520c827db24 Mountain View, California, US 25.0 15.0 \n", + "\n", + " BarometerMbar Rain RainTotal WindspeedKmph WindDirection \\\n", + "0 -9999.0 -9999.0 -9999.0 9.36 350 \n", + "1 -9999.0 -9999.0 -9999.0 12.96 350 \n", + "2 -9999.0 -9999.0 -9999.0 14.76 350 \n", + "3 -9999.0 -9999.0 -9999.0 12.96 340 \n", + "4 -9999.0 -9999.0 -9999.0 16.56 350 \n", + "\n", + " SkyCoverage VisibilityKm Humidity TempF \n", + "0 0 -9999.0 75.0 68.0 \n", + "1 0 -9999.0 70.0 69.8 \n", + "2 0 -9999.0 65.0 71.6 \n", + "3 0 -9999.0 50.0 77.0 \n", + "4 0 -9999.0 50.0 77.0 " + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "# Specify the path to your CSV file\n", + "file_path = \"../configs/resources/sb1/local_weather_moffett_field_20230701_20231122.csv\"\n", + "\n", + "# Read the CSV file into a pandas DataFrame\n", + "df = pd.read_csv(file_path)\n", + "\n", + "# Display the first few rows of the DataFrame\n", + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "temperature = df[\"TempF\"].values\n", + "times = range(len(temperature))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.plot(times, temperature, label=\"Temperature\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Define a simple moving average function\n", + "def moving_average(data, window_size):\n", + " return np.convolve(data, np.ones(window_size)/window_size, mode='valid')\n", + "\n", + "# Apply smoothing\n", + "window_size = 50 # Try changing this (e.g., 20, 50, 100)\n", + "smooth_temperature = moving_average(temperature, window_size)\n", + "\n", + "# Adjust times too since moving average shrinks the array\n", + "smooth_times = times[:len(smooth_temperature)]\n", + "\n", + "# Plot\n", + "plt.plot(times, temperature, alpha=0.4, label=\"Original\") # faded original\n", + "plt.plot(smooth_times, smooth_temperature, color='red', label=f\"Smoothed (window={window_size})\")\n", + "plt.legend()\n", + "plt.grid()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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pdbPZ8+e7buN9+3b1zpIvvPOO30Trnv37tXY2Jgk6b333tOlS5cCyz722GPauHGjJOmDDz7QxYsXA8t+/vOf15YtWyRJFy5c0IcffhhY9tFHH9W2bdskSR9//LHef//9wLKPPPKIduzYIWk9mfzuu+8Glv3MZz6jiYkJSdLVq1f79jR96KGHWkPIzs3N6e233w4su2fPHu3atUvSesy++eabgWUfeOAB3XXXXZKkGzdu6I033ggse//99+uee+6RJC0tLen1118PLHvvvffq3nvvlSStrKzotddeCyx79913t7qyr62t6ZVXXgkse+edd2r37t2S1g/Ws7OzgWV37dqlPXv2SFo/qegeurfd5OSkHn744dbv/cr6tRGNRqMVH+Pj460DbtHaiHaVSkW/8Au/0PqdNoI2Ikob4bquZmdntbCw0BE77YrQRth2HlGrjGllw/r+PTo6qrvuuqv1jjraiHy0Ec1E3djYmPbt26e5ublCthFSOc4jbGsj2hXxPKL9mueXfumXtGnTJknFaiOkcpxHSLQRw2wj2mOned5WxDaiXVHPIyTaiKZhtBH1el0//vGPJcn3mqcobYQf2ohbaCPWhWkj7r///tbyfOYznxlYNm9tRNYY+nKIxsfHdfz48Y6/Pf30030brmeffbbj98nJyTSqlkiPOgAAACSFwS8BAAAAACgDx+vXRxGp2Lt3r86cOdP6fXp6WqdOneroLTczM6Njx47p/PnzHUm0o0ePdiT7JiYmOj433ZwzMzM6cOBA6/eDBw/q1KlTEZbmlt/6rd+K3aPupz/9qT73uc91/K3M3cgbjUYr2793715t2LAhkel2s61bdt7K5qULd17LSuFjuTt2mvFQtDZiWGVti7m8lbUhjkzLNhoN/eQnP5HUGTu21rcp78PRLFTrurC4emvalYp2bdmgXVs20kbkpGzzuOM4jvbt2yfHcQrZRuSxrJT/NqJf2SK0Ee3nbfv27WsN92973A+rrA1xVOSyUn7biKBrHhvinvOI4ZW1IY7yVrZer7d6yfld89gQ95xH3GJbzOWtbJJx1ByBR5Ief/zxvsNF2hb3JmV/9rOfdfRkff3113vyFGli6MsM/PCHP9ShQ4c0MzMjaX0IzD179rQSdc33zh0+fFhHjhzRkSNHWt996qmnOqY1OTmZSG+4JHrqff3rX9ehQ4dCfefs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28o2yzWn5Xfu3lq/N8v6nXc0y7av/by2EUHXPDbEfZw2wvfaTJLrqPdY61dO6+fctsUybYRdZftd89gQ95xH3GJbzOWtbJJx1P5Z+3E57nRtKZs1EnUZafaUa0/WNc3MzGh+fn7gUJZRE2zd052bm4s0nW7f/va39du//duxpvH6669reXm542/j4+P67Gc/2/p9dnY2MLB27NihRx55pPX7q6++qlqt5lt227ZtevTRR1u/v/baa6pWq75lN2/erC984Qsd9VxZWfEtu3HjRj322GOt39944w0tLi76lh0bG2slaCXp5z//uRYWFjrKNBu9V199Vb/wC7/Q+vtbb73V2geqo5tUHd3Y8b177713/QdvPSE6NzcnT9KNTTt76rFj9/2tn995552+Cde9e/dqbGxMkvTee+/p0qVLgWUfe+wxbdy4Xq8PPvhAFy9eDCz7+c9/Xlu2bJEkXbhwQR9++GFg2UcffVTbtm2TJH388cd6//33A8s+8sgj2rFjh6T1ZPK7774bWPYzn/mMJiYmJElXr17t29v0oYceag0jOzc3p7fffjuw7J49e7Rr1y5J63H75ptvBpZ94IEHdNddd0mSbty4oTfeeCOw7P3336977rlHkrS0tKTXX389sOy9997b2ifW1tb00YULHZ9frlf1Xn1VknT33Xdr8+3rdWg0Grr48cfrZRpr+rDWud9P3HGntON2SesH7AsXL+oTn3KStGvXLu3Zs6dVtnv43naTk5N6+OGHW7/3KxvURjRjp/09nEFtxNrIBq2Obe6Y7oYNGzRx/6dav9vaRjRVKpXANsLPl770pdbPzTYiyL59+1on0rQRZm3EjvumpI3r+9TKyoquzs1p1K3r0tpSq0yz7Z6cmNCWrVslSaurq5q7clnXzt7wnW7abUSlUtGePXv01ltvBb7D9u6779anP/1pSevtySuvvBI43TvvvFO7d++WtJ4Ye/3117WyYUtHmbnassYatUhtRPPipL1Na2/PpPU24rb7d7d+v3DxojzP08L56+o+Fc/iPKK7/RkdHW1tYym9NuLy5ctaWvWv75V6VXc9/sXW73Nzcx1t2rV3FzXq3rooK0obsTK2RbWRsY6yu3btatVhUBtx3333aceOHapUKrpy5UphzyNWVlb02muvBZaN00bMzs4Glh32eYSfIl5rNGV9HtGegGmyrY3w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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Define moving average function\n", + "def moving_average(data, window_size):\n", + " return np.convolve(data, np.ones(window_size)/window_size, mode='valid')\n", + "\n", + "# Smoothing\n", + "window_size = 50\n", + "smooth_temperature = moving_average(temperature, window_size)\n", + "smooth_times = times[:len(smooth_temperature)]\n", + "\n", + "# Start polished figure\n", + "plt.figure(figsize=(6, 4), dpi=300) # Slightly larger figure, high resolution\n", + "\n", + "# Plot original\n", + "plt.plot(times, temperature, color='lightblue', linewidth=1, alpha=0.5, label=\"Original\")\n", + "\n", + "# Plot smoothed\n", + "plt.plot(smooth_times, smooth_temperature, color='crimson', linewidth=2.5, label=f\"Smoothed (window={window_size})\")\n", + "\n", + "# Axis labels\n", + "plt.xlabel('Time (s)', fontsize=12)\n", + "plt.ylabel('Temperature (°C)', fontsize=12)\n", + "\n", + "# Title (optional — comment out if you don't want a title)\n", + "# plt.title('Temperature over Time', fontsize=14)\n", + "\n", + "# Grid with light style\n", + "plt.grid(True, which='both', linestyle='--', linewidth=0.5, alpha=0.7)\n", + "\n", + "# Ticks styling\n", + "plt.xticks(fontsize=10)\n", + "plt.yticks(fontsize=10)\n", + "\n", + "# Legend\n", + "plt.legend(frameon=False, fontsize=10)\n", + "\n", + "# Tight layout\n", + "plt.tight_layout()\n", + "\n", + "# Save (for publication quality)\n", + "# plt.savefig('temperature_plot.pdf') # PDF: vector format for papers\n", + "# plt.savefig('temperature_plot.png', dpi=600) # High-res PNG\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJIAAASSCAYAAADq7cQfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAC4jAAAuIwF4pT92AAEAAElEQVR4nOz9e5Qc2X0feH4jMuuJQlVWofFsdDdQ1S+i280GCuDQx2N7zS6I2rVnRJkAqfEZz8yuSIDs41nt0VEDbO14VjyeoxZAyvYe2xSB5tjWemdpArBEH1uyRFRTpizJEhtAd8Ngsx9A4dFovFGV9cxnxN0/sjIqHxGREZE33t/PUYuFzMiIGxG/uBHxi3tvKEIIASIiIiIiIiIiog7UsAtARERERERERETxwEQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5wkQSERERERERERE5kg27AJRs+XweP/rRj4x/P/bYY+jr6wuxRERERERERETxVSqV8NFHHxn//ut//a8jl8sFtnwmkshXP/rRj/C5z30u7GIQERERERERJdL3v/99/NzP/Vxgy2PXNiIiIiIiIiIicoSJJCIiIiIiIiIicoRd28hXjz32WNO/v//97+PJJ58MqTTOaZqGS5cuAQCef/55ZDKZkEtEFBzGP6UZ45+SjjFOacb4p6S4fPly0xAyrffdfmMiiXzVOrD2k08+ieeeey6k0jinaRpWVlYAAM899xxPMpQqjH9KM8Y/JR1jnNKM8U9JFfQLrZhIIjKhKAomJiaMv4nShPFPacb4p6RjjFOaMf6J5GAiiciEqqrYuHFj2MUgCgXjn9KM8U9J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AkAmk2matj4An9nvGqfVdd12sL4oTKuqKhRF4bQepxVC2Pajb4y1JEzbGP+6rhux5lcZ6suM8rRAex3hdNoo1xFidR8pigJE6JgLc9o6IYTtfk5zHRH0tADrCJnT1uv4evw6mW9Ujs+4ThuF4yjJ0wLujmW7a3zWEd6mjdoxF7dpvRwbnWLIb0wkBezVV1/FyZMnkc/nMTMzg5MnT5omk86cOdP073pCqFMLJD9961vfwte//vWu5nHp0iWsrKw0fZbL5fDss88a/7Yb/G54eBi7du0y/v3222+jUqmYTjs0NITnn3/e+PfFixdRKpVMpx0YGMAnP/lJ49/vvvuukXg7f/5808VWX18fdu/e3TTt0tKS6Xx7enowOTlp/Pu9997DwsKC6bSqquJTn/qU8e8PPvjANvn36U9/2vj78uXLti3O9u3bZ5wMrl69apsQnJycRE9PDwDg+vXruHv3ruW0u3fvRl9fHwDgo48+wu3bty2nfeGFFzA4OAgAuHXrFm7evGk57fPPP4+hoSEAwJ07d3Djxg3LaXft2oXh4WEAtWTntWvXLKd95plnMDo6CgB4+PAhrly5YjntU089ZbTom52dxYcffmg57cTEBDZu3AiglrB9//33LafdsWMHtmzZAgBYXFzEu+++aznt448/jm3btgEAlpeXcenSJctpt2/fju3btwMACoUCLl68aDnt1q1b8cQTTwAAyuUy3nrrrabvhRBG7N24cQMTExMAgGq1attFduPGjca0uq7jzTfftJx2bGwMTz/9tPFvu2mjWEdcunQJhULBdNo41REL/SMAgEe3bTPqubTXEfVpy+VyW/3fKM11RKPNmzdj586dAFhHxKWOqNfx9fMhwOsIXkekq46Yn5+HEMK0jmcdsYb3GjVRrSPcNjCRjV3bApbL5XDs2DHj34cPH8bx48cxMzODfD6PCxcu4ODBg/jyl79sTNM4YHanMZFaNVYOYSahiIiIiIiIiCj+FGHX3op8c+HCBbz00kumYx69+uqrAICjR48CqHWBO3LkiDFNY+a80+47fvy4MZ9Dhw7hxIkTnsv8a7/2a123SHrnnXfw3HPPNX0WxSbplUrFyDbv2LGjaT6t07K5afKnjUKz7SCn1XXdiP+dO3cim836WgaA3VbCmva9h7UnnI1d254dWxf6MRfmtEIIXL16FUIIPPHEE231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0ZYtW+RyuQhKUSnYDcW+vidmYYmKilJISIi2bdvmUcfdbreqVq2qSy+9VF988YWkgnsuASh5fNJQIRw/ftzrfY0xzioNKSkpuu222xQSEqJZs2ZJ8uwCa4xR06ZN1a9fP9WrV0+S9PDDD0s6cXLigguVwf79+/Xmm2+qevXqkv65EWnRooXef/993X///ZKkJUuW6PDhw5JYyQpnLrvuHj58WEOGDNHLL7+sb7/9VtWrV9fixYsVHBysiy++WIGBgbr33nv1xRdfqG/fvpKkn376SVOnTnU+B0BFkpOT4/S+SElJ0RtvvKG4uDi9++67SklJkfRPI1i3bt10ww03qG7dusrMzNR///vf8iw6UKLshuL33ntPF110kaZMmaImTZqoffv2sizLOQ/YoVG3bt1UpUoVGsuAMkSQhHKVlZWl4cOHa/z48V6HSZZlKScnRyNHjlSzZs20aNEiuVwuzZgxQ4cPH5aPj0++bq0DBw5UUFCQqlWrpl9//VWvvfaapMKHxgEVSVH1NCUlRdu3b9f5558v6USQVKVKFUlSs2bNNGbMGHXo0EHp6elObwyGt+FMZdfdxx9/XD/99JOWLFmi4cOHq1OnTmrcuLGys7M9hi+3adNG999/v7p27SpJSkxM1Pfff18uZQdOxsfHR4cOHdKtt96q0NBQPfXUU+rTp48GDBigFi1a6Ndff5Wvr68TJt19991q3bq1JGnOnDn69ttvZVkWQ3twxktPT1dkZKTuuusu7dixQ9KJ0QeRkZHavn27cx6w63pWVpb27Nmjhg0blluZgbMNQRLKzVtvvaX69etrx44dGj9+vM4555wC98t7E52ZmakFCxbI399fa9as0eWXXy63261ff/1Vzz//vMe+9gVVzZo1NXjwYOcEM3bsWB09elS+vr5ccKHCysnJkTHG46a4oJ5EO3fulDFG7733nqR/uoLbLrjgAqdXUocOHUqxxEDpy8nJUXx8vH744Qdn/rvDhw+rZcuWkjzrv/156dy5sx588EHVqlVL27Zt09q1a8u83EBh7OucxMRE3X777TrvvPO0Zs0avfjii2rXrp2zzyeffCLpnzresmVLRURE6KKLLpIkjRs3TtI/vTToeYozlcvl0jPPPKNNmzY59fr48eNavHix7r//fn3wwQeS/qnjt912m3bv3q3vvvuu3MoMnG0IklDmvv/+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Y9+0tDRjjDFr1qwxHTt2dPb99ttv8x3TGGOOHz9u6tSp45xU/u///s8Y43kysX+eMmWKx4XdLbfcYg4fPlxq7xsoSO66uXLlSrNy5cpC973ggguMZVnG19fXvPjii8aYgm82Dh06ZNLT081nn31mhg8fnm97UlKSue666zzqv2VZ5tVXXy2Bd4Sz3dq1a02fPn1M7dq1nbDe/vfFF184gU5hYmJizIQJE8xff/3lPPbOO++YwMBA5zjt2rUz69ev93je7NmzTYsWLYxlWebqq6/OFzbZ5s2b54RNwKlavXq1adu2rbnjjjvy1cW8N7CffPKJadu2rRPwWJZl+vTp4xHuHDx40FiWZUJCQpxroaI+K7///rv54YcfPB6bPXu2adOmjcfn7pVXXinyWEBxrV692tSrV8+pZxdffLHZsGGDMaboujtmzBjTp0+ffNfdP/zwg4mKivKovw8//LATvLrdbufY9s+RkZHOtb9lWeaKK64ohXcLoCAESSg3ixYt8jhZvPTSS4W2wj399NOmfv36xrIsc8MNN5jjx497bLdbAV9//XXnYq1Zs2Zm3759xpj8N9xr1qwxlmWZli1bmj///LMU3h3gnb1795r77rvPWJZl2rZta44cOeKx3a7b7733nlO3L7nkErNjxw5jTOEt12PHjjUffPCBMcaYw4cPmzVr1pj+/fs7n7datWqZ66+/3gwaNMg8/vjjpmPHjk54CxTX0aNHzaBBg4xlWebSSy81Xbt2NWPGjDHdu3c3wcHBxrIs07x585OGpYsXLzb169c3a9euNcYYj9btt99+26m306dPdx63byr27NljhgwZYnx9fY1lWWbSpEnm6NGjHvtkZmaaf//736ZXr175ziGAt/bv32+uuuoq07hxY/Pjjz969ZyFCxeaK6+80vn+rVmzphkwYIBTx//44w9z4YUXmiZNmph58+Z5dczHHnvMfP3118aYf84TOTk55ueffzZDhw41d999t0cgC5SUv/76y4wcOdKsX7/eLFy40ISFhZnq1aubJUuWFPncn3/+2Zx//vlm8eLFxhhjMjIy8gVPgwYNMn5+fsayLNOoUSPzyiuv5DuOHdju27fPzJ8/35x33nnGsizTqlUrs3Xr1hJ4lwCKQpCEcpOTk2PuuOMO58KqSZMm+Vr27JvkLVu2mPDwcKc179133y30uCEhIU7PjaioqHzbv/76axMUFGQWLFhQsm8IZ61T7c322WefefS0sCzLzJo1q9D9r7nmGidMGjZsWIH75OTkmMOHD5uwsDAzfPhws2jRIvPQQw+ZqlWrOq8RFhZmZsyYYdasWeN8xgYOHOhxgw54a9++feaWW24xNWvWNJMnTzY///xzvhuDxMREc/nll5sHH3zQ/P777wUeZ9iwYU69zt2r4/HHHze+vr5myJAhTjhUkM8//9zp6dq0aVPz4YcfOuU7fPiwefjhh01gYKD5/PPPjTHeDR8C8ho6dKgzLL4o9ucgOzvb/PTTT07Q6XK5TPXq1c0LL7xgjDFm+/bt5qKLLjKWZZno6Gizfft2Y0zBddQ+5q233mq+/fZbj89a7t4aQGnJXS/dbrfZsGGDueiii8zdd99d5PXQ/fffbwIDAwvcZgeiu3btMvfcc49z3XLLLbeYTZs2nfS4n3zyienevbvx9/enoQAoIwRJKFdJSUnmnHPOcW5wR44cme8EYF8QvfHGG6Zp06ZOTyJ7ziWb3bK3ZMkSY1mWM6xi9OjR5oknnjA7d+40brfb/P33387JCjhdEyZMMJ07dzZffPFFsZ+7atUqc/z4cY+6HRAQ4NxE2Oz6unr1auez4u/vb1asWGGMyT+U4ujRo6Z58+bGsixz/vnnewwhnTZtmlm9erXzObMvCKdPn15gqx9QGPu7+Z133jE+Pj5m1KhRHr3a7Hpp19+1a9eamJiYAj8rR44cMaGhoebWW291Hps3b56pV6+eadu2rUlMTHQez8rKMjk5OSYjI8Ns27bNefz48ePm8ccfN7Vr13bmU2rVqpXp3r27adq0qWnXrp3T2wkoLrfbbRITE02tWrVMjRo18g3HL+q5xhjz5JNPGsuynBvkDh06OL1Lo6OjjWVZ5qKLLjITJ070eG7e7/iFCxeac845h3kdUa5y18vp06ebKlWqnPRaaOfOnaZ69eqmXbt2zoiBvOzPytKlS505vxo0aGDWrVvnsb2w8owePdqZXxJA6SJIQrkbO3asc6N77rnnmmXLlnlst08ahw4dMv/+97+diVcnTJhQ4PEWL15sAgICTIMGDZwbc2+62wLFYddLe8hN3bp1zZtvvulc2BenRfjw4cNm4MCBzkSTjz76aL597MDnnnvucVq0b7755gKPt2vXLtO7d2+Prt7vvvuu2bRpk0dQax9zz549pnPnzmb58uVelxkwxpj09HTToEED43K58g0lK8jJWqsvueQS06NHD/P555+bK6+80vj7+5vZs2c723NycjxawtPT083IkSPNoUOHnMdWr15twsPDnV6pTz31lJk/f7755ptvPI5Djw2cCnt+xVq1ajkBUHFdcsklHpPHT5061RhjTHJysvH393fCJHsuvNzS09PN8uXLTYsWLZxFRajLqAhycnJMly5dTJcuXczevXsL3CcxMdFYlmWCg4PN/v37T3q87Oxs88orr5i6desay7JMbGxska8PoGwVvj4jUEaGDx+uJk2aSJKOHz+ul19+WQcPHnS2W5Ylt9utmjVrasCAAQoMDJQkPf/88/rjjz8k/bMUtNvt1qJFizRixAhdcMEFatq0qWbPnq2wsLAyfleo7OxlmevXr686derowIEDGj58uIYOHaqDBw86200Ry53n5OSoRo0a6t+/v5o1ayZJeumll/Tzzz977GcfJyYmRlWqVJExRgkJCZo3b16+YzZo0EAvvPCC4uLidOONN2rmzJm66667FBgYqGrVqkmSsrKynCV6n3vuObVu3VrXXHPNqf9BcFZat26djh49qjZt2mjPnj0yxuRb2jy3GjVq5HvMGKPjx4+rRYsWSkhIUI8ePXTdddfpwIED6t+/v6QTnxN7yWjbrl27dOjQIdWsWVPZ2dmSpODgYPXs2VONGjVSTk6ONm7cqKuuukpdunSRdGIJ6bzLqgPe+uijjyRJLVq0UKNGjYr8fs/NrqPPPfecJMnlcmn37t3atm2bcnJyFBAQoAkTJkiStm/frtGjR+vGG2/Uiy++qB9//FGxsbF6/PHH9cgjjyg5OVlDhw6VJOoySlx2drZH3Xa73UU+x+VyadKkSfruu++0cOHCAp9Tr1491axZU0lJSUpISHBeKy9jjHx8fHTNNdeoZcuWkuRcu5zs9QGUsXKLsIBcYmNjPeaJmTt3bqH7Pvzww84kfP369TPJycnOtgkTJjhjr9944w3z1VdflXrZcXb77rvvnHprD6fs1q2biYuLK/axoqKinNa3vn375mths7uRP//8806vpObNm5vU1FSzcuXKfJNlZ2RkmB49epjdu3c7j+Vdnnf8+PHGx8fHmTOM1m0Ux9KlS41lWaZatWpmwYIFTo83e0Udu87addmuXwW1Ht91113O97qtoOWk7WN8+OGHpkuXLvnmhdm8ebO58847nc/la6+9Zo4dO1ZSbxlnqbS0NNOoUSNnWJq3K1TldfToUWcCesuyTGhoqMf2W265xWMZdF9fX+c17XPMnXfeyRB9lLjs7GwzZcoU06xZMzNs2DBn+HxuRfX8ueeee0xAQIDHtbntu+++c4bxX3zxxV6V6eabby7yvgBA+SBIQoVw5MgR06VLF+fCKTg42GPuC2P+OXmtWbPGXHvttc6+jRo1MoMHDzZXXHGFsSzLTJkypTzeAs5iTZs2Nf7+/qZZs2YegejEiROdEOdkNxt23V63bp3H5+Cjjz4qcL8///zTNGzY0Bm6ZlmWGTJkiMcQH2OMmT9/vmncuLH59ddf873mN998Y9q2bWtcLpeZOXPmab1/nL3++OMPc9lllxnLsky7du3MhAkTTFZW1kknxc4rIyPDGPPPapqWZZlnn33WmYMmMzMz3+dn+/btJjAw0DzxxBMFHvO9994zrVu3ds4nv/322ym+Q+CE1NRUp07VqVPnpIt+nExGRoYzV5KPj4+pWbOmSUlJcer433//bV5++WWP7/fc/15++eV8cyYBpyshIcHUqlXLaaTKPbdiTEyM2bJli1fH+euvv0zt2rXNuHHjnO92u25nZWWZSy+91Dl2QcP4bXajxKRJk4yPj4/59ttvT/MdAihpBEmoML788st8N+GF3XzHx8d7tOjZ/wYNGkTLM8rUX3/9ZYKDg80zzzxjFi1alC9M6t69u9m4caOzf1Gt16+88oqzek9oaKhJT093ttm9M8aPH286depkmjRpYmrUqGGee+45j2PYgdNzzz1nLMsyzzzzjFm7dq3ZuHGjSUxMNH379nXKN336dFq2ccp27txpIiMjPer8BRdcYDp27GgiIyPNfffdZ+666y4zYsQIc++995oxY8aYxx57zPzvf//zmLfIdvvttxvLskzjxo1N//79823Pzs4227dvNyNGjDCWZeULSe3P14EDB8zw4cOdnhzjx49nAlaclq1bt5rq1as7N9mTJk0yxuRf7MAbb7zxhqlZs6Yzh11B54UVK1aYWbNmmT59+pihQ4eaMWPGUIdR4vbv32+uv/56ExAQYGrVqmWqV6/uTAifO1CqW7euefDBB82nn36ar+ep/bNt0qRJplatWmbVqlXOY/Z1xqxZszx6ccfHx5sjR44YYwr+LN18882mU6dOTigFoOIgSEKFMnDgQOcEc9FFFzkTs+Y9UWVmZppffvnF3H777aZ79+4mLCzMrFy5stzKjbNb69atzfDhw40xJ7pu33TTTR431i1btjSvvfbaSY9hhz979+41vXr1cm6Ap02b5rHf33//bbp3725SU1PN8OHDTXh4uElJSTHG5L8Ii4qKci4AzzvvPI+WwMaNG5tffvmlpP4EOIvNnz/fhIaGOkPcfHx8nBsQe7nzgv75+PiYAQMGmE8//dQ51p9//ulx83L77bebadOmma1bt5qvvvrKvPHGG6Zv377Oc43JH87avyckJJirr77aWfXnzTffNMeOHTPTpk0zS5cuLbs/ECqNbt26OXWzbdu2xX6+XTe3bNliLMsyVapUMfXq1TMHDx5kWDHKxaZNm5wem8nJyWbixInG5XKZatWqOZO/V6tWzeO7++KLLzZTpkzJdw1h1+EjR46Y5s2bmz59+jiNYbnrd7t27ZxjXXrppWbEiBEe+9ih0ebNm03Xrl3NokWLSvePAOCUECShQvn99989unPbS+DmHZOd93cuwFAe7Ho4cOBA06FDB+fx1NRUM2bMGGeFQfuG+tFHHzWbN28u9Hh2PZ4/f74T+tSrV8+MHDnSrFixwrz11lumZs2a5vrrrzfGnFidLe9wttzl2rFjh2nYsKHHCkHNmjUz8fHxrHCCEpOZmWm++eYbExAQ4Mzhkrve5/7dDonOOeccj0ApMTHRqf8vvPCCx3bLskyNGjWMv7+/M/SiZcuW5vvvvzfGFP79f/z4cfPss886N0Mul8vUrVvXzJw5k/qPYnO73WbMmDHG5XI59fz11183xphi9eq0A/9rrrnGWJZlQkJCTvqaQFmwvxOTkpJM165dzUUXXWQ++OADExIS4vFdbPdYsizL1KxZ03Tq1MnMnTvXbN261eN4cXFxxuVyeYRAdq/qn376ybRo0cLjuP/5z388ejDt2bPH9O7d2zz00EMM5QQqKMuYYiw5AZSBp59+Wk8++aQk6fLLL9ePP/6o6tWrl2+hgJMYOHCgkpOT9fXXX8sYoypVqkiS5s+fr7Fjx2rLli2STqyu07FjR82aNUutWrWSJI9Vruyfc3Jy9OSTTyo2Nlb79u2TJJ133nlKT0+Xv7+/PvroI3Xq1Elut1sul8v5P7ecnBz5+Pho165dSkxMVM2aNXXOOeeoffv2qlq1ahn9ZXA2SU5O1rp167RgwQJJUkpKiho2bKj9+/erQYMG2rZtm44fP67t27drx44dkiQfHx/l5OToxhtv1Ny5c+Xn5ydJmjFjhmbMmOGszClJVatWVWZmprp166aXXnpJl112WaFlsev/qlWr1KFDB0nSnXfeqRkzZqh27dql9BdAZfftt98qIiJCqampysnJkb+/v3bu3KmqVasW+D1cmN27d6tly5Y6ePCgnnvuOUVFRZVyyQHvZGdn65133tGgQYO0YsUKhYaGasWKFVq2bJn+97//6bfffnP2rVKlirKysmRZlgIDAxUeHq6oqCg1btxYLpdLPXv21K5du/TRRx+pUaNGkv65zvnqq6/0zjvvaM6cOZL+OReEhoaqQYMGzkqFt912W7n8HQAUjSAJFULuC7C9e/eqS5cu2rBhg8LDw/X5559LYolbVDx2vX377bf1wAMP6OjRo/mCnXXr1mns2LFavHixzIleoGrWrJmGDBmi0aNHF3rMbdu2ac6cOZowYYIsy5Lb7VaDBg306quv6qabbirrtwoUqaBQNK/09HS53W59+eWXWrBggebPn+9sW7p0qbp27er8/vfff+v999/Xd999p1q1aum8887TDTfcoF69ejmvIRV+bjh27JgeeeQRLVu2TB999JGaN29eYu8VZye3262rr75aK1eudILNUaNGacqUKcUKkv78808FBQWpVq1a+uKLL3T55ZeXcskB723dulVDhgzRxo0btWnTJufx48eP69NPP9XixYu1YMECHTx4UC6XSy6XS8YY5eTkqGrVqrryyit1yy23qGHDhrr77rv12muvaeDAgQUGritXrtTs2bOVnJysI0eO6LzzzlOPHj1033330egFVHAESaiQZs+erYEDB6pTp05aunQpJxNUaLNmzdJjjz2mr776Kl8vicOHD2v27NmKiorS8ePH5Xa7nW133323xo4dqxYtWhR6U7xu3Trt379fBw4ccG6gpcJv1IHyZNdL+2YhOztbvr6+zv+5HTt2TBEREfrss88kSSNHjtRLL73kcZyCji390+PoZJYsWSJfX1+PcAo4XatXr1ZoaKjTaCCduBkOCQmR5N1386RJk/TYY4/pvvvu06xZs0q9zEBxffrpp4qIiNDkyZM1YsQIZWVlOb2tJSk1NVVvvfWWPv/8cy1btkzZ2dmSJF9fX+Xk5MgYo8DAQCUnJ6t9+/aaM2eOWrdu7Tw/7zVP3nMGgIrPu6YToJQtXrxYw4YN09q1ayVJF1xwgSSpW7duqlq1qsg7URHZ9bJjx47at2+fatSo4Ww7evSoli9frnvvvVcPPfSQunbtqlGjRunCCy+UJLlcLr3zzjuKiIjQl19+KcuyCrz5aN26tTp37uyESPbFGiESKiK7XtotzvYNQd4bA2OMzj33XI0aNcp57Kqrrsp3HFtOTo4TUEkqMkSSpPDwcEIklLiQkBCNGDFC55xzjvPYoEGDnEDUsqyTXrP8+OOPmjFjhrp06aLnn3++1MsLFIddd6+++mrdc889euyxx5SRkaEqVarI7XbL7XY7wzpHjRqlL7/8Ur/88ovGjRun0NBQ5xi+vr7avHmzJGnNmjV6//33dfjwYed18l7z2D8TIgFnDnokodxlZGSoU6dOSkpKUsOGDRUREaG6detq+fLl+uCDD5jPAhWa2+3W7t271b59e02cOFH33Xeffv/9d82ePVuvvvqqLrjgAk2fPl3h4eGSpFWrVql///7auHGjcwwfHx/df//9GjVqlCzLUmpqqkJCQgiLUOmtWLFCN9xwg44fP65ly5apQ4cO1HtUeAcPHtR9993nzAcmSe3bt9fYsWMVGRnpPJZ3GE9SUpKeeOIJ7d69W3PmzHHmygMqohUrVuj222/XzTffrNjY2Hw9QfP2vktPT9fy5cv1yiuvaPXq1UpLS3O2NW7cWHPnztU111xTlm8BQCmiRxLK3bFjx5wWiF27dmn69OlavHixXn/9dUIkVHj2TUJOTo62bNmi//u//9Mtt9yiV199VRMnTnTm+jLGKDMzU1deeaUWLFig4cOHSzrR+mZZlmJjY9WiRQuFhYXp2LFj3EzjrODj46P09HS1atVK7dq1K+/iAF6pXbu2pk6dqt69ezuPrVmzRv3799cTTzyhlJQUJ0TKyMjQpk2bNGfOHN17773KysrSxx9/TIiECsvuY3DFFVdo+PDhmjVrljZs2OBMiG3LfZ3idrud+Y2+/PJL/fHHH5o3b56CgoJUvXp1bd26Va+++qr27t1b5u8HQOmgRxIqhK+++kpz587V1q1b9cgjj+jGG28s7yIBXrFvFjp37qzvv/9e0olhDtOnT3fmEyhszH/fvn0VHx/vDNcZPXq0nn32WY95CIAzzZo1a3Ts2DEFBwerWrVqkuRMNJ+7d8aOHTt09913648//lB8fLyzuhpwpsjOztaECRM0bdo0j94XDRo0UJMmTZxVC3NycrRhwwbNmTOHxRJwRtmwYYP69eun6tWr65tvvvHqOXbY5OPjo2PHjmndunX6+OOPNW/ePM2aNYteSUAlQZCECqU4q54AFcXRo0cVGRmp5ORkxcfHOxNuFzVp5Pjx4/XMM8+oV69eevHFF9W0aVOvngdUZImJiXriiSckSVOnTlWzZs08tmdnZystLU0TJ07Uhx9+qIcfflgPPPCAqlWrRk88nJF+/fVXLVu2TO+//75++eUXNWrUSH/99ZdatWqlyy+/XD169NAdd9zh1dxeQEXidrv1v//9TwMGDNCCBQt06623nvI1Smpqqvz9/UuhlADKA0ESAJwGe46Ae+65R2vXrlViYqKOHz+uqlWrFhqKut1ujR07Vt98842efPJJpweePaEwYSrOdJ9//rn69OmjQ4cOadCgQbriiivUtm1b/fLLL9q3b58WLlyobdu26bXXXvMYHgSc6Q4cOCDLsrR//341a9aMBjKcsezrm507d+qhhx7S6tWr9ddff3lsK85xAFQuBEkAcBrsC6SXXnpJo0eP1p49e3T++ecXuf/GjRvVvHlz53FvljMHzhTGGL322msaNmyYxypW1atXV0BAgPr166eoqChnf262UZlw44zKZsmSJerdu7ceffRRjRs3ju9sAEy2DQCnw75ZyM7OVpUqVbRz506v9rdDpNxzCQCVhWVZGjp0qG666SYZY9S6dWuNGDFCL7/8sr777jsnRMrOzpYkbkhQqRAiobKwGwFCQ0M1aNAgPfXUU9q8ebPznU1/BODsxSQcAHAa7Fa5q6++WllZWcrIyCjW8wmQUJm9+OKL2rVrlwYMGKABAwbIz89P0okA1eVyMRcYAFRgdihau3Zt3XXXXVq0aJFGjBihBQsWqEqVKoSmwFmMJkAAOA12q5y9pG1sbKykEytSZWZmllu5gIqgefPmmj9/vkaMGOGESMYY+fj4cAMCAGeQ1q1bq3fv3vr00081ZswYJSYmKj4+Xi+88EJ5Fw1AOWCOJAA4DfZcGJs3b9all14qt9utbt26aevWrXr33XcVEhJS3kUEKgTm1ACAM5P9/T179mwNHDjQefy2227Tm2++qdq1a5df4QCUC/qUA8BpsHtVJCYm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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.dates as mdates\n", + "from datetime import datetime\n", + "\n", + "import matplotlib.pyplot as plt\n", + "\n", + "plt.rcParams.update({\n", + " \"text.usetex\": True, # Use LaTeX to render all text\n", + " \"font.family\": \"serif\", # Use serif font\n", + " \"font.serif\": [\"Times\"], # or \"Palatino\", \"Computer Modern Roman\", etc.\n", + " \"axes.labelsize\": 10, # Font size for axis labels\n", + " \"font.size\": 10, # Base font size\n", + " \"legend.fontsize\": 9, # Legend font size\n", + " \"xtick.labelsize\": 8, # X-tick font size\n", + " \"ytick.labelsize\": 8, # Y-tick font size\n", + "})\n", + "\n", + "# Suppose your times and temperature data come from your DataFrame and another source\n", + "# For example:\n", + "# df[\"Time\"] contains: [\"20230630-1700\", \"20230630-1800\", \"20230630-1900\", ...]\n", + "# temperature = [...] # corresponding temperature readings\n", + "\n", + "# 1. Parse your times into datetime objects\n", + "parsed_times = [datetime.strptime(t, \"%Y%m%d-%H%M\") for t in df[\"Time\"].values]\n", + "\n", + "# 2. Moving average smoothing (optional)\n", + "def moving_average(data, window_size):\n", + " return np.convolve(data, np.ones(window_size)/window_size, mode='valid')\n", + "\n", + "window_size = 50\n", + "smooth_temperature = moving_average(temperature, window_size)\n", + "smooth_times = parsed_times[:len(smooth_temperature)]\n", + "\n", + "# 3. Plotting\n", + "plt.figure(figsize=(4, 4), dpi=300)\n", + "\n", + "# Plot original data\n", + "plt.plot(parsed_times, temperature, color='lightblue', linewidth=1, alpha=0.5, label=\"Original\")\n", + "\n", + "# Plot the smoothed data\n", + "plt.plot(smooth_times, smooth_temperature, color='crimson', linewidth=2.5, label=f\"Smoothed (window={window_size})\")\n", + "\n", + "# Get the current axis\n", + "ax = plt.gca()\n", + "\n", + "# Use the ConciseDateFormatter for a more compact date display\n", + "locator = mdates.AutoDateLocator()\n", + "formatter = mdates.ConciseDateFormatter(locator)\n", + "ax.xaxis.set_major_locator(locator)\n", + "ax.xaxis.set_major_formatter(formatter)\n", + "\n", + "# Optionally rotate the tick labels a little bit, and set a smaller font size for xticks\n", + "plt.xticks(rotation=30, ha='right', fontsize=8)\n", + "\n", + "# Axis labels and legend\n", + "plt.xlabel('Time', fontsize=12)\n", + "plt.ylabel('Temperature (°F)', fontsize=12)\n", + "plt.legend(frameon=False, fontsize=10)\n", + "\n", + "# Grid styling\n", + "plt.grid(True, which='both', linestyle='--', linewidth=0.5, alpha=0.7)\n", + "plt.tight_layout()\n", + "plt.savefig('plots/external_temperatures.pdf', bbox_inches='tight')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.savefig('p.pdf', bbox_inches='tight')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.10.16" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/smart_control/reinforcement_learning/observers/rendering_observer.py b/smart_control/reinforcement_learning/observers/rendering_observer.py index 34a20e96..6d91ff48 100644 --- a/smart_control/reinforcement_learning/observers/rendering_observer.py +++ b/smart_control/reinforcement_learning/observers/rendering_observer.py @@ -19,7 +19,6 @@ from smart_control.reinforcement_learning.observers.base_observer import Observer from smart_control.reinforcement_learning.utils.config import RENDERS_PATH from smart_control.reinforcement_learning.utils.constants import DEFAULT_TIME_ZONE -from smart_control.reinforcement_learning.utils.constants import KELVIN_TO_CELSIUS as _KELVIN_TO_CELSIUS from smart_control.reinforcement_learning.utils.data_processing import get_action_timeseries from smart_control.reinforcement_learning.utils.data_processing import get_energy_timeseries from smart_control.reinforcement_learning.utils.data_processing import get_latest_episode_reader @@ -27,6 +26,7 @@ from smart_control.reinforcement_learning.utils.data_processing import get_reward_timeseries from smart_control.reinforcement_learning.utils.data_processing import get_zone_timeseries from smart_control.utils import building_renderer +from smart_control.utils.constants import KELVIN_TO_CELSIUS logger = logging.getLogger(__name__) @@ -38,9 +38,6 @@ class RenderingObserver(Observer): also show plots of metrics. """ - # Class constant - KELVIN_TO_CELSIUS = _KELVIN_TO_CELSIUS - def __init__( self, render_interval_steps: int = 10, @@ -356,37 +353,37 @@ def _plot_temperature_timeline( ax1.plot( zone_cooling_setpoints.index, - zone_cooling_setpoints - self.KELVIN_TO_CELSIUS, + zone_cooling_setpoints - KELVIN_TO_CELSIUS, color='yellow', lw=1, ) ax1.plot( zone_cooling_setpoints.index, - zone_heating_setpoints - self.KELVIN_TO_CELSIUS, + zone_heating_setpoints - KELVIN_TO_CELSIUS, color='yellow', lw=1, ) ax1.fill_between( zone_temp_stats.index, - zone_temp_stats['min_temp'] - self.KELVIN_TO_CELSIUS, - zone_temp_stats['max_temp'] - self.KELVIN_TO_CELSIUS, + zone_temp_stats['min_temp'] - KELVIN_TO_CELSIUS, + zone_temp_stats['max_temp'] - KELVIN_TO_CELSIUS, facecolor='green', alpha=0.8, ) ax1.fill_between( zone_temp_stats.index, - zone_temp_stats['q25_temp'] - self.KELVIN_TO_CELSIUS, - zone_temp_stats['q75_temp'] - self.KELVIN_TO_CELSIUS, + zone_temp_stats['q25_temp'] - KELVIN_TO_CELSIUS, + zone_temp_stats['q75_temp'] - KELVIN_TO_CELSIUS, facecolor='green', alpha=0.8, ) ax1.plot( zone_temp_stats.index, - zone_temp_stats['median_temp'] - self.KELVIN_TO_CELSIUS, + zone_temp_stats['median_temp'] - KELVIN_TO_CELSIUS, color='white', lw=3, alpha=1.0, @@ -394,7 +391,7 @@ def _plot_temperature_timeline( ax1.plot( outside_air_temperature_timeseries.index, - outside_air_temperature_timeseries - self.KELVIN_TO_CELSIUS, + outside_air_temperature_timeseries - KELVIN_TO_CELSIUS, color='magenta', lw=3, alpha=1.0, @@ -422,7 +419,7 @@ def _plot_action_timeline( if action_tuple[1] in ['supply_water_setpoint', 'supply_air_heating_temperature_setpoint']: # pylint: disable=line-too-long single_action_timeseries['setpoint_value'] = ( - single_action_timeseries['setpoint_value'] - self.KELVIN_TO_CELSIUS + single_action_timeseries['setpoint_value'] - KELVIN_TO_CELSIUS ) ax1.plot( @@ -583,3 +580,5 @@ def reset(self) -> None: self._counter = 0 self._cumulative_reward = 0.0 self._start_time = None + self._cumulative_reward = 0.0 + self._start_time = None diff --git a/smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py b/smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py new file mode 100644 index 00000000..67a1b76e --- /dev/null +++ b/smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py @@ -0,0 +1,152 @@ +# smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py + +import json +import logging +import os + +from tf_agents.trajectories import trajectory as trajectory_lib + +from smart_control.reinforcement_learning.observers.base_observer import Observer +from smart_control.reinforcement_learning.visualization.trajectory_plotter import TrajectoryPlotter + +logger = logging.getLogger(__name__) + + +class TrajectoryRecorderObserver(Observer): + """Observer that records trajectory data for visualization. + + This observer saves information about the agent's actions, states, rewards, + and timestamps during an episode for later visualization and generates plots. + """ + + def __init__( + self, + save_dir: str, + environment=None, + time_zone='US/Pacific', + generate_plots=True, + ): + self._save_dir = save_dir + self._environment = environment + self._time_zone = time_zone + self._episode_count = 0 + self._generate_plots = generate_plots + + # Create plots directory + self._plots_dir = os.path.join(save_dir, 'plots') + os.makedirs(self._plots_dir, exist_ok=True) + + # Initialize trajectory data containers + self._reset_trajectory_data() + + # Get environment information + self._num_timesteps_in_episode = self._environment.pyenv.envs[ + 0 + ]._num_timesteps_in_episode + + def _reset_trajectory_data(self): + """Reset the trajectory data containers.""" + self._actions = [] + self._rewards = [] + self._timestamps = [] + self._cumulative_reward = 0.0 + self._step_counts = [] + + def __call__(self, trajectory: trajectory_lib.Trajectory) -> None: + """Record data at each step.""" + # Extract action from trajectory + action = trajectory.action + self._actions.append(action.tolist()) + + # Extract reward and update cumulative reward + reward = float(trajectory.reward) + self._rewards.append(reward) + self._cumulative_reward += reward + + # Get current simulation timestamp + if hasattr(self._environment.pyenv.envs[0], 'current_simulation_timestamp'): + sim_time = self._environment.pyenv.envs[0].current_simulation_timestamp + if hasattr(sim_time, 'tz_convert'): + sim_time = sim_time.tz_convert(self._time_zone) + self._timestamps.append(str(sim_time)) + + # Get current step count + step_count = self._environment.pyenv.envs[0]._step_count + self._step_counts.append(step_count) + + # Check if episode is done + if trajectory.is_last(): + self._save_trajectory() + + # Generate plots if enabled + if self._generate_plots: + self._generate_plots_for_episode() + + self._reset_trajectory_data() + self._episode_count += 1 + + def _save_trajectory(self): + """Save trajectory data to file.""" + trajectory_data = { + 'actions': self._actions, + 'rewards': self._rewards, + 'timestamps': self._timestamps, + 'step_counts': self._step_counts, + 'cumulative_reward': self._cumulative_reward, + 'episode_number': self._episode_count, + } + + # Create filename and save + episode_file = os.path.join( + self._save_dir, f'episode_{self._episode_count}.json' + ) + with open(episode_file, 'w') as f: + json.dump(trajectory_data, f, indent=2) + + logger.info( + f'Saved trajectory data for episode {self._episode_count} to' + f' {episode_file}' + ) + + def _generate_plots_for_episode(self): + """Generate plots for the current episode.""" + episode_num = self._episode_count + + # Generate action plot + action_plot_path = os.path.join( + self._plots_dir, f'episode_{episode_num}_action_plot.png' + ) + TrajectoryPlotter.plot_actions( + self._actions, + action_plot_path, + timestamps=self._timestamps if len(self._timestamps) <= 20 else None, + title=f'Episode {episode_num}: Actions Over Time', + ) + + # Generate reward plot + reward_plot_path = os.path.join( + self._plots_dir, f'episode_{episode_num}_reward.png' + ) + TrajectoryPlotter.plot_rewards( + self._rewards, + reward_plot_path, + timestamps=self._timestamps if len(self._timestamps) <= 20 else None, + title=f'Episode {episode_num}: Rewards Over Time', + ) + + # Generate cumulative reward plot + cum_reward_plot_path = os.path.join( + self._plots_dir, f'episode_{episode_num}_cum_reward.png' + ) + TrajectoryPlotter.plot_cumulative_reward( + self._rewards, + cum_reward_plot_path, + timestamps=self._timestamps if len(self._timestamps) <= 20 else None, + title=f'Episode {episode_num}: Cumulative Reward Over Time', + ) + + logger.info(f'Generated plots for episode {episode_num}') + + def reset(self) -> None: + """Reset the observer to its initial state.""" + self._reset_trajectory_data() diff --git a/smart_control/reinforcement_learning/policies/saved_model_policy.py b/smart_control/reinforcement_learning/policies/saved_model_policy.py new file mode 100644 index 00000000..662568c4 --- /dev/null +++ b/smart_control/reinforcement_learning/policies/saved_model_policy.py @@ -0,0 +1,75 @@ +import tensorflow as tf +import tensorflow_probability as tfp +from tf_agents.policies import tf_policy +from tf_agents.trajectories import policy_step +from tf_agents.trajectories import time_step as ts + + +class SavedModelPolicy(tf_policy.TFPolicy): + """Policy that uses a saved TF-Agents policy model.""" + + def __init__(self, saved_model_path, time_step_spec, action_spec, name=None): + """Initialize a SavedModelPolicy. + + Args: + saved_model_path: Path to the saved model. + time_step_spec: A `TimeStep` spec of the expected time_steps. + action_spec: A nest of BoundedTensorSpec representing the actions. + name: The name of this policy. + """ + self._saved_model_path = saved_model_path + + # Load the saved policy + self._loaded_model = tf.saved_model.load(saved_model_path) + + # Use empty tuple as default for policy state + self._policy_state_spec = () + + super(SavedModelPolicy, self).__init__( + time_step_spec=time_step_spec, + action_spec=action_spec, + policy_state_spec=self._policy_state_spec, + name=name or 'SavedModelPolicy', + ) + + @tf.function + def _action(self, time_step, policy_state, seed): + """Implementation of `action`.""" + # Convert the time_step to tensors + observation = tf.nest.map_structure( + tf.convert_to_tensor, time_step.observation + ) + step_type = tf.convert_to_tensor(time_step.step_type) + reward = tf.convert_to_tensor(time_step.reward) + discount = tf.convert_to_tensor(time_step.discount) + + # Recreate the time step with tensors + time_step_tensors = ts.TimeStep( + step_type=step_type, + reward=reward, + discount=discount, + observation=observation, + ) + + # Call the action method of the loaded model + action_step = self._loaded_model.action(time_step_tensors) + return action_step + + def _distribution(self, time_step, policy_state): + """Implementation of `distribution`.""" + # Get deterministic action + action_step = self._action(time_step, policy_state, seed=None) + + # Create deterministic distribution + def _to_distribution(action): + return tfp.distributions.Deterministic(loc=action) + + action_distribution = tf.nest.map_structure( + _to_distribution, action_step.action + ) + + return policy_step.PolicyStep( + action=action_distribution, + state=action_step.state, + info=action_step.info, + ) diff --git a/smart_control/reinforcement_learning/scripts/eval.py b/smart_control/reinforcement_learning/scripts/eval.py new file mode 100644 index 00000000..be052030 --- /dev/null +++ b/smart_control/reinforcement_learning/scripts/eval.py @@ -0,0 +1,314 @@ +""" +Script to evaluate a trained reinforcement learning policy. +This script loads a saved policy and evaluates it on a configured environment. +""" + +from datetime import datetime +import logging +import os +import shutil +import tempfile + +import tensorflow as tf +from tf_agents.environments import tf_py_environment +from tf_agents.metrics import tf_metrics +from tf_agents.policies import py_tf_eager_policy +from tf_agents.train import actor + +from smart_control.reinforcement_learning.observers.composite_observer import CompositeObserver +from smart_control.reinforcement_learning.observers.print_status_observer import PrintStatusObserver +from smart_control.reinforcement_learning.observers.trajectory_recorder_observer import TrajectoryRecorderObserver +from smart_control.reinforcement_learning.policies.saved_model_policy import SavedModelPolicy +from smart_control.reinforcement_learning.policies.schedule_policy import create_baseline_schedule_policy +from smart_control.reinforcement_learning.utils.config import EXPERIMENT_RESULTS_PATH +from smart_control.reinforcement_learning.utils.config import ROOT_DIR +from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment + +# Configure logging +logging.basicConfig( + level=logging.INFO, + format="[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]", +) +logger = logging.getLogger(__name__) + + +def find_latest_checkpoint(policy_dir): + """ + Find the latest policy checkpoint in a directory. + + Args: + policy_dir: Path to the directory containing checkpoints + + Returns: + Path to the latest checkpoint or None if no checkpoints found + """ + # Check if there's a checkpoints directory + checkpoints_dir = os.path.join(policy_dir, "checkpoints") + if os.path.exists(checkpoints_dir): + # Look for checkpoint directories + checkpoint_dirs = [ + d + for d in os.listdir(checkpoints_dir) + if d.startswith("policy_checkpoint_") + ] + + if checkpoint_dirs: + # Sort by checkpoint number and get the latest + latest_checkpoint = sorted( + checkpoint_dirs, key=lambda x: int(x.split("_")[-1]) + )[-1] + + return os.path.join(checkpoints_dir, latest_checkpoint) + + # If we're here, either there's no checkpoints dir or no checkpoints in it + return None + + +def create_merged_saved_model(policy_dir): + """ + Create a temporary directory with a complete SavedModel by merging: + 1. Model structure from policy_dir + 2. Variables from the latest checkpoint + + Args: + policy_dir: Base directory containing policies and checkpoints + + Returns: + Path to temporary directory with complete model + """ + # First check for greedy_policy (preferred) or policy directories + model_structure_dir = None + if os.path.exists(os.path.join(policy_dir, "greedy_policy")): + model_structure_dir = os.path.join(policy_dir, "greedy_policy") + logger.info("Using model structure from greedy_policy directory") + else: + raise ValueError(f"No policy structure directories found in {policy_dir}") + + # Find latest checkpoint for variables + latest_checkpoint = find_latest_checkpoint(policy_dir) + if not latest_checkpoint: + logger.warning("No checkpoints found, using original model structure only") + return model_structure_dir + + logger.info(f"Found latest checkpoint at: {latest_checkpoint}") + + # Create temporary directory for merged model + temp_dir = tempfile.mkdtemp(prefix="merged_policy_") + logger.info(f"Created temporary directory for merged model: {temp_dir}") + + # Copy model structure files (everything except 'variables' directory) + for item in os.listdir(model_structure_dir): + if item != "variables": + source = os.path.join(model_structure_dir, item) + dest = os.path.join(temp_dir, item) + if os.path.isdir(source): + shutil.copytree(source, dest) + else: + shutil.copy2(source, dest) + + # Create variables directory + variables_dir = os.path.join(temp_dir, "variables") + os.makedirs(variables_dir, exist_ok=True) + + # Copy latest checkpoint variables + checkpoint_vars_dir = os.path.join(latest_checkpoint, "variables") + for item in os.listdir(checkpoint_vars_dir): + source = os.path.join(checkpoint_vars_dir, item) + dest = os.path.join(variables_dir, item) + shutil.copy2(source, dest) + + logger.info(f"Successfully created merged model at {temp_dir}") + return temp_dir + + +def evaluate_policy( + policy_dir, + gin_config_path, + experiment_name, + num_eval_episodes=10, + save_trajectory=True, +): + """ + Evaluates a trained policy on a configured environment. + + Args: + policy_dir: Path to the directory containing the saved policy + gin_config_path: Path to the .gin config file + experiment_name: Name of the evaluation experiment + num_eval_episodes: Number of episodes to evaluate + save_trajectory: Whether to save detailed trajectory data for each episode + """ + # Get base directory for evaluation results + base_dir = os.path.dirname(EXPERIMENT_RESULTS_PATH) + eval_results_path = os.path.join(base_dir, "eval_results") + os.makedirs(eval_results_path, exist_ok=True) + + # Generate timestamp for results directory + current_time = datetime.now().strftime("%Y_%m_%d-%H:%M:%S") + results_dir = os.path.join( + eval_results_path, f"{experiment_name}_{current_time}" + ) + logger.info(f"Evaluation results will be saved to {results_dir}") + + try: + os.makedirs(results_dir, exist_ok=False) + except FileExistsError: + logger.exception(f"Directory {results_dir} already exists. Exiting.") + raise FileExistsError(f"Directory {results_dir} already exists. Exiting.") + + # Create metrics directory + metrics_dir = os.path.join(results_dir, "metrics") + os.makedirs(metrics_dir, exist_ok=True) + + # Create eval environment + logger.info("Creating evaluation environment") + eval_env = create_and_setup_environment( + gin_config_path, metrics_path=metrics_dir + ) + + # Wrap in TF environment + eval_tf_env = tf_py_environment.TFPyEnvironment(eval_env) + + # Create global step counter + eval_step = tf.Variable(0, trainable=False, dtype=tf.int64) + + # Create policy based on the type + temp_dir = None + try: + if policy_dir == "schedule": + logger.info("Using schedule policy") + policy = create_baseline_schedule_policy(eval_tf_env) + else: + # Create a merged saved model with structure from policy dir and variables from latest checkpoint + temp_dir = create_merged_saved_model(policy_dir) + + # Use SavedModelPolicy for saved model + logger.info(f"Loading saved model from {temp_dir}") + policy = SavedModelPolicy( + temp_dir, eval_tf_env.time_step_spec(), eval_tf_env.action_spec() + ) + logger.info("Saved model policy created") + + # Set up metrics + eval_metrics = [ + tf_metrics.AverageReturnMetric(buffer_size=num_eval_episodes), + tf_metrics.AverageEpisodeLengthMetric(buffer_size=num_eval_episodes), + tf_metrics.MaxReturnMetric(buffer_size=num_eval_episodes), + tf_metrics.MinReturnMetric(buffer_size=num_eval_episodes), + tf_metrics.NumberOfEpisodes(), + tf_metrics.EnvironmentSteps(), + ] + + observers_list = [] + + print_observer = PrintStatusObserver( + status_interval_steps=1, environment=eval_tf_env, replay_buffer=None + ) + + observers_list.append(print_observer) + + # Record trajectory observer + trajectory_dir = None + if save_trajectory: + trajectory_dir = os.path.join(results_dir, "trajectories") + os.makedirs(trajectory_dir, exist_ok=True) + + if save_trajectory and trajectory_dir: + trajectory_observer = TrajectoryRecorderObserver( + save_dir=trajectory_dir, environment=eval_tf_env + ) + observers_list.append(trajectory_observer) + + observers = CompositeObserver(observers_list) + + # Create eval actor with observers + logger.info("Creating evaluation actor") + eval_actor = actor.Actor( + eval_env, + py_tf_eager_policy.PyTFEagerPolicy(policy), + eval_step, + episodes_per_run=num_eval_episodes, + metrics=actor.eval_metrics(num_eval_episodes), + observers=[observers], + summary_dir=os.path.join(results_dir, "eval"), + summary_interval=1, + ) + + # Run evaluation + logger.info(f"Starting evaluation for {num_eval_episodes} episodes") + eval_actor.run() + + # Write evaluation summaries + with eval_actor.summary_writer.as_default(): + for m in eval_metrics: + tf.summary.scalar(m.name, m.result(), step=eval_step.numpy()) + logger.info(f"Eval {m.name}: {m.result()}") + eval_actor.summary_writer.flush() + + logger.info(f"Evaluation completed. Saved results in {results_dir}") + return + + finally: + # Clean up temporary directory if created + if temp_dir and os.path.exists(temp_dir): + logger.info(f"Cleaning up temporary directory: {temp_dir}") + shutil.rmtree(temp_dir) + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser( + description="Evaluate a trained reinforcement learning policy" + ) + parser.add_argument( + "--policy-dir", + type=str, + required=True, + help=( + "Path to the directory containing the saved policy. To " + " use" + " schedule policy, just type `schedule`" + ), + ) + parser.add_argument( + "--gin-config", + type=str, + default=os.path.join( + ROOT_DIR, + "smart_control", + "configs", + "resources", + "sb1", + "sim_config.gin", + ), + help="Path to the .gin config file", + ) + parser.add_argument( + "--num-eval-episodes", + type=int, + default=1, + help="Number of episodes for evaluation", + ) + parser.add_argument( + "--experiment-name", + type=str, + required=True, + help="Name of the evaluation experiment", + ) + + args = parser.parse_args() + + # Make it work for both relative and absolute paths + if not os.path.isabs(args.gin_config): + gin_config_path = os.path.join(ROOT_DIR, args.gin_config) + + if not os.path.isabs(args.policy_dir) and args.policy_dir != "schedule": + args.policy_dir = os.path.join(ROOT_DIR, args.policy_dir) + + evaluate_policy( + policy_dir=args.policy_dir, + gin_config_path=gin_config_path, + experiment_name=args.experiment_name, + num_eval_episodes=args.num_eval_episodes, + ) diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py b/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py new file mode 100644 index 00000000..7f1bcd7d --- /dev/null +++ b/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py @@ -0,0 +1,189 @@ +#!/usr/bin/env python3 +""" +Grid Configuration Generator for Gin Config Files + +This script generates multiple variations of a gin config file by creating a grid +of different values for specified parameters. +""" + +import argparse +import logging +import os +import re +from itertools import product + +from smart_control.reinforcement_learning.utils.config import CONFIG_PATH +from smart_control.utils.constants import ROOT_DIR + +logger = logging.getLogger(__name__) +# Configure logging +logging.basicConfig( + level=logging.WARNING, + format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', +) + + +def read_config_file(filepath): + """Read the base configuration file.""" + with open(filepath, 'r') as f: + return f.read() + + +def modify_config(config_content, param_name, param_value): + """ + Modify a specific parameter in the config content. + Matches parameter assignments with literal values (numbers or quoted strings) + but not function calls that start with @ or contain parentheses. + Returns the modified config content. + """ + # This pattern has several components: + # 1. Match line start or after newline + # 2. Capture any leading text + # 3. Capture the parameter name, equals sign, and surrounding whitespace + # 4. Capture the value, which can be either: + # - A quoted string (with ' or ") + # - Or a sequence that doesn't start with @ and doesn't contain () + # 5. Capture the end of line + + pattern = rf'(^|\n)(.*?)({re.escape(param_name)}\s*=\s*)((?:[\'\"].*?[\'\"])|(?:[^@\n][^()\n]*))($|\n)' + # Format replacement to preserve surrounding context + replacement = r'\g<1>\g<2>\g<3>{}\g<5>'.format(param_value) + + modified_content = re.sub( + pattern, replacement, config_content, flags=re.MULTILINE + ) + + if modified_content == config_content: + logger.warning( + f"Warning: Parameter '{param_name}' not found in config file." + ) + + return modified_content + + +def generate_configs(base_config_path, output_dir, param_grids): + """ + Generate multiple config files based on parameter grids. + + Args: + base_config_path: Path to the base config file + output_dir: Directory to save generated config files + param_grids: Dictionary mapping parameter names to lists of values + """ + # Create output directory if it doesn't exist + os.makedirs(output_dir, exist_ok=True) + + # Read the base config file + base_config = read_config_file(base_config_path) + + # Get parameter names and their possible values + param_names = list(param_grids.keys()) + param_values = [param_grids[name] for name in param_names] + + # Generate all combinations of parameter values + for combination in product(*param_values): + # Create a new config file for each combination + modified_config = base_config + + # Build filename parts and track modifications for this combination + filename_parts = [] + + for i, param_name in enumerate(param_names): + param_value = combination[i] + modified_config = modify_config(modified_config, param_name, param_value) + + # Add to filename parts (clean parameter name and value) + clean_name = param_name.replace('_', '') + + if param_name == 'start_timestamp': + filename_parts.append(f'{clean_name}-{param_value[1:11]}') + else: + filename_parts.append(f'{clean_name}-{param_value}') + + # Generate a filename based on the parameter values + output_filename = f"config_{'_'.join(filename_parts)}.gin" + output_path = os.path.join(output_dir, output_filename) + + # Write the modified config to a new file + with open(output_path, 'w') as f: + f.write(modified_config) + + logger.info(f'Generated: {output_path}') + + +def main(): + parser = argparse.ArgumentParser( + description='Generate grid of gin config files' + ) + parser.add_argument( + 'base_config', + default=os.path.join( + ROOT_DIR, + 'smart_control', + 'configs', + 'resources', + 'sb1', + 'sim_config.gin', + ), + help='Path to the base gin config file', + ) + parser.add_argument( + '--output-dir', + default=os.path.join(CONFIG_PATH, 'generated_configs'), + help='Directory to save generated config files', + ) + parser.add_argument( + '--time-steps', + type=str, + default='300', + help='Comma-separated list of time_step_sec values', + ) + parser.add_argument( + '--num-days', + type=str, + default='1,7,14,30', + help='Comma-separated list of num_days_in_episode values', + ) + parser.add_argument( + '--start-timestamps', + type=str, + default='2023-07-06', + help='Comma-separated list of start_timestamp dates', + ) + + args = parser.parse_args() + + # This ensures that it works both with absolute and relative paths + if not os.path.isabs(args.base_config): + args.base_config = os.path.join(ROOT_DIR, args.base_config) + if not os.path.isabs(args.output_dir): + args.output_dir = os.path.join(ROOT_DIR, args.output_dir) + + # Convert comma-separated values to lists + time_steps = [step.strip() for step in args.time_steps.split(',')] + num_days = [days.strip() for days in args.num_days.split(',')] + start_timestamps = [ + f"'{ timestamp.strip() } 07:00:00+00:00'" + for timestamp in args.start_timestamps.split(',') + ] + + logger.info(start_timestamps) + + # Define the parameter grid + param_grid = { + 'time_step_sec': time_steps, + 'num_days_in_episode': num_days, + 'start_timestamp': start_timestamps, + } + + # Generate configurations + generate_configs(args.base_config, args.output_dir, param_grid) + + logger.info( + f'Generated {len(time_steps) * len(num_days)} configuration files in' + f' {args.output_dir}' + ) + + +if __name__ == '__main__': + main() diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py index 16e2303f..61d284bb 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py @@ -20,8 +20,9 @@ from smart_control.reinforcement_learning.policies.schedule_policy import create_baseline_schedule_policy from smart_control.reinforcement_learning.replay_buffer.replay_buffer import ReplayBufferManager from smart_control.reinforcement_learning.utils.config import CONFIG_PATH -from smart_control.reinforcement_learning.utils.config import OUTPUT_DATA_PATH +from smart_control.reinforcement_learning.utils.config import REPLAY_BUFFER_DATA_PATH from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment +from smart_control.utils.constants import ROOT_DIR # Configure logging logging.basicConfig( @@ -32,7 +33,7 @@ def populate_replay_buffer( - buffer_name, + buffer_path, buffer_capacity, steps_per_run, num_runs, @@ -42,8 +43,7 @@ def populate_replay_buffer( """Populates a replay buffer with initial exploration data. Args: - buffer_name: Name with which to save replay buffer. Buffer will be at - smart_control/reinforcement_learning/data/starter_buffers/{buffer_name} + buffer_path: Path where the replay buffer will be saved. buffer_capacity: Maximum size of the replay buffer steps_per_run: Number of steps per actor run num_runs: Number of actor runs to perform @@ -53,24 +53,17 @@ def populate_replay_buffer( Returns: The replay buffer. """ - - buffer_path = os.path.join( - OUTPUT_DATA_PATH, - f'{buffer_name}_seqlen{sequence_length}_exp{num_runs*steps_per_run}', - ) logger.info('Buffer path: %s', buffer_path) # Create directory if it doesn't exist try: - os.makedirs( - os.path.dirname(buffer_path + '/anything-here'), exist_ok=False - ) # added '/anything-here' such that the path is a directory + os.makedirs(buffer_path, exist_ok=False) except FileExistsError as err: logger.exception( 'This buffer path already exists. This would override the existing' - ' buffer. Please use another name' + ' buffer. Please use another path' ) - raise FileExistsError('Buffer name already exists, would be overriden') from err # pylint: disable=line-too-long + raise FileExistsError('Buffer path already exists, would be overriden') from err # pylint: disable=line-too-long # Load environment logger.info('Loading environment from standard config') @@ -189,7 +182,7 @@ def populate_replay_buffer( # fmt: off # pylint: disable=line-too-long parser = argparse.ArgumentParser(description='Populate a replay buffer with initial exploration data') - parser.add_argument('--buffer-name', type=str, required=True, help='Name to identify the saved replay buffer') + parser.add_argument('--buffer-name', type=str, required=True, help='Name used to identify the replay buffer') parser.add_argument('--capacity', type=int, default=50000, help='Replay buffer capacity') parser.add_argument('--steps-per-run', type=int, default=100, help='Number of steps per actor run') parser.add_argument('--num-runs', type=int, default=5, help='Number of actor runs to perform') @@ -199,8 +192,18 @@ def populate_replay_buffer( # fmt: on args = parser.parse_args() + # This makes it work for both relative and absolute paths + if not os.path.isabs(args.env_gin_config_file_path): + args.env_gin_config_file_path = os.path.join( + ROOT_DIR, args.env_gin_config_file_path + ) + + buffer_path = args.buffer_name + if not os.path.isabs(args.buffer_name): + buffer_path = os.path.join(REPLAY_BUFFER_DATA_PATH, args.buffer_name) + populate_replay_buffer( - buffer_name=args.buffer_name, + buffer_path=buffer_path, buffer_capacity=args.capacity, steps_per_run=args.steps_per_run, num_runs=args.num_runs, diff --git a/smart_control/reinforcement_learning/scripts/train.py b/smart_control/reinforcement_learning/scripts/train.py index 21d7b8ba..ec929e86 100644 --- a/smart_control/reinforcement_learning/scripts/train.py +++ b/smart_control/reinforcement_learning/scripts/train.py @@ -1,18 +1,14 @@ -"""Trains a reinforcement learning agent using a pre-populated replay buffer. - -This script sets up the training process with separate collection and evaluation -components. +""" +Script to train a reinforcement learning agent using a pre-populated replay buffer. +This script sets up the training process with separate collection and evaluation components. """ +from datetime import datetime +import json import os +import shutil -# setting this environment variable before importing tensorflow -# https://github.com/tensorflow/tensorflow/issues/63548#issuecomment-2008941537 os.environ['WRAPT_DISABLE_EXTENSIONS'] = 'true' - -# pylint: disable=g-import-not-at-top, wrong-import-position -import argparse -import datetime import logging import tensorflow as tf @@ -24,17 +20,18 @@ from tf_agents.train import learner from tf_agents.train import triggers from tf_agents.train.utils import spec_utils +from tqdm import tqdm +from smart_control.reinforcement_learning.agents.ddpg_agent import create_ddpg_agent from smart_control.reinforcement_learning.agents.sac_agent import create_sac_agent from smart_control.reinforcement_learning.observers.composite_observer import CompositeObserver from smart_control.reinforcement_learning.observers.print_status_observer import PrintStatusObserver from smart_control.reinforcement_learning.replay_buffer.replay_buffer import ReplayBufferManager from smart_control.reinforcement_learning.utils.config import CONFIG_PATH from smart_control.reinforcement_learning.utils.config import EXPERIMENT_RESULTS_PATH +from smart_control.reinforcement_learning.utils.config import ROOT_DIR from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment -# pylint: enable=g-import-not-at-top, wrong-import-position - # Configure logging logging.basicConfig( level=logging.INFO, @@ -43,6 +40,36 @@ logger = logging.getLogger(__name__) +def save_experiment_parameters(params, save_path): + """ + Save experiment parameters to a JSON file. + + Args: + params: Dictionary containing experiment parameters + save_path: Path to save the parameters file + """ + # Create a parameters file path + params_file = os.path.join(save_path, 'experiment_parameters.json') + + # Add timestamp to parameters + params['timestamp'] = datetime.now().strftime('%Y_%m_%d-%H:%M:%S') + + # Save parameters to file + logger.info(f'Saving experiment parameters to {params_file}') + with open(params_file, 'w') as f: + json.dump(params, f, indent=4) + + # Also save as a readable text file for quick reference + params_txt = os.path.join(save_path, 'experiment_parameters.txt') + with open(params_txt, 'w') as f: + f.write('Experiment Parameters:\n') + f.write('=====================\n\n') + for key, value in params.items(): + f.write(f'{key}: {value}\n') + + logger.info(f'Experiment parameters saved to {params_file} and {params_txt}') + + def train_agent( starter_buffer_path, experiment_name, @@ -53,48 +80,66 @@ def train_agent( log_interval=100, eval_interval=1000, num_eval_episodes=5, - checkpoint_interval=1000, # New parameter for checkpointing frequency - learner_iterations=200, # New parameter for learner iterations per loop + checkpoint_interval=1000, + learner_iterations=200, + scenario_config_path=None, ): - """Trains a reinforcement learning agent using a pre-populated replay buffer. + """ + Trains a reinforcement learning agent using a pre-populated replay buffer. Args: - starter_buffer_path: Path to the pre-populated replay buffer - experiment_name: Name of the experiment - used to name the - experiment results directory - agent_type: Type of agent to train ('sac' or 'td3') - train_iterations: Number of training iterations - collect_steps_per_iteration: Number of collection steps - per training iteration - batch_size: Batch size for training - log_interval: Interval for logging training metrics - eval_interval: Interval for evaluating the agent - num_eval_episodes: Number of episodes for evaluation - checkpoint_interval: Interval for checkpointing the replay buffer - learner_iterations: Number of iterations to run the agent learner - per training loop - - Returns: - The trained agent. + starter_buffer_path: Path to the pre-populated replay buffer + experiment_name: Name of the experiment + agent_type: Type of agent to train ('sac' or 'td3') + train_iterations: Number of training iterations + collect_steps_per_iteration: Number of collection steps per training iteration + batch_size: Batch size for training + log_interval: Interval for logging training metrics + eval_interval: Interval for evaluating the agent + num_eval_episodes: Number of episodes for evaluation + checkpoint_interval: Interval for checkpointing the replay buffer + learner_iterations: Number of iterations to run the agent learner per training loop + scenario_config_path: Path to the scenario configuration file (optional) """ - # Set up scenario config path - scenario_config_path = os.path.join(CONFIG_PATH, 'sim_config_1_day.gin') + # Set up scenario config path if not provided + if scenario_config_path is None: + scenario_config_path = os.path.join(CONFIG_PATH, 'sim_config_1_day.gin') # Generate timestamp for summary directory - current_time = datetime.datetime.now().strftime('%Y_%m_%d-%H:%M:%S') + current_time = datetime.now().strftime('%Y_%m_%d-%H:%M:%S') summary_dir = os.path.join( EXPERIMENT_RESULTS_PATH, f'{experiment_name}_{current_time}' ) - logger.info('Experiment results will be saved to %s', summary_dir) + logger.info(f'Experiment results will be saved to {summary_dir}') try: os.makedirs(summary_dir, exist_ok=False) - except FileExistsError as err: - logger.exception('Directory %s already exists. Exiting.', summary_dir) - raise FileExistsError(f'Directory {summary_dir} already exists. Exiting.') from err # pylint: disable=line-too-long + except FileExistsError: + logger.exception(f'Directory {summary_dir} already exists. Exiting.') + raise FileExistsError(f'Directory {summary_dir} already exists. Exiting.') + + # Save experiment parameters + experiment_params = { + 'starter_buffer_path': starter_buffer_path, + 'experiment_name': experiment_name, + 'agent_type': agent_type, + 'train_iterations': train_iterations, + 'collect_steps_per_iteration': collect_steps_per_iteration, + 'batch_size': batch_size, + 'log_interval': log_interval, + 'eval_interval': eval_interval, + 'num_eval_episodes': num_eval_episodes, + 'checkpoint_interval': checkpoint_interval, + 'learner_iterations': learner_iterations, + 'scenario_config_path': scenario_config_path, + } + save_experiment_parameters(experiment_params, summary_dir) # Create train and eval environments - logger.info('Creating train and eval environments') + logger.info( + 'Creating train and eval environments with scenatio config path:' + f' {scenario_config_path}' + ) train_env = create_and_setup_environment( scenario_config_path, metrics_path=os.path.join(summary_dir, 'metrics') ) @@ -113,19 +158,20 @@ def train_agent( _, action_spec, time_step_spec = spec_utils.get_tensor_specs(train_tf_env) # Create agent based on type - logger.info('Creating %s agent', agent_type) + logger.info(f'Creating {agent_type} agent') if agent_type.lower() == 'sac': logger.info('Creating SAC agent') agent = create_sac_agent( time_step_spec=time_step_spec, action_spec=action_spec ) - else: - logger.exception( - "Unsupported agent type: %s. Choose from 'sac' or 'td3'.", agent_type - ) - raise ValueError( - f"Unsupported agent type: {agent_type}. Choose from 'sac' or 'td3'." + elif agent_type.lower() == 'ddpg': + logger.info('Creating DDPG agent') + agent = create_ddpg_agent( + time_step_spec=time_step_spec, action_spec=action_spec ) + else: + logger.exception(f'Unsupported agent type: {agent_type}') + raise ValueError(f'Unsupported agent type: {agent_type}') # Create policies collect_policy = agent.collect_policy @@ -144,24 +190,49 @@ def train_agent( tf_metrics.AverageEpisodeLengthMetric(buffer_size=num_eval_episodes), ] - # Load replay buffer from existing path - logger.info('Instantiating replay buffer manager') + # Create a new buffer path in the experiment directory + new_buffer_path = os.path.join(summary_dir, 'replay_buffer') + os.makedirs(new_buffer_path, exist_ok=True) + + # Copy the original buffer to the new location + logger.info( + f'Creating a copy of replay buffer from {starter_buffer_path} to' + f' {new_buffer_path}' + ) + + # First check if starter_buffer_path is a file or directory + if os.path.isfile(starter_buffer_path): + # If it's a file, copy it directly + shutil.copy2(starter_buffer_path, new_buffer_path) + else: + # If it's a directory, copy all contents + for item in os.listdir(starter_buffer_path): + source_item = os.path.join(starter_buffer_path, item) + dest_item = os.path.join(new_buffer_path, item) + if os.path.isfile(source_item): + shutil.copy2(source_item, dest_item) + else: + shutil.copytree(source_item, dest_item) + + logger.info(f'Replay buffer copied to {new_buffer_path}') + + # Initialize replay buffer manager with the copied buffer path + logger.info('Instantiating replay buffer manager with copied buffer') replay_manager = ReplayBufferManager( agent.collect_data_spec, 50000, # Use default capacity - starter_buffer_path, + new_buffer_path, # Use the copied buffer path sequence_length=2, ) logger.info( - 'Replay buffer size before loading starter buffer: %d frames', - replay_manager.num_frames(), + f'Replay buffer size before loading: {replay_manager.num_frames()} frames' ) - logger.info('Loading starter replay buffer from %s', starter_buffer_path) + # Load the copied replay buffer + logger.info(f'Loading replay buffer from {new_buffer_path}') replay_buffer, replay_buffer_observer = replay_manager.load_replay_buffer() logger.info( - 'Replay buffer size after loading starter buffer: %d frames', - replay_manager.num_frames(), + f'Replay buffer size after loading: {replay_manager.num_frames()} frames' ) # Create dataset for sampling from the buffer @@ -172,7 +243,7 @@ def train_agent( # Create print observer for collection print_observer = PrintStatusObserver( - status_interval_steps=1, # Print status every 100 steps + status_interval_steps=1, # Print status every step environment=train_tf_env, replay_buffer=replay_buffer, ) @@ -234,23 +305,21 @@ def train_agent( ) # Main training loop - logger.info('Starting training for %d iterations', train_iterations) + logger.info(f'Starting training for {train_iterations} iterations') # Reset metrics for m in train_metrics: m.reset() # Main training loop - for i in range(train_iterations): + for i in tqdm(range(train_iterations)): # Get current training step value before operations current_step = train_step.numpy() - logger.exception( - 'Starting training loop iteration %d (step %d)', i, current_step - ) + logger.info(f'Starting training loop iteration {i} (step {current_step})') # Evaluate periodically if i % eval_interval == 0: - logger.info('Evaluating at iteration %d (step %d)', i, current_step) + logger.info(f'Evaluating at iteration {i} (step {current_step})') eval_actor.run() # Write eval summaries with the current global step @@ -261,9 +330,8 @@ def train_agent( # Collect experience logger.info( - 'Starting collection for loop iteration %d (step %d)', i, current_step + f'Starting collection for loop iteration {i} (step {current_step})' ) - collect_actor.run() # Write collect summaries with the current global step @@ -274,7 +342,7 @@ def train_agent( # Train the agent using the specified learner iterations # This will internally increment the train_step - logger.info('Training agent for loop iteration %d', i) + logger.info(f'Training agent for loop iteration {i}') agent_learner.run(iterations=learner_iterations) # Checkpoint replay buffer periodically based on the new argument @@ -296,19 +364,20 @@ def train_agent( current_step = train_step.numpy() for m in eval_metrics: tf.summary.scalar(m.name, m.result(), step=current_step) - logger.info('Final Eval %s: %s', m.name, m.result()) + logger.info(f'Final Eval {m.name}: {m.result()}') eval_actor.summary_writer.flush() - logger.info('Agent training completed. Saved models in %s', summary_dir) + logger.info(f'Agent training completed. Saved models in {summary_dir}') return agent if __name__ == '__main__': + import argparse parser = argparse.ArgumentParser( description=( - 'Train a reinforcement learning agent ' - 'using a pre-populated replay buffer' + 'Train a reinforcement learning agent using a pre-populated replay' + ' buffer' ) ) parser.add_argument( @@ -321,13 +390,13 @@ def train_agent( '--agent-type', type=str, default='sac', - choices=['sac', 'td3'], + choices=['sac', 'td3', 'ddpg'], help='Type of agent to train (sac or td3)', ) parser.add_argument( '--train-iterations', type=int, - default=100, + default=300, help='Number of training iterations', ) parser.add_argument( @@ -341,7 +410,8 @@ def train_agent( type=int, default=256, help=( - 'Batch size for training (each gradient update uses this many' + 'Batch size for training (each gradient update uses ' + ' this many' ' elements from the replay buffer batched)' ), ) @@ -368,7 +438,11 @@ def train_agent( '--experiment-name', type=str, required=True, - help='Name of the experiment. This is used to save TensorBoard summaries', + help=( + 'Name of the experiment. This be used to ' + ' save TensorBoard' + ' summaries' + ), ) parser.add_argument( '--checkpoint-interval', @@ -381,13 +455,40 @@ def train_agent( type=int, default=200, help=( - 'Number of iterations (gradient updates) to run the agent learner per' - ' training loop' + 'Number of iterations (gradient updates) ' + ' to run the agent' + ' learner per training loop' + ), + ) + parser.add_argument( + '--scenario-config-path', + type=str, + default=os.path.join( + ROOT_DIR, + 'smart_control', + 'configs', + 'resources', + 'sb1', + 'sim_config.gin', + ), + help=( + 'Path to the scenario config file. ' + ' Default is' + ' sim_config.gin' ), ) args = parser.parse_args() + # Make it work for both relative and absolute paths + if not os.path.isabs(args.starter_buffer_path): + args.starter_buffer_path = os.path.join(ROOT_DIR, args.starter_buffer_path) + + if not os.path.isabs(args.scenario_config_path): + args.scenario_config_path = os.path.join( + ROOT_DIR, args.scenario_config_path + ) + train_agent( starter_buffer_path=args.starter_buffer_path, experiment_name=args.experiment_name, @@ -400,4 +501,5 @@ def train_agent( log_interval=args.log_interval, checkpoint_interval=args.checkpoint_interval, learner_iterations=args.learner_iterations, + scenario_config_path=args.scenario_config_path, ) diff --git a/smart_control/reinforcement_learning/utils/MultiEpisodeWrapper.py b/smart_control/reinforcement_learning/utils/MultiEpisodeWrapper.py new file mode 100644 index 00000000..6e09772c --- /dev/null +++ b/smart_control/reinforcement_learning/utils/MultiEpisodeWrapper.py @@ -0,0 +1,268 @@ +# -*- coding: utf-8 -*- +""" +Defines a simplified PyEnvironment wrapper that manages multiple environment +configurations, loading only one environment at a time and switching upon reset. +""" + +import collections.abc # Used for type hinting +import logging + +# Import necessary TF-Agents components +from tf_agents.environments import py_environment +from tf_agents.trajectories import time_step as ts + +# Configure logger for this module +logger = logging.getLogger(__name__) + + +class MultiEpisodeWrapper(py_environment.PyEnvironment): + """ + A PyEnvironment wrapper that cycles through environment configurations ('scenarios') + provided as file paths. + + Key characteristics: + - Takes a list of configuration file paths. + - Takes a function (`create_env_fn`) that can create an environment instance + from a configuration path. + - Only *one* underlying environment instance exists in memory at a time ('lazy' loading). + - When an episode ends and `reset()` is called, it closes the current + environment (if applicable), loads the *next* environment in a round-robin + fashion using the next config path, and resets it. + - Assumes all environments created from the different configs share the same + action and observation specifications. The specs are determined from the + first environment loaded. + """ + + def __init__( + self, + scenario_config_paths: collections.abc.Sequence[str], + create_env_fn: collections.abc.Callable, + ): + """ + Initializes the lazy multi-scenario environment. + + Args: + scenario_config_paths: A non-empty sequence (list, tuple) of string + paths pointing to environment configuration files. + create_env_fn: A callable function that takes a single argument (a config path + from `scenario_config_paths`) and returns a fully constructed + `py_environment.PyEnvironment` instance. + + Raises: + ValueError: If scenario_config_paths is empty. + TypeError: If create_env_fn is not callable. + Exception: If the first environment cannot be created or reset. + """ + if not scenario_config_paths: + raise ValueError("At least one scenario config path must be provided.") + if not callable(create_env_fn): + raise TypeError("`create_env_fn` must be a callable function.") + + logger.info( + "Initializing LazyMultiScenarioPyEnvironment with" + f" {len(scenario_config_paths)} config paths." + ) + + self._scenario_config_paths = list(scenario_config_paths) # Store a copy + self._num_paths = len(self._scenario_config_paths) + self._create_env_fn = create_env_fn + + self._current_env_index = -1 # Start at -1 so the first load gets index 0 + self._current_env: py_environment.PyEnvironment | None = None + self._state: ts.TimeStep | None = None + + # --- Load the first environment to determine specs --- + try: + self._load_and_reset_env() # Loads env at index 0 + # Specs are determined from the first loaded environment + self._action_spec = self._current_env.action_spec() + self._observation_spec = self._current_env.observation_spec() + self._time_step_spec = self._current_env.time_step_spec() + logger.info( + "Successfully loaded initial environment and determined specs." + ) + except Exception as e: + logger.exception( + "Failed to load or reset the initial environment " + f"(path: {self._scenario_config_paths[0]})." + ) + raise RuntimeError("Could not initialize the first environment.") from e + + # Call the PyEnvironment base class initializer *after* specs are defined. + super().__init__() + + def _load_and_reset_env(self): + """Loads and resets the next environment in the sequence.""" + # Determine index of the next environment config path (round-robin) + self._current_env_index = (self._current_env_index + 1) % self._num_paths + config_path = self._scenario_config_paths[self._current_env_index] + + logger.info( + f"Loading environment from config: {config_path} (index" + f" {self._current_env_index})" + ) + + try: + # Create the new environment instance + self._current_env = self._create_env_fn(config_path) + if not isinstance(self._current_env, py_environment.PyEnvironment): + raise TypeError( + "create_env_fn did not return a PyEnvironment instance for path:" + f" {config_path}" + ) + + # Reset the newly loaded environment + self._state = self._current_env.reset() + logger.debug( + "Successfully loaded and reset environment index" + f" {self._current_env_index}" + ) + + except Exception as e: + logger.exception( + f"Failed to load or reset environment from config path: {config_path}" + ) + # Propagate the error to indicate failure + raise RuntimeError( + f"Failed to load/reset environment from {config_path}" + ) from e + + @property + def current_environment(self) -> py_environment.PyEnvironment | None: + """Returns the currently active underlying environment instance, if loaded.""" + # Added check for None in case called after close() or before init finishes + return self._current_env + + @property + def current_config_path(self) -> str | None: + """Returns the config path of the currently active environment.""" + if ( + self._current_env_index >= 0 + and self._current_env_index < self._num_paths + ): + return self._scenario_config_paths[self._current_env_index] + return None + + @property + def _num_timesteps_in_episode(self): + """Returns the number of timesteps in the current episode.""" + if self._current_env is not None: + return self._current_env._num_timesteps_in_episode + return None + + @property + def _end_timestamp(self): + """Returns the end timestamp of the current episode.""" + if self._current_env is not None: + return self._current_env._end_timestamp + return None + + @property + def current_simulation_timestamp(self): + """Returns the current simulation timestamp of the current episode.""" + if self._current_env is not None: + return self._current_env.current_simulation_timestamp + return None + + @property + def _step_count(self): + """Returns the step count of the current episode.""" + if self._current_env is not None: + return self._current_env._step_count + return None + + # --- PyEnvironment API Implementation --- + + def observation_spec(self): + """Returns the observation spec (determined from the first environment).""" + return self._observation_spec + + def action_spec(self): + """Returns the action spec (determined from the first environment).""" + return self._action_spec + + def time_step_spec(self): + """Returns the time step spec (determined from the first environment).""" + return self._time_step_spec + + def _reset(self) -> ts.TimeStep: + """Closes the current environment, loads the next one, and resets it.""" + logger.debug( + "Reset called. Closing current environment (index" + f" {self._current_env_index})..." + ) + # Close the previous environment, if it exists + if self._current_env is not None: + try: + self._current_env.close() + logger.debug("Previous environment closed.") + except Exception as e: + # Log error but continue, as we need to load the next one + logger.error( + "Error closing environment from path " + f"'{self.current_config_path}': {e}" + ) + finally: + self._current_env = None # Ensure it's marked as closed/gone + + # Load and reset the next environment in the sequence + self._load_and_reset_env() + + # Return the initial state of the new environment + return self._state + + def _step(self, action) -> ts.TimeStep: + """Takes a step in the *currently loaded* underlying environment.""" + if self._current_env is None: + # This should ideally not happen if used correctly within an RL loop + raise RuntimeError( + "Step called but no environment is currently loaded. Was reset()" + " called?" + ) + + # Delegate the step call to the currently loaded environment. + self._state = self._current_env.step(action) + + # If the episode ended, the next call should be reset(), which handles the switch. + if self._state.is_last(): + logger.debug( + f"Episode ended in environment index: {self._current_env_index}. " + "Next reset call will switch environment." + ) + + return self._state + + def close(self): + """Closes the currently loaded environment, if any.""" + logger.info("Close called on LazyMultiScenarioPyEnvironment.") + if self._current_env is not None: + try: + logger.info( + "Closing currently active environment (index" + f" {self._current_env_index}, path: {self.current_config_path})" + ) + self._current_env.close() + except Exception as e: + logger.error( + "Error closing environment from path " + f"'{self.current_config_path}': {e}" + ) + finally: + self._current_env = None # Mark as closed + self._current_env_index = -1 # Reset index state + else: + logger.info("No environment currently loaded, nothing to close.") + + def render(self, mode="rgb_array"): + """Renders the *currently loaded* underlying environment.""" + if self._current_env is None: + logger.warning("Render called but no environment is loaded.") + return None # Or raise an error + + try: + return self.current_environment.render(mode) + except Exception as e: + logger.error( + f"Failed to render environment index {self._current_env_index}: {e}" + ) + return None # Example: return None if rendering fails diff --git a/smart_control/reinforcement_learning/utils/config.py b/smart_control/reinforcement_learning/utils/config.py index 070aa697..87f95e17 100644 --- a/smart_control/reinforcement_learning/utils/config.py +++ b/smart_control/reinforcement_learning/utils/config.py @@ -33,12 +33,37 @@ # Relative filepaths. Consider moving to reinforcement_learning/constants.py # fmt: off # pylint: disable=line-too-long -DATA_PATH = os.path.join(ROOT_DIR, "smart_control", "configs", "resources", "sb1") -CONFIG_PATH = os.path.join(ROOT_DIR, "smart_control", "configs", "resources", "sb1", "train_sim_configs") -METRICS_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "experiment_results", "metrics") -RENDERS_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "experiment_results", "renders") -OUTPUT_DATA_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "data", "starter_buffers") -EXPERIMENT_RESULTS_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "experiment_results") +DATA_PATH = os.path.join( + ROOT_DIR, "smart_control", "configs", "resources", "sb1" +) +CONFIG_PATH = os.path.join( + ROOT_DIR, + "smart_control", + "configs", + "resources", + "sb1", + "train_sim_configs", +) +METRICS_PATH = os.path.join( + ROOT_DIR, + "smart_control", + "reinforcement_learning", + "experiment_results", + "metrics", +) +RENDERS_PATH = os.path.join( + ROOT_DIR, + "smart_control", + "reinforcement_learning", + "experiment_results", + "renders", +) +REPLAY_BUFFER_DATA_PATH = os.path.join( + ROOT_DIR, "smart_control", "reinforcement_learning", "replay_buffer_data" +) +EXPERIMENT_RESULTS_PATH = os.path.join( + ROOT_DIR, "smart_control", "reinforcement_learning", "experiment_results" +) # pylint: enable=line-too-long # fmt: on @@ -107,14 +132,35 @@ def get_histogram_reducer() -> Any: # fmt: off # pylint: disable=bad-continuation histogram_parameters_tuples = ( - ("zone_air_temperature_sensor", ( - 285.0, 286.0, 287.0, 288.0, 289.0, 290.0, 291.0, 292.0, 293.0, - 294.0, 295.0, 296.0, 297.0, 298.0, 299.0, 300.0, 301.0, 302.0, 303.0, - )), + ( + "zone_air_temperature_sensor", + ( + 285.0, + 286.0, + 287.0, + 288.0, + 289.0, + 290.0, + 291.0, + 292.0, + 293.0, + 294.0, + 295.0, + 296.0, + 297.0, + 298.0, + 299.0, + 300.0, + 301.0, + 302.0, + 303.0, + ), + ), ("supply_air_damper_percentage_command", (0.0, 0.2, 0.4, 0.6, 0.8, 1.0)), - ("supply_air_flowrate_setpoint", ( - 0.0, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.9 - )), + ( + "supply_air_flowrate_setpoint", + (0.0, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.9), + ), ) # pylint: enable=bad-continuation # fmt: on diff --git a/smart_control/reinforcement_learning/visualization/__init__.py b/smart_control/reinforcement_learning/visualization/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/smart_control/reinforcement_learning/visualization/trajectory_plotter.py b/smart_control/reinforcement_learning/visualization/trajectory_plotter.py new file mode 100644 index 00000000..42938ee3 --- /dev/null +++ b/smart_control/reinforcement_learning/visualization/trajectory_plotter.py @@ -0,0 +1,148 @@ +# smart_control/reinforcement_learning/visualization/trajectory_plotter.py + +import logging +import os +from typing import Any, Dict, List + +from matplotlib.figure import Figure +import matplotlib.pyplot as plt +import numpy as np + +logger = logging.getLogger(__name__) + + +class TrajectoryPlotter: + """ + Utility class for generating plots from trajectory data. + """ + + @staticmethod + def plot_actions( + actions: List[List[float]], + save_path: str, + timestamps: List[str] = None, + title: str = 'Actions Over Time', + ) -> None: + """ + Generate a plot showing action values over time. + + Args: + actions: List of action values, where each action is a list of values + save_path: Path to save the generated plot + timestamps: Optional list of timestamp strings for x-axis + title: Title for the plot + """ + actions_array = np.array(actions) + fig, ax = plt.subplots(figsize=(10, 6)) + + x_values = ( + range(len(actions)) if timestamps is None else range(len(timestamps)) + ) + action_dim = actions_array.shape[1] if len(actions_array.shape) > 1 else 1 + + if action_dim == 1: + ax.plot(x_values, actions_array, label='Action') + else: + for i in range(action_dim): + ax.plot(x_values, actions_array[:, i], label=f'Action {i+1}') + + ax.set_xlabel('Time Step' if timestamps is None else 'Timestamp') + ax.set_ylabel('Action Value') + ax.set_title(title) + ax.grid(True) + ax.legend() + + # Set x-ticks to timestamps if provided + if timestamps is not None and len(timestamps) <= 20: + # If too many timestamps, show a subset to avoid crowding + plt.xticks(x_values, timestamps, rotation=45) + + plt.tight_layout() + plt.savefig(save_path) + plt.close(fig) + logger.info(f'Saved action plot to {save_path}') + + @staticmethod + def plot_rewards( + rewards: List[float], + save_path: str, + timestamps: List[str] = None, + title: str = 'Rewards Over Time', + ) -> None: + """ + Generate a plot showing rewards at each time step. + + Args: + rewards: List of reward values + save_path: Path to save the generated plot + timestamps: Optional list of timestamp strings for x-axis + title: Title for the plot + """ + fig, ax = plt.subplots(figsize=(10, 6)) + + x_values = ( + range(len(rewards)) if timestamps is None else range(len(timestamps)) + ) + ax.plot( + x_values, + rewards, + label='Reward', + marker='o', + linestyle='-', + markersize=4, + ) + + ax.set_xlabel('Time Step' if timestamps is None else 'Timestamp') + ax.set_ylabel('Reward') + ax.set_title(title) + ax.grid(True) + + # Set x-ticks to timestamps if provided + if timestamps is not None and len(timestamps) <= 20: + plt.xticks(x_values, timestamps, rotation=45) + + plt.tight_layout() + plt.savefig(save_path) + plt.close(fig) + logger.info(f'Saved reward plot to {save_path}') + + @staticmethod + def plot_cumulative_reward( + rewards: List[float], + save_path: str, + timestamps: List[str] = None, + title: str = 'Cumulative Reward Over Time', + ) -> None: + """ + Generate a plot showing the evolution of cumulative reward over time. + + Args: + rewards: List of reward values + save_path: Path to save the generated plot + timestamps: Optional list of timestamp strings for x-axis + title: Title for the plot + """ + cumulative_rewards = np.cumsum(rewards) + + fig, ax = plt.subplots(figsize=(10, 6)) + + x_values = ( + range(len(rewards)) if timestamps is None else range(len(timestamps)) + ) + ax.plot( + x_values, cumulative_rewards, label='Cumulative Reward', color='green' + ) + + ax.set_xlabel('Time Step' if timestamps is None else 'Timestamp') + ax.set_ylabel('Cumulative Reward') + ax.set_title(title) + ax.grid(True) + + # Set x-ticks to timestamps if provided + if timestamps is not None and len(timestamps) <= 20: + plt.xticks(x_values, timestamps, rotation=45) + + plt.tight_layout() + plt.savefig(save_path) + plt.close(fig) + logger.info(f'Saved cumulative reward plot to {save_path}') diff --git a/smart_control/simulator/constants.py b/smart_control/simulator/constants.py index 365b29be..b49ab3f8 100644 --- a/smart_control/simulator/constants.py +++ b/smart_control/simulator/constants.py @@ -11,8 +11,12 @@ # Path to save videos generated by the simulation's visual logger. # fmt: off # pylint: disable=line-too-long -DEFAULT_SIM_VIDEOS_DIRPATH = os.path.join(ROOT_DIR, "smart_control", "simulator", "videos") -SIM_VIDEOS_DIRPATH = os.getenv("SIM_VIDEOS_DIRPATH", default=DEFAULT_SIM_VIDEOS_DIRPATH) +DEFAULT_SIM_VIDEOS_DIRPATH = os.path.join( + ROOT_DIR, "smart_control", "simulator", "videos" +) +SIM_VIDEOS_DIRPATH = os.getenv( + "SIM_VIDEOS_DIRPATH", default=DEFAULT_SIM_VIDEOS_DIRPATH +) # pylint: enable=line-too-long # fmt: on diff --git a/smart_control/utils/constants.py b/smart_control/utils/constants.py index eaf20457..f0b89408 100644 --- a/smart_control/utils/constants.py +++ b/smart_control/utils/constants.py @@ -21,6 +21,7 @@ W_PER_KW: float = 1000.0 # Number of Watts in a kW. WATTS_PER_BTU_HR: float = 0.29307107 # Number of Watts in a BTU/hr HZ_PERCENT: float = 100.0 / 60.0 # Converts blower/pump Hz to Percentage Power +KELVIN_TO_CELSIUS = 273.15 # https://www.rapidtables.com/convert/power/hp-to-watt.html WATTS_PER_HORSEPOWER = 746.0 From e35953e979a3f27c35e211822c899d21df2c2899 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Thu, 12 Jun 2025 15:27:46 -0400 Subject: [PATCH 02/34] Update pyproject.toml --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 37268d9a..202f1d0d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -92,7 +92,6 @@ single_line_exclusions = ['typing'] known_first_party = ["smart_control"] skip_glob = ['smart_control/proto/*'] - [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" From 385d7eec46a62d1e2ed902eada752b607c8a703f Mon Sep 17 00:00:00 2001 From: Gabriel Guerra Trigo Date: Thu, 12 Jun 2025 18:54:42 -0400 Subject: [PATCH 03/34] fix: fix linting errors of previous commit --- .github/ISSUE_TEMPLATE.md | 8 +- .github/PULL_REQUEST_TEMPLATE.md | 4 +- smart_control/environment/environment.py | 1 - smart_control/environment/environment_test.py | 2 +- .../agents/ddpg_agent.py | 28 ++- .../agents/networks/ddpg_networks.py | 3 +- .../agents/networks/sac_networks.py | 3 +- .../observers/trajectory_recorder_observer.py | 11 +- .../policies/extracted_policy.py | 228 ++++++++++++++++++ .../policies/saved_model_policy.py | 2 + .../reinforcement_learning/scripts/eval.py | 34 +-- .../scripts/generate_gin_config_files.py | 31 ++- .../scripts/populate_starter_buffer.py | 6 +- .../reinforcement_learning/scripts/train.py | 82 ++++--- ...odeWrapper.py => multi_episode_wrapper.py} | 86 ++++--- .../visualization/trajectory_plotter.py | 15 +- 16 files changed, 412 insertions(+), 132 deletions(-) create mode 100644 smart_control/reinforcement_learning/policies/extracted_policy.py rename smart_control/reinforcement_learning/utils/{MultiEpisodeWrapper.py => multi_episode_wrapper.py} (78%) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 3c52212f..1dc40c64 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,16 +1,14 @@ ## Expected Behavior - ## Actual Behavior - ## Steps to Reproduce the Problem 1. -1. -1. +2. +3. ## Specifications - Version: -- Platform: \ No newline at end of file +- Platform: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 00550b6b..d86bf2a5 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,6 +1,6 @@ -Fixes # +Fixes #\ > It's a good idea to open an issue first for discussion. - [ ] Tests pass -- [ ] Appropriate changes to documentation are included in the PR \ No newline at end of file +- [ ] Appropriate changes to documentation are included in the PR diff --git a/smart_control/environment/environment.py b/smart_control/environment/environment.py index de98252d..0738a7e8 100644 --- a/smart_control/environment/environment.py +++ b/smart_control/environment/environment.py @@ -360,7 +360,6 @@ def __init__( image_generator: ( building_image_generator.BuildingImageGenerator | None ) = None, - step_interval: pd.Timedelta = pd.Timedelta(5, unit="minutes"), writer_factory: writer_lib.BaseWriterFactory | None = None, ) -> None: """Environment constructor. diff --git a/smart_control/environment/environment_test.py b/smart_control/environment/environment_test.py index fc9bca02..648bcbfe 100644 --- a/smart_control/environment/environment_test.py +++ b/smart_control/environment/environment_test.py @@ -705,7 +705,7 @@ def test_step(self): (pd.Timedelta(1, unit="minute")), (pd.Timedelta(1, unit="hour")), ) - def test_validate_environment(self, step_interval): + def test_validate_environment(self): class TerminatingEnv(environment.Environment): """Environment that terminates after a fixed number of steps. diff --git a/smart_control/reinforcement_learning/agents/ddpg_agent.py b/smart_control/reinforcement_learning/agents/ddpg_agent.py index af370cd0..3c0146a7 100644 --- a/smart_control/reinforcement_learning/agents/ddpg_agent.py +++ b/smart_control/reinforcement_learning/agents/ddpg_agent.py @@ -1,6 +1,7 @@ """DDPG Agent implementation. -This module provides a function to create a DDPG agent with customizable parameters. +This module provides a function to create a DDPG agent with customizable +parameters. """ from typing import Optional, Sequence @@ -49,18 +50,19 @@ def create_ddpg_agent( action_spec: A nest of BoundedTensorSpec representing the actions. - actor_fc_layers: Iterable of fully connected layer units for the actor network. + actor_fc_layers: Iterable of fully connected layer units for the actor + network. actor_network: Optional custom actor network to use. - critic_obs_fc_layers: Iterable of fully connected layer units for the critic - observation network. + critic_obs_fc_layers: Iterable of fully connected layer units for the + critic observation network. - critic_action_fc_layers: Iterable of fully connected layer units for the critic - action network. + critic_action_fc_layers: Iterable of fully connected layer units for the + critic action network. - critic_joint_fc_layers: Iterable of fully connected layer units for the joint - part of the critic network. + critic_joint_fc_layers: Iterable of fully connected layer units for the + joint part of the critic network. critic_network: Optional custom critic network to use. @@ -68,8 +70,8 @@ def create_ddpg_agent( critic_learning_rate: Critic network learning rate. - ou_stddev: Standard deviation for the Ornstein-Uhlenbeck (OU) noise added for - exploration. + ou_stddev: Standard deviation for the Ornstein-Uhlenbeck (OU) noise added + for exploration. ou_damping: Damping factor for the OU noise. @@ -111,7 +113,7 @@ def create_ddpg_agent( ) # Create agent - tf_agent = ddpg_agent.DdpgAgent( + ddpg_tf_agent = ddpg_agent.DdpgAgent( time_step_spec=time_step_spec, action_spec=action_spec, actor_network=actor_network, @@ -136,6 +138,6 @@ def create_ddpg_agent( ) # Initialize the agent - tf_agent.initialize() + ddpg_tf_agent.initialize() - return tf_agent + return ddpg_tf_agent diff --git a/smart_control/reinforcement_learning/agents/networks/ddpg_networks.py b/smart_control/reinforcement_learning/agents/networks/ddpg_networks.py index bfc54ddc..a3d69d50 100644 --- a/smart_control/reinforcement_learning/agents/networks/ddpg_networks.py +++ b/smart_control/reinforcement_learning/agents/networks/ddpg_networks.py @@ -1,6 +1,7 @@ """Network architectures for DDPG agent. -This module provides functions to create actor and critic networks for DDPG agents. +This module provides functions to create actor and critic networks for +DDPG agents. """ import functools diff --git a/smart_control/reinforcement_learning/agents/networks/sac_networks.py b/smart_control/reinforcement_learning/agents/networks/sac_networks.py index 5150500e..e59b2863 100644 --- a/smart_control/reinforcement_learning/agents/networks/sac_networks.py +++ b/smart_control/reinforcement_learning/agents/networks/sac_networks.py @@ -118,7 +118,8 @@ def call(self, inputs, **kwargs): del kwargs['step_type'] del kwargs[ 'network_state' - ] # was getting error saying that this argument was unexpected in the call below + ] # was getting error saying that this argument was unexpected in + # the call below return super(_TanhNormalProjectionNetworkWrapper, self).call( inputs, **kwargs ) diff --git a/smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py b/smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py index 67a1b76e..bc131a71 100644 --- a/smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py +++ b/smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py @@ -1,3 +1,5 @@ +"""Observer that records trajectory data for visualization.""" + # smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py import json @@ -100,12 +102,13 @@ def _save_trajectory(self): episode_file = os.path.join( self._save_dir, f'episode_{self._episode_count}.json' ) - with open(episode_file, 'w') as f: + with open(episode_file, 'w', encoding='utf-8') as f: json.dump(trajectory_data, f, indent=2) logger.info( - f'Saved trajectory data for episode {self._episode_count} to' - f' {episode_file}' + 'Saved trajectory data for episode %d to %s', + self._episode_count, + episode_file, ) def _generate_plots_for_episode(self): @@ -145,7 +148,7 @@ def _generate_plots_for_episode(self): title=f'Episode {episode_num}: Cumulative Reward Over Time', ) - logger.info(f'Generated plots for episode {episode_num}') + logger.info('Generated plots for episode %d', episode_num) def reset(self) -> None: """Reset the observer to its initial state.""" diff --git a/smart_control/reinforcement_learning/policies/extracted_policy.py b/smart_control/reinforcement_learning/policies/extracted_policy.py new file mode 100644 index 00000000..ef24024a --- /dev/null +++ b/smart_control/reinforcement_learning/policies/extracted_policy.py @@ -0,0 +1,228 @@ +"""Module for a TF Policy that aggregates historical actions based on a +timedeltaand then replays the aggregated actions sequentially.""" + +import datetime +import logging +import math +from typing import Any, List, Optional + +import numpy as np +import tensorflow as tf +import tensorflow_probability as tfp +from tf_agents.policies import tf_policy +from tf_agents.specs import BoundedTensorSpec +from tf_agents.specs import tensor_spec +from tf_agents.trajectories import policy_step +from tf_agents.trajectories import time_step as ts +from tf_agents.typing import types + +logging.basicConfig( + level=logging.INFO, + format="[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]", +) +logger = logging.getLogger(__name__) + + +class ExtractedPolicy(tf_policy.TFPolicy): + """ + A TF Policy that aggregates historical actions based on a timedelta + and then replays the aggregated actions sequentially. + + Each aggregated action (average over a bin) is REPEATED in the replay + sequence a number of times equal to the count of original actions + that fell into its corresponding aggregation bin. + + The aggregation timedelta can be changed, triggering re-aggregation. + Ignores TimeStep observation content during action selection. + """ + + def __init__( + self, + original_actions: np.ndarray, + original_parsed_times: List[datetime.datetime], + initial_aggregation_timedelta: datetime.timedelta, + time_step_spec: ts.TimeStep, + action_spec: BoundedTensorSpec, + name: str = "ExtractedPolicy", + ): + """ + Initializes the ExtractedPolicy. + + Args: + original_actions: Numpy array of actions recorded (N, D). Assumed + ordered by time. + original_parsed_times: List of N datetime objects corresponding to + actions. Must be sorted chronologically and + reasonably regular. + initial_aggregation_timedelta: The initial time duration for aggregation + bins. Must be a multiple of the original + data interval. + time_step_spec: A `TimeStep` spec (required by base class). + action_spec: A BoundedTensorSpec representing the actions. + name: The name of this policy. + """ + # number of actions should be equal to number of timestamps + if len(original_actions) != len(original_parsed_times): + raise ValueError( + "original_actions and original_parsed_times must have the same" + " length." + ) + + # there must be at least two actions to determine the interval + if len(original_parsed_times) < 2: + raise ValueError( + "Need at least two original timestamps to determine interval." + ) + + self._original_actions_np = np.array( + original_actions, dtype=action_spec.dtype.as_numpy_dtype + ) + self._original_times = list(original_parsed_times) + self._original_step_delta = ( + self._original_times[1] - self._original_times[0] + ) + if self._original_step_delta <= datetime.timedelta(0): + raise ValueError("Original timestamps must be increasing.") + logger.info( + "Detected original time step interval: %s", self._original_step_delta + ) + + # variable used to store the index of the next action to be returned + policy_state_spec = tensor_spec.TensorSpec( + shape=(), dtype=tf.int32, name="replay_index" + ) + + # store specs + self._action_spec_dtype = action_spec.dtype + self._action_spec_shape = action_spec.shape + self._action_dim = self._original_actions_np.shape[1] + + super(ExtractedPolicy, self).__init__( + time_step_spec=time_step_spec, + action_spec=action_spec, + policy_state_spec=policy_state_spec, + name=name, + ) + + # this tensor will hold the actions to be returned by the policy + fixed_shape = tf.TensorShape([len(original_actions), self._action_dim]) + self._repeated_aggregated_actions_tensor = tf.Variable( + tf.zeros(shape=fixed_shape, dtype=self._action_spec_dtype), + trainable=False, + shape=fixed_shape, + name="repeated_actions", + ) + + # call the setter to perform the initial aggregation + self.aggregation_timedelta = initial_aggregation_timedelta + + def _validate_timedelta(self, value: datetime.timedelta): + if not isinstance(value, datetime.timedelta): + raise TypeError( + "aggregation_timedelta must be a datetime.timedelta object." + ) + + if value <= datetime.timedelta(0): + raise ValueError("aggregation_timedelta must be positive.") + + # timedelta to aggregate must be a multiple of the original step interval + ratio = value.total_seconds() / self._original_step_delta.total_seconds() + if not math.isclose(ratio, round(ratio), abs_tol=1e-9): + raise ValueError( + f"aggregation_timedelta ({value}) must be a multiple of the original" + f" step interval ({self._original_step_delta}). Ratio is {ratio}." + ) + + def _update_aggregation(self): + logger.info( + "Re-aggregating actions with timedelta: %s", self._aggregation_timedelta + ) + repeated_aggregated_actions_list = [] + num_original_actions = len(self._original_actions_np) + ratio = int( + round( + self._aggregation_timedelta.total_seconds() + / self._original_step_delta.total_seconds() + ) + ) + + for i in range(0, num_original_actions, ratio): + start_idx = i + end_idx = min(start_idx + ratio, num_original_actions) + actions_in_bin = self._original_actions_np[start_idx:end_idx] + + average_action = np.mean(actions_in_bin, axis=0) + repetitions = actions_in_bin.shape[0] + repeated_aggregated_actions_list.extend([average_action] * repetitions) + + logger.info( + "Aggregated %d actions from %d original actions.", + len(repeated_aggregated_actions_list), + num_original_actions, + ) + + if not repeated_aggregated_actions_list: + logger.error( + "No actions were aggregated. The replay sequence will be empty." + ) + raise ValueError( + "No actions were aggregated. Please check the input data and" + " timedelta." + ) + + np_actions = np.array(repeated_aggregated_actions_list) + logger.info( + "Aggregation resulted in %d repeated replay actions.", + len(repeated_aggregated_actions_list), + ) + self._repeated_aggregated_actions_tensor.assign(np_actions) + + @property + def aggregation_timedelta(self) -> datetime.timedelta: + return self._aggregation_timedelta + + @aggregation_timedelta.setter + def aggregation_timedelta(self, value: datetime.timedelta): + self._validate_timedelta(value) + self._aggregation_timedelta = value + self._update_aggregation() + + def _get_initial_state( + self, batch_size: Optional[int] = None + ) -> types.NestedTensor: + state_shape = [] + if batch_size is not None: + state_shape = [batch_size] + return tf.zeros(shape=state_shape, dtype=tf.int32) + + @tf.function + def _action( + self, + time_step: ts.TimeStep, + policy_state: types.NestedTensor, + seed: Any = None, + ): + current_index = policy_state + safe_index = current_index + action = tf.gather( + self._repeated_aggregated_actions_tensor, safe_index, axis=0 + ) + next_index = ( + current_index + 1 + ) % self._repeated_aggregated_actions_tensor.shape[0] + + return policy_step.PolicyStep(action=action, state=next_index, info=()) + + @tf.function + def _distribution( + self, time_step: ts.TimeStep, policy_state: types.NestedTensor + ): + action_step = self._action(time_step, policy_state) + action_distribution = tf.nest.map_structure( + lambda act: tfp.distributions.Deterministic(loc=act), action_step.action + ) + return policy_step.PolicyStep( + action=action_distribution, + state=action_step.state, + info=action_step.info, + ) diff --git a/smart_control/reinforcement_learning/policies/saved_model_policy.py b/smart_control/reinforcement_learning/policies/saved_model_policy.py index 662568c4..6d9d55e4 100644 --- a/smart_control/reinforcement_learning/policies/saved_model_policy.py +++ b/smart_control/reinforcement_learning/policies/saved_model_policy.py @@ -1,3 +1,5 @@ +"""Model to wrap a policy that uses a saved TF-Agents policy model.""" + import tensorflow as tf import tensorflow_probability as tfp from tf_agents.policies import tf_policy diff --git a/smart_control/reinforcement_learning/scripts/eval.py b/smart_control/reinforcement_learning/scripts/eval.py index be052030..bd589ca4 100644 --- a/smart_control/reinforcement_learning/scripts/eval.py +++ b/smart_control/reinforcement_learning/scripts/eval.py @@ -90,11 +90,11 @@ def create_merged_saved_model(policy_dir): logger.warning("No checkpoints found, using original model structure only") return model_structure_dir - logger.info(f"Found latest checkpoint at: {latest_checkpoint}") + logger.info("Found latest checkpoint at: %s", latest_checkpoint) # Create temporary directory for merged model temp_dir = tempfile.mkdtemp(prefix="merged_policy_") - logger.info(f"Created temporary directory for merged model: {temp_dir}") + logger.info("Created temporary directory for merged model: %s", temp_dir) # Copy model structure files (everything except 'variables' directory) for item in os.listdir(model_structure_dir): @@ -117,7 +117,7 @@ def create_merged_saved_model(policy_dir): dest = os.path.join(variables_dir, item) shutil.copy2(source, dest) - logger.info(f"Successfully created merged model at {temp_dir}") + logger.info("Successfully created merged model at %s", temp_dir) return temp_dir @@ -148,13 +148,15 @@ def evaluate_policy( results_dir = os.path.join( eval_results_path, f"{experiment_name}_{current_time}" ) - logger.info(f"Evaluation results will be saved to {results_dir}") + logger.info("Evaluation results will be saved to %s", results_dir) try: os.makedirs(results_dir, exist_ok=False) - except FileExistsError: - logger.exception(f"Directory {results_dir} already exists. Exiting.") - raise FileExistsError(f"Directory {results_dir} already exists. Exiting.") + except FileExistsError as exc: + logger.exception("Directory %s already exists. Exiting.", results_dir) + raise FileExistsError( + f"Directory {results_dir} already exists. Exiting." + ) from exc # Create metrics directory metrics_dir = os.path.join(results_dir, "metrics") @@ -179,11 +181,12 @@ def evaluate_policy( logger.info("Using schedule policy") policy = create_baseline_schedule_policy(eval_tf_env) else: - # Create a merged saved model with structure from policy dir and variables from latest checkpoint + # Create a merged saved model with structure from policy dir and variables + # from latest checkpoint temp_dir = create_merged_saved_model(policy_dir) # Use SavedModelPolicy for saved model - logger.info(f"Loading saved model from {temp_dir}") + logger.info("Loading saved model from %s", temp_dir) policy = SavedModelPolicy( temp_dir, eval_tf_env.time_step_spec(), eval_tf_env.action_spec() ) @@ -235,23 +238,23 @@ def evaluate_policy( ) # Run evaluation - logger.info(f"Starting evaluation for {num_eval_episodes} episodes") + logger.info("Starting evaluation for %d episodes", num_eval_episodes) eval_actor.run() # Write evaluation summaries with eval_actor.summary_writer.as_default(): for m in eval_metrics: tf.summary.scalar(m.name, m.result(), step=eval_step.numpy()) - logger.info(f"Eval {m.name}: {m.result()}") + logger.info("Eval %s: %s", m.name, m.result()) eval_actor.summary_writer.flush() - logger.info(f"Evaluation completed. Saved results in {results_dir}") + logger.info("Evaluation completed. Saved results in %s", results_dir) return finally: # Clean up temporary directory if created if temp_dir and os.path.exists(temp_dir): - logger.info(f"Cleaning up temporary directory: {temp_dir}") + logger.info("Cleaning up temporary directory: %s", temp_dir) shutil.rmtree(temp_dir) @@ -300,15 +303,16 @@ def evaluate_policy( args = parser.parse_args() # Make it work for both relative and absolute paths + gin_config_path_ = args.gin_config if not os.path.isabs(args.gin_config): - gin_config_path = os.path.join(ROOT_DIR, args.gin_config) + gin_config_path_ = os.path.join(ROOT_DIR, args.gin_config) if not os.path.isabs(args.policy_dir) and args.policy_dir != "schedule": args.policy_dir = os.path.join(ROOT_DIR, args.policy_dir) evaluate_policy( policy_dir=args.policy_dir, - gin_config_path=gin_config_path, + gin_config_path=gin_config_path_, experiment_name=args.experiment_name, num_eval_episodes=args.num_eval_episodes, ) diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py b/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py index 7f1bcd7d..5b388d80 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py @@ -2,15 +2,15 @@ """ Grid Configuration Generator for Gin Config Files -This script generates multiple variations of a gin config file by creating a grid -of different values for specified parameters. +This script generates multiple variations of a gin config file by creating a +grid of different values for specified parameters. """ import argparse +from itertools import product import logging import os import re -from itertools import product from smart_control.reinforcement_learning.utils.config import CONFIG_PATH from smart_control.utils.constants import ROOT_DIR @@ -25,7 +25,7 @@ def read_config_file(filepath): """Read the base configuration file.""" - with open(filepath, 'r') as f: + with open(filepath, 'r', encoding='utf-8') as f: return f.read() @@ -45,9 +45,15 @@ def modify_config(config_content, param_name, param_value): # - Or a sequence that doesn't start with @ and doesn't contain () # 5. Capture the end of line - pattern = rf'(^|\n)(.*?)({re.escape(param_name)}\s*=\s*)((?:[\'\"].*?[\'\"])|(?:[^@\n][^()\n]*))($|\n)' + pattern = ( + rf'(^|\n)' + rf'(.*?)' + rf'({re.escape(param_name)}\s*=)' + rf'((?:[\'\"].*?[\'\"])|(?:[^@\n][^()\n]*))' + rf'($|\n)' + ) # Format replacement to preserve surrounding context - replacement = r'\g<1>\g<2>\g<3>{}\g<5>'.format(param_value) + replacement = rf'\g<1>\g<2>\g<3>{param_value}\g<5>' modified_content = re.sub( pattern, replacement, config_content, flags=re.MULTILINE @@ -55,7 +61,7 @@ def modify_config(config_content, param_name, param_value): if modified_content == config_content: logger.warning( - f"Warning: Parameter '{param_name}' not found in config file." + "Warning: Parameter '%s' not found in config file.", param_name ) return modified_content @@ -105,10 +111,10 @@ def generate_configs(base_config_path, output_dir, param_grids): output_path = os.path.join(output_dir, output_filename) # Write the modified config to a new file - with open(output_path, 'w') as f: + with open(output_path, 'w', encoding='utf-8') as f: f.write(modified_config) - logger.info(f'Generated: {output_path}') + logger.info('Generated: %s', output_path) def main(): @@ -167,7 +173,7 @@ def main(): for timestamp in args.start_timestamps.split(',') ] - logger.info(start_timestamps) + logger.info('Start timestamps: %s', start_timestamps) # Define the parameter grid param_grid = { @@ -180,8 +186,9 @@ def main(): generate_configs(args.base_config, args.output_dir, param_grid) logger.info( - f'Generated {len(time_steps) * len(num_days)} configuration files in' - f' {args.output_dir}' + 'Generated %d configuration files in %s', + len(time_steps) * len(num_days), + args.output_dir, ) diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py index 61d284bb..67642310 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py @@ -198,12 +198,12 @@ def populate_replay_buffer( ROOT_DIR, args.env_gin_config_file_path ) - buffer_path = args.buffer_name + buffer_path_ = args.buffer_name if not os.path.isabs(args.buffer_name): - buffer_path = os.path.join(REPLAY_BUFFER_DATA_PATH, args.buffer_name) + buffer_path_ = os.path.join(REPLAY_BUFFER_DATA_PATH, args.buffer_name) populate_replay_buffer( - buffer_path=buffer_path, + buffer_path=buffer_path_, buffer_capacity=args.capacity, steps_per_run=args.steps_per_run, num_runs=args.num_runs, diff --git a/smart_control/reinforcement_learning/scripts/train.py b/smart_control/reinforcement_learning/scripts/train.py index ec929e86..165fb8e7 100644 --- a/smart_control/reinforcement_learning/scripts/train.py +++ b/smart_control/reinforcement_learning/scripts/train.py @@ -1,16 +1,17 @@ """ -Script to train a reinforcement learning agent using a pre-populated replay buffer. -This script sets up the training process with separate collection and evaluation components. +Script to train a reinforcement learning agent using a pre-populated replay +buffer. + +This script sets up the training process with separate collection and evaluation +components. """ from datetime import datetime import json +import logging import os import shutil -os.environ['WRAPT_DISABLE_EXTENSIONS'] = 'true' -import logging - import tensorflow as tf from tf_agents.environments import tf_py_environment from tf_agents.metrics import tf_metrics @@ -32,6 +33,8 @@ from smart_control.reinforcement_learning.utils.config import ROOT_DIR from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment +os.environ['WRAPT_DISABLE_EXTENSIONS'] = 'true' + # Configure logging logging.basicConfig( level=logging.INFO, @@ -55,19 +58,21 @@ def save_experiment_parameters(params, save_path): params['timestamp'] = datetime.now().strftime('%Y_%m_%d-%H:%M:%S') # Save parameters to file - logger.info(f'Saving experiment parameters to {params_file}') - with open(params_file, 'w') as f: + logger.info('Saving experiment parameters to %s', params_file) + with open(params_file, 'w', encoding='utf-8') as f: json.dump(params, f, indent=4) # Also save as a readable text file for quick reference params_txt = os.path.join(save_path, 'experiment_parameters.txt') - with open(params_txt, 'w') as f: + with open(params_txt, 'w', encoding='utf-8') as f: f.write('Experiment Parameters:\n') f.write('=====================\n\n') for key, value in params.items(): f.write(f'{key}: {value}\n') - logger.info(f'Experiment parameters saved to {params_file} and {params_txt}') + logger.info( + 'Experiment parameters saved to %s and %s', params_file, params_txt + ) def train_agent( @@ -92,13 +97,15 @@ def train_agent( experiment_name: Name of the experiment agent_type: Type of agent to train ('sac' or 'td3') train_iterations: Number of training iterations - collect_steps_per_iteration: Number of collection steps per training iteration + collect_steps_per_iteration: Number of collection steps per training + iteration batch_size: Batch size for training log_interval: Interval for logging training metrics eval_interval: Interval for evaluating the agent num_eval_episodes: Number of episodes for evaluation checkpoint_interval: Interval for checkpointing the replay buffer - learner_iterations: Number of iterations to run the agent learner per training loop + learner_iterations: Number of iterations to run the agent learner per + training loop scenario_config_path: Path to the scenario configuration file (optional) """ # Set up scenario config path if not provided @@ -110,13 +117,15 @@ def train_agent( summary_dir = os.path.join( EXPERIMENT_RESULTS_PATH, f'{experiment_name}_{current_time}' ) - logger.info(f'Experiment results will be saved to {summary_dir}') + logger.info('Experiment results will be saved to %s', summary_dir) try: os.makedirs(summary_dir, exist_ok=False) - except FileExistsError: - logger.exception(f'Directory {summary_dir} already exists. Exiting.') - raise FileExistsError(f'Directory {summary_dir} already exists. Exiting.') + except FileExistsError as exc: + logger.exception('Directory %s already exists. Exiting.', summary_dir) + raise FileExistsError( + f'Directory {summary_dir} already exists. Exiting.' + ) from exc # Save experiment parameters experiment_params = { @@ -137,8 +146,8 @@ def train_agent( # Create train and eval environments logger.info( - 'Creating train and eval environments with scenatio config path:' - f' {scenario_config_path}' + 'Creating train and eval environments with scenatio config path: %s', + scenario_config_path, ) train_env = create_and_setup_environment( scenario_config_path, metrics_path=os.path.join(summary_dir, 'metrics') @@ -158,7 +167,7 @@ def train_agent( _, action_spec, time_step_spec = spec_utils.get_tensor_specs(train_tf_env) # Create agent based on type - logger.info(f'Creating {agent_type} agent') + logger.info('Creating %s agent', agent_type) if agent_type.lower() == 'sac': logger.info('Creating SAC agent') agent = create_sac_agent( @@ -170,7 +179,7 @@ def train_agent( time_step_spec=time_step_spec, action_spec=action_spec ) else: - logger.exception(f'Unsupported agent type: {agent_type}') + logger.exception('Unsupported agent type: %s', agent_type) raise ValueError(f'Unsupported agent type: {agent_type}') # Create policies @@ -196,8 +205,9 @@ def train_agent( # Copy the original buffer to the new location logger.info( - f'Creating a copy of replay buffer from {starter_buffer_path} to' - f' {new_buffer_path}' + 'Creating a copy of replay buffer from %s to %s', + starter_buffer_path, + new_buffer_path, ) # First check if starter_buffer_path is a file or directory @@ -214,7 +224,7 @@ def train_agent( else: shutil.copytree(source_item, dest_item) - logger.info(f'Replay buffer copied to {new_buffer_path}') + logger.info('Replay buffer copied to %s', new_buffer_path) # Initialize replay buffer manager with the copied buffer path logger.info('Instantiating replay buffer manager with copied buffer') @@ -225,14 +235,15 @@ def train_agent( sequence_length=2, ) logger.info( - f'Replay buffer size before loading: {replay_manager.num_frames()} frames' + 'Replay buffer size before loading: %d frames', + replay_manager.num_frames(), ) # Load the copied replay buffer - logger.info(f'Loading replay buffer from {new_buffer_path}') + logger.info('Loading replay buffer from %s', new_buffer_path) replay_buffer, replay_buffer_observer = replay_manager.load_replay_buffer() logger.info( - f'Replay buffer size after loading: {replay_manager.num_frames()} frames' + 'Replay buffer size after loading: %d frames', replay_manager.num_frames() ) # Create dataset for sampling from the buffer @@ -305,7 +316,7 @@ def train_agent( ) # Main training loop - logger.info(f'Starting training for {train_iterations} iterations') + logger.info('Starting training for %d iterations', train_iterations) # Reset metrics for m in train_metrics: @@ -315,11 +326,13 @@ def train_agent( for i in tqdm(range(train_iterations)): # Get current training step value before operations current_step = train_step.numpy() - logger.info(f'Starting training loop iteration {i} (step {current_step})') + logger.info( + 'Starting training loop iteration %d (step %d)', i, current_step + ) # Evaluate periodically if i % eval_interval == 0: - logger.info(f'Evaluating at iteration {i} (step {current_step})') + logger.info('Evaluating at iteration %d (step %d)', i, current_step) eval_actor.run() # Write eval summaries with the current global step @@ -330,7 +343,7 @@ def train_agent( # Collect experience logger.info( - f'Starting collection for loop iteration {i} (step {current_step})' + 'Starting collection for loop iteration %d (step %d)', i, current_step ) collect_actor.run() @@ -342,7 +355,7 @@ def train_agent( # Train the agent using the specified learner iterations # This will internally increment the train_step - logger.info(f'Training agent for loop iteration {i}') + logger.info('Training agent for loop iteration %d', i) agent_learner.run(iterations=learner_iterations) # Checkpoint replay buffer periodically based on the new argument @@ -364,10 +377,10 @@ def train_agent( current_step = train_step.numpy() for m in eval_metrics: tf.summary.scalar(m.name, m.result(), step=current_step) - logger.info(f'Final Eval {m.name}: {m.result()}') + logger.info('Final Eval %s: %s', m.name, m.result()) eval_actor.summary_writer.flush() - logger.info(f'Agent training completed. Saved models in {summary_dir}') + logger.info('Agent training completed. Saved models in %s', summary_dir) return agent @@ -502,4 +515,9 @@ def train_agent( checkpoint_interval=args.checkpoint_interval, learner_iterations=args.learner_iterations, scenario_config_path=args.scenario_config_path, + num_eval_episodes=args.num_eval_episodes, + log_interval=args.log_interval, + checkpoint_interval=args.checkpoint_interval, + learner_iterations=args.learner_iterations, + scenario_config_path=args.scenario_config_path, ) diff --git a/smart_control/reinforcement_learning/utils/MultiEpisodeWrapper.py b/smart_control/reinforcement_learning/utils/multi_episode_wrapper.py similarity index 78% rename from smart_control/reinforcement_learning/utils/MultiEpisodeWrapper.py rename to smart_control/reinforcement_learning/utils/multi_episode_wrapper.py index 6e09772c..fc893d8d 100644 --- a/smart_control/reinforcement_learning/utils/MultiEpisodeWrapper.py +++ b/smart_control/reinforcement_learning/utils/multi_episode_wrapper.py @@ -17,14 +17,15 @@ class MultiEpisodeWrapper(py_environment.PyEnvironment): """ - A PyEnvironment wrapper that cycles through environment configurations ('scenarios') - provided as file paths. + A PyEnvironment wrapper that cycles through environment configurations + ('scenarios') provided as file paths. Key characteristics: - Takes a list of configuration file paths. - Takes a function (`create_env_fn`) that can create an environment instance from a configuration path. - - Only *one* underlying environment instance exists in memory at a time ('lazy' loading). + - Only *one* underlying environment instance exists in memory at a time + ('lazy' loading). - When an episode ends and `reset()` is called, it closes the current environment (if applicable), loads the *next* environment in a round-robin fashion using the next config path, and resets it. @@ -43,10 +44,11 @@ def __init__( Args: scenario_config_paths: A non-empty sequence (list, tuple) of string - paths pointing to environment configuration files. - create_env_fn: A callable function that takes a single argument (a config path - from `scenario_config_paths`) and returns a fully constructed - `py_environment.PyEnvironment` instance. + paths pointing to environment configuration files + create_env_fn: A callable function that takes a single argument + (a config path from `scenario_config_paths`) and returns + a fully constructed `py_environment.PyEnvironment` + instance. Raises: ValueError: If scenario_config_paths is empty. @@ -59,8 +61,8 @@ def __init__( raise TypeError("`create_env_fn` must be a callable function.") logger.info( - "Initializing LazyMultiScenarioPyEnvironment with" - f" {len(scenario_config_paths)} config paths." + "Initializing LazyMultiScenarioPyEnvironment with %d config paths.", + len(scenario_config_paths), ) self._scenario_config_paths = list(scenario_config_paths) # Store a copy @@ -83,8 +85,8 @@ def __init__( ) except Exception as e: logger.exception( - "Failed to load or reset the initial environment " - f"(path: {self._scenario_config_paths[0]})." + "Failed to load or reset the initial environment (path: %s).", + self._scenario_config_paths[0], ) raise RuntimeError("Could not initialize the first environment.") from e @@ -98,8 +100,9 @@ def _load_and_reset_env(self): config_path = self._scenario_config_paths[self._current_env_index] logger.info( - f"Loading environment from config: {config_path} (index" - f" {self._current_env_index})" + "Loading environment from config: %s (index %d)", + config_path, + self._current_env_index, ) try: @@ -114,13 +117,14 @@ def _load_and_reset_env(self): # Reset the newly loaded environment self._state = self._current_env.reset() logger.debug( - "Successfully loaded and reset environment index" - f" {self._current_env_index}" + "Successfully loaded and reset environment index %d", + self._current_env_index, ) except Exception as e: logger.exception( - f"Failed to load or reset environment from config path: {config_path}" + "Failed to load or reset environment from config path: %s", + config_path, ) # Propagate the error to indicate failure raise RuntimeError( @@ -129,7 +133,10 @@ def _load_and_reset_env(self): @property def current_environment(self) -> py_environment.PyEnvironment | None: - """Returns the currently active underlying environment instance, if loaded.""" + """ + Returns the currently active underlying environment instance, + if loaded. + """ # Added check for None in case called after close() or before init finishes return self._current_env @@ -147,28 +154,28 @@ def current_config_path(self) -> str | None: def _num_timesteps_in_episode(self): """Returns the number of timesteps in the current episode.""" if self._current_env is not None: - return self._current_env._num_timesteps_in_episode + return self._current_env._num_timesteps_in_episode # pylint: disable=protected-access return None @property def _end_timestamp(self): """Returns the end timestamp of the current episode.""" if self._current_env is not None: - return self._current_env._end_timestamp + return self._current_env._end_timestamp # pylint: disable=protected-access return None @property def current_simulation_timestamp(self): """Returns the current simulation timestamp of the current episode.""" if self._current_env is not None: - return self._current_env.current_simulation_timestamp + return self._current_env.current_simulation_timestamp # pylint: disable=protected-access return None @property def _step_count(self): """Returns the step count of the current episode.""" if self._current_env is not None: - return self._current_env._step_count + return self._current_env._step_count # pylint: disable=protected-access return None # --- PyEnvironment API Implementation --- @@ -188,19 +195,20 @@ def time_step_spec(self): def _reset(self) -> ts.TimeStep: """Closes the current environment, loads the next one, and resets it.""" logger.debug( - "Reset called. Closing current environment (index" - f" {self._current_env_index})..." + "Reset called. Closing current environment (index %d)...", + self._current_env_index, ) # Close the previous environment, if it exists if self._current_env is not None: try: self._current_env.close() logger.debug("Previous environment closed.") - except Exception as e: + except Exception as e: # pylint: disable=broad-exception-caught # Log error but continue, as we need to load the next one logger.error( - "Error closing environment from path " - f"'{self.current_config_path}': {e}" + "Error closing environment from path '%s': %s", + self.current_config_path, + e, ) finally: self._current_env = None # Ensure it's marked as closed/gone @@ -223,11 +231,13 @@ def _step(self, action) -> ts.TimeStep: # Delegate the step call to the currently loaded environment. self._state = self._current_env.step(action) - # If the episode ended, the next call should be reset(), which handles the switch. + # If the episode ended, the next call should be reset(), which handles + # the switch. if self._state.is_last(): logger.debug( - f"Episode ended in environment index: {self._current_env_index}. " - "Next reset call will switch environment." + "Episode ended in environment index: %d. Next reset call will switch" + " environment.", + self._current_env_index, ) return self._state @@ -238,14 +248,16 @@ def close(self): if self._current_env is not None: try: logger.info( - "Closing currently active environment (index" - f" {self._current_env_index}, path: {self.current_config_path})" + "Closing currently active environment (index %d, path: %s)", + self._current_env_index, + self.current_config_path, ) self._current_env.close() - except Exception as e: + except Exception as e: # pylint: disable=broad-exception-caught logger.error( - "Error closing environment from path " - f"'{self.current_config_path}': {e}" + "Error closing environment from path '%s': %s", + self.current_config_path, + e, ) finally: self._current_env = None # Mark as closed @@ -261,8 +273,10 @@ def render(self, mode="rgb_array"): try: return self.current_environment.render(mode) - except Exception as e: + except Exception as e: # pylint: disable=broad-exception-caught logger.error( - f"Failed to render environment index {self._current_env_index}: {e}" + "Failed to render environment index %d: %s", + self._current_env_index, + e, ) return None # Example: return None if rendering fails diff --git a/smart_control/reinforcement_learning/visualization/trajectory_plotter.py b/smart_control/reinforcement_learning/visualization/trajectory_plotter.py index 42938ee3..10025c26 100644 --- a/smart_control/reinforcement_learning/visualization/trajectory_plotter.py +++ b/smart_control/reinforcement_learning/visualization/trajectory_plotter.py @@ -1,10 +1,13 @@ +"""Trajectory Plotter. + +This module provides functions to plot trajectories of rl episodes. +""" + # smart_control/reinforcement_learning/visualization/trajectory_plotter.py import logging -import os -from typing import Any, Dict, List +from typing import List -from matplotlib.figure import Figure import matplotlib.pyplot as plt import numpy as np @@ -60,7 +63,7 @@ def plot_actions( plt.tight_layout() plt.savefig(save_path) plt.close(fig) - logger.info(f'Saved action plot to {save_path}') + logger.info('Saved action plot to %s', save_path) @staticmethod def plot_rewards( @@ -104,7 +107,7 @@ def plot_rewards( plt.tight_layout() plt.savefig(save_path) plt.close(fig) - logger.info(f'Saved reward plot to {save_path}') + logger.info('Saved reward plot to %s', save_path) @staticmethod def plot_cumulative_reward( @@ -145,4 +148,4 @@ def plot_cumulative_reward( plt.tight_layout() plt.savefig(save_path) plt.close(fig) - logger.info(f'Saved cumulative reward plot to {save_path}') + logger.info('Saved cumulative reward plot to %s', save_path) From 02cea626abcdd76ef39e15c56e102c99de04cfbc Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Mon, 23 Jun 2025 21:25:25 +0000 Subject: [PATCH 04/34] Update PR Template --- .github/PULL_REQUEST_TEMPLATE.md | 30 ++++++++++++++++++++++++++---- .pre-commit-config.yaml | 2 +- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index d86bf2a5..93240dd3 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,6 +1,28 @@ -Fixes #\ +## Description -> It's a good idea to open an issue first for discussion. +[Provide a one sentence summary of the changes implemented.] -- [ ] Tests pass -- [ ] Appropriate changes to documentation are included in the PR +[Link to related issues (e.g. "Closes #123", "Resolves #456").] + +## Details + +Details: + +- [Provide additional details, as applicable.] + +- [Provide additional details, as applicable.] + +- [Provide additional details, as applicable.] + +## Checklist + +- [ ] I have read the [Contributor's Guide](https://google.github.io/sbsim/contributing/). +- [ ] I have signed the [Contributor License Agreement](https://cla.developers.google.com/) (first time contributors only). +- [ ] I have set up [pre-commit hooks](https://google.github.io/sbsim/contributing/#pre-commit-hooks) by running `pre-commit install` (one time only), and the pre-commit hooks pass. +- [ ] I have added appropriate [unit tests](https://google.github.io/sbsim/contributing/#testing), and the tests pass. +- [ ] I have added [docstrings](https://google.github.io/sbsim/contributing/#documentation) and updated the documentation as necessary, and I have previewed the [documentation site](https://google.github.io/sbsim/docs-site/) locally to make sure things look good. +- [ ] I have self-reviewed my code (especially important if using AI agents). + +______________________________________________________________________ + +**Thank you for your contribution!** diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 695a9804..1b1f396f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -37,4 +37,4 @@ repos: rev: 0.7.22 hooks: - id: mdformat - exclude: ^docs/api/ + exclude: ^docs/api/|^\.github/ From e377076e90a668a4038ff4c6fd3e45ac74e106f0 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Mon, 23 Jun 2025 21:27:20 +0000 Subject: [PATCH 05/34] Update PR Template --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 93240dd3..97dc3ca0 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -23,6 +23,6 @@ Details: - [ ] I have added [docstrings](https://google.github.io/sbsim/contributing/#documentation) and updated the documentation as necessary, and I have previewed the [documentation site](https://google.github.io/sbsim/docs-site/) locally to make sure things look good. - [ ] I have self-reviewed my code (especially important if using AI agents). -______________________________________________________________________ +--- **Thank you for your contribution!** From 28d016ce2832d75bb59bff4e31fe3ec15ff78ff5 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Mon, 23 Jun 2025 21:29:31 +0000 Subject: [PATCH 06/34] Restore original formatting --- smart_control/simulator/constants.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/smart_control/simulator/constants.py b/smart_control/simulator/constants.py index b49ab3f8..365b29be 100644 --- a/smart_control/simulator/constants.py +++ b/smart_control/simulator/constants.py @@ -11,12 +11,8 @@ # Path to save videos generated by the simulation's visual logger. # fmt: off # pylint: disable=line-too-long -DEFAULT_SIM_VIDEOS_DIRPATH = os.path.join( - ROOT_DIR, "smart_control", "simulator", "videos" -) -SIM_VIDEOS_DIRPATH = os.getenv( - "SIM_VIDEOS_DIRPATH", default=DEFAULT_SIM_VIDEOS_DIRPATH -) +DEFAULT_SIM_VIDEOS_DIRPATH = os.path.join(ROOT_DIR, "smart_control", "simulator", "videos") +SIM_VIDEOS_DIRPATH = os.getenv("SIM_VIDEOS_DIRPATH", default=DEFAULT_SIM_VIDEOS_DIRPATH) # pylint: enable=line-too-long # fmt: on From 792ca1dcfc9402b997862e740f31b21035c64b23 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Mon, 23 Jun 2025 21:30:38 +0000 Subject: [PATCH 07/34] Restore original formatting --- .../reinforcement_learning/utils/config.py | 72 ++++--------------- 1 file changed, 13 insertions(+), 59 deletions(-) diff --git a/smart_control/reinforcement_learning/utils/config.py b/smart_control/reinforcement_learning/utils/config.py index 87f95e17..070aa697 100644 --- a/smart_control/reinforcement_learning/utils/config.py +++ b/smart_control/reinforcement_learning/utils/config.py @@ -33,37 +33,12 @@ # Relative filepaths. Consider moving to reinforcement_learning/constants.py # fmt: off # pylint: disable=line-too-long -DATA_PATH = os.path.join( - ROOT_DIR, "smart_control", "configs", "resources", "sb1" -) -CONFIG_PATH = os.path.join( - ROOT_DIR, - "smart_control", - "configs", - "resources", - "sb1", - "train_sim_configs", -) -METRICS_PATH = os.path.join( - ROOT_DIR, - "smart_control", - "reinforcement_learning", - "experiment_results", - "metrics", -) -RENDERS_PATH = os.path.join( - ROOT_DIR, - "smart_control", - "reinforcement_learning", - "experiment_results", - "renders", -) -REPLAY_BUFFER_DATA_PATH = os.path.join( - ROOT_DIR, "smart_control", "reinforcement_learning", "replay_buffer_data" -) -EXPERIMENT_RESULTS_PATH = os.path.join( - ROOT_DIR, "smart_control", "reinforcement_learning", "experiment_results" -) +DATA_PATH = os.path.join(ROOT_DIR, "smart_control", "configs", "resources", "sb1") +CONFIG_PATH = os.path.join(ROOT_DIR, "smart_control", "configs", "resources", "sb1", "train_sim_configs") +METRICS_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "experiment_results", "metrics") +RENDERS_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "experiment_results", "renders") +OUTPUT_DATA_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "data", "starter_buffers") +EXPERIMENT_RESULTS_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "experiment_results") # pylint: enable=line-too-long # fmt: on @@ -132,35 +107,14 @@ def get_histogram_reducer() -> Any: # fmt: off # pylint: disable=bad-continuation histogram_parameters_tuples = ( - ( - "zone_air_temperature_sensor", - ( - 285.0, - 286.0, - 287.0, - 288.0, - 289.0, - 290.0, - 291.0, - 292.0, - 293.0, - 294.0, - 295.0, - 296.0, - 297.0, - 298.0, - 299.0, - 300.0, - 301.0, - 302.0, - 303.0, - ), - ), + ("zone_air_temperature_sensor", ( + 285.0, 286.0, 287.0, 288.0, 289.0, 290.0, 291.0, 292.0, 293.0, + 294.0, 295.0, 296.0, 297.0, 298.0, 299.0, 300.0, 301.0, 302.0, 303.0, + )), ("supply_air_damper_percentage_command", (0.0, 0.2, 0.4, 0.6, 0.8, 1.0)), - ( - "supply_air_flowrate_setpoint", - (0.0, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.9), - ), + ("supply_air_flowrate_setpoint", ( + 0.0, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.9 + )), ) # pylint: enable=bad-continuation # fmt: on From c65bc259a075c6077a2ccf9a5c86d444a77d5b57 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 24 Jun 2025 14:59:57 +0000 Subject: [PATCH 08/34] Clean top of files --- .../observers/trajectory_recorder_observer.py | 2 -- .../reinforcement_learning/policies/extracted_policy.py | 3 ++- .../scripts/generate_gin_config_files.py | 1 - .../reinforcement_learning/utils/multi_episode_wrapper.py | 1 - .../visualization/trajectory_plotter.py | 4 +--- 5 files changed, 3 insertions(+), 8 deletions(-) diff --git a/smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py b/smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py index bc131a71..51c42eeb 100644 --- a/smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py +++ b/smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py @@ -1,7 +1,5 @@ """Observer that records trajectory data for visualization.""" -# smart_control/reinforcement_learning/observers/trajectory_recorder_observer.py - import json import logging import os diff --git a/smart_control/reinforcement_learning/policies/extracted_policy.py b/smart_control/reinforcement_learning/policies/extracted_policy.py index ef24024a..ba8be5c6 100644 --- a/smart_control/reinforcement_learning/policies/extracted_policy.py +++ b/smart_control/reinforcement_learning/policies/extracted_policy.py @@ -1,5 +1,6 @@ """Module for a TF Policy that aggregates historical actions based on a -timedeltaand then replays the aggregated actions sequentially.""" +timedelta and then replays the aggregated actions sequentially. +""" import datetime import logging diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py b/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py index 5b388d80..0312a0e7 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3 """ Grid Configuration Generator for Gin Config Files diff --git a/smart_control/reinforcement_learning/utils/multi_episode_wrapper.py b/smart_control/reinforcement_learning/utils/multi_episode_wrapper.py index fc893d8d..c65c1d6a 100644 --- a/smart_control/reinforcement_learning/utils/multi_episode_wrapper.py +++ b/smart_control/reinforcement_learning/utils/multi_episode_wrapper.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- """ Defines a simplified PyEnvironment wrapper that manages multiple environment configurations, loading only one environment at a time and switching upon reset. diff --git a/smart_control/reinforcement_learning/visualization/trajectory_plotter.py b/smart_control/reinforcement_learning/visualization/trajectory_plotter.py index 10025c26..2636c2c5 100644 --- a/smart_control/reinforcement_learning/visualization/trajectory_plotter.py +++ b/smart_control/reinforcement_learning/visualization/trajectory_plotter.py @@ -1,10 +1,8 @@ """Trajectory Plotter. -This module provides functions to plot trajectories of rl episodes. +This module provides functions to plot trajectories of RL episodes. """ -# smart_control/reinforcement_learning/visualization/trajectory_plotter.py - import logging from typing import List From c20efcb7d4d132efe88a63dd0ed04fa346091d99 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 24 Jun 2025 15:22:20 +0000 Subject: [PATCH 09/34] Refactor filepaths --- .../reinforcement_learning/scripts/eval.py | 16 +++----- .../scripts/generate_gin_config_files.py | 16 +++----- .../scripts/populate_starter_buffer.py | 4 +- .../reinforcement_learning/scripts/train.py | 38 ++++++------------- .../reinforcement_learning/utils/config.py | 14 +++---- smart_control/simulator/constants.py | 4 +- smart_control/utils/constants.py | 14 ++++++- .../constants_test.py} | 8 ++-- 8 files changed, 50 insertions(+), 64 deletions(-) rename smart_control/{reinforcement_learning/utils/config_test.py => utils/constants_test.py} (71%) diff --git a/smart_control/reinforcement_learning/scripts/eval.py b/smart_control/reinforcement_learning/scripts/eval.py index bd589ca4..e2fcf68d 100644 --- a/smart_control/reinforcement_learning/scripts/eval.py +++ b/smart_control/reinforcement_learning/scripts/eval.py @@ -20,8 +20,9 @@ from smart_control.reinforcement_learning.observers.trajectory_recorder_observer import TrajectoryRecorderObserver from smart_control.reinforcement_learning.policies.saved_model_policy import SavedModelPolicy from smart_control.reinforcement_learning.policies.schedule_policy import create_baseline_schedule_policy +from smart_control.reinforcement_learning.utils.config import BUILDING_GIN_CONFIG_FILEPATH from smart_control.reinforcement_learning.utils.config import EXPERIMENT_RESULTS_PATH -from smart_control.reinforcement_learning.utils.config import ROOT_DIR +from smart_control.reinforcement_learning.utils.constants import ROOT_DIRPATH from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment # Configure logging @@ -277,14 +278,7 @@ def evaluate_policy( parser.add_argument( "--gin-config", type=str, - default=os.path.join( - ROOT_DIR, - "smart_control", - "configs", - "resources", - "sb1", - "sim_config.gin", - ), + default=BUILDING_GIN_CONFIG_FILEPATH, help="Path to the .gin config file", ) parser.add_argument( @@ -305,10 +299,10 @@ def evaluate_policy( # Make it work for both relative and absolute paths gin_config_path_ = args.gin_config if not os.path.isabs(args.gin_config): - gin_config_path_ = os.path.join(ROOT_DIR, args.gin_config) + gin_config_path_ = os.path.join(ROOT_DIRPATH, args.gin_config) if not os.path.isabs(args.policy_dir) and args.policy_dir != "schedule": - args.policy_dir = os.path.join(ROOT_DIR, args.policy_dir) + args.policy_dir = os.path.join(ROOT_DIRPATH, args.policy_dir) evaluate_policy( policy_dir=args.policy_dir, diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py b/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py index 0312a0e7..8a306b60 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py @@ -12,7 +12,8 @@ import re from smart_control.reinforcement_learning.utils.config import CONFIG_PATH -from smart_control.utils.constants import ROOT_DIR +from smart_control.utils.constants import BUILDING_GIN_CONFIG_FILEPATH +from smart_control.utils.constants import ROOT_DIRPATH logger = logging.getLogger(__name__) # Configure logging @@ -122,14 +123,7 @@ def main(): ) parser.add_argument( 'base_config', - default=os.path.join( - ROOT_DIR, - 'smart_control', - 'configs', - 'resources', - 'sb1', - 'sim_config.gin', - ), + default=BUILDING_GIN_CONFIG_FILEPATH, help='Path to the base gin config file', ) parser.add_argument( @@ -160,9 +154,9 @@ def main(): # This ensures that it works both with absolute and relative paths if not os.path.isabs(args.base_config): - args.base_config = os.path.join(ROOT_DIR, args.base_config) + args.base_config = os.path.join(ROOT_DIRPATH, args.base_config) if not os.path.isabs(args.output_dir): - args.output_dir = os.path.join(ROOT_DIR, args.output_dir) + args.output_dir = os.path.join(ROOT_DIRPATH, args.output_dir) # Convert comma-separated values to lists time_steps = [step.strip() for step in args.time_steps.split(',')] diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py index 67642310..44a10781 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py @@ -22,7 +22,7 @@ from smart_control.reinforcement_learning.utils.config import CONFIG_PATH from smart_control.reinforcement_learning.utils.config import REPLAY_BUFFER_DATA_PATH from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment -from smart_control.utils.constants import ROOT_DIR +from smart_control.utils.constants import ROOT_DIRPATH # Configure logging logging.basicConfig( @@ -195,7 +195,7 @@ def populate_replay_buffer( # This makes it work for both relative and absolute paths if not os.path.isabs(args.env_gin_config_file_path): args.env_gin_config_file_path = os.path.join( - ROOT_DIR, args.env_gin_config_file_path + ROOT_DIRPATH, args.env_gin_config_file_path ) buffer_path_ = args.buffer_name diff --git a/smart_control/reinforcement_learning/scripts/train.py b/smart_control/reinforcement_learning/scripts/train.py index 165fb8e7..898838c9 100644 --- a/smart_control/reinforcement_learning/scripts/train.py +++ b/smart_control/reinforcement_learning/scripts/train.py @@ -28,9 +28,10 @@ from smart_control.reinforcement_learning.observers.composite_observer import CompositeObserver from smart_control.reinforcement_learning.observers.print_status_observer import PrintStatusObserver from smart_control.reinforcement_learning.replay_buffer.replay_buffer import ReplayBufferManager +from smart_control.reinforcement_learning.utils.config import BUILDING_GIN_CONFIG_FILEPATH from smart_control.reinforcement_learning.utils.config import CONFIG_PATH from smart_control.reinforcement_learning.utils.config import EXPERIMENT_RESULTS_PATH -from smart_control.reinforcement_learning.utils.config import ROOT_DIR +from smart_control.reinforcement_learning.utils.config import ROOT_DIRPATH from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment os.environ['WRAPT_DISABLE_EXTENSIONS'] = 'true' @@ -146,7 +147,7 @@ def train_agent( # Create train and eval environments logger.info( - 'Creating train and eval environments with scenatio config path: %s', + 'Creating train and eval environments with scenario config path: %s', scenario_config_path, ) train_env = create_and_setup_environment( @@ -423,8 +424,7 @@ def train_agent( type=int, default=256, help=( - 'Batch size for training (each gradient update uses ' - ' this many' + 'Batch size for training (each gradient update uses this many' ' elements from the replay buffer batched)' ), ) @@ -451,11 +451,7 @@ def train_agent( '--experiment-name', type=str, required=True, - help=( - 'Name of the experiment. This be used to ' - ' save TensorBoard' - ' summaries' - ), + help='Name of the experiment. This is used to save TensorBoard summaries', ) parser.add_argument( '--checkpoint-interval', @@ -468,38 +464,28 @@ def train_agent( type=int, default=200, help=( - 'Number of iterations (gradient updates) ' - ' to run the agent' + 'Number of iterations (gradient updates) to run the agent' ' learner per training loop' ), ) parser.add_argument( '--scenario-config-path', type=str, - default=os.path.join( - ROOT_DIR, - 'smart_control', - 'configs', - 'resources', - 'sb1', - 'sim_config.gin', - ), - help=( - 'Path to the scenario config file. ' - ' Default is' - ' sim_config.gin' - ), + default=BUILDING_GIN_CONFIG_FILEPATH, + help='Path to the scenario config file (sim_config.gin)', ) args = parser.parse_args() # Make it work for both relative and absolute paths if not os.path.isabs(args.starter_buffer_path): - args.starter_buffer_path = os.path.join(ROOT_DIR, args.starter_buffer_path) + args.starter_buffer_path = os.path.join( + ROOT_DIRPATH, args.starter_buffer_path + ) if not os.path.isabs(args.scenario_config_path): args.scenario_config_path = os.path.join( - ROOT_DIR, args.scenario_config_path + ROOT_DIRPATH, args.scenario_config_path ) train_agent( diff --git a/smart_control/reinforcement_learning/utils/config.py b/smart_control/reinforcement_learning/utils/config.py index 070aa697..363894af 100644 --- a/smart_control/reinforcement_learning/utils/config.py +++ b/smart_control/reinforcement_learning/utils/config.py @@ -23,7 +23,7 @@ from smart_control.simulator.weather_controller import ReplayWeatherController from smart_control.utils import controller_reader from smart_control.utils import histogram_reducer -from smart_control.utils.constants import ROOT_DIR +from smart_control.utils.constants import ROOT_DIRPATH from smart_control.utils.controller_writer import ProtoWriterFactory from smart_control.utils.environment_utils import to_timestamp from smart_control.utils.observation_normalizer import StandardScoreObservationNormalizer @@ -33,12 +33,12 @@ # Relative filepaths. Consider moving to reinforcement_learning/constants.py # fmt: off # pylint: disable=line-too-long -DATA_PATH = os.path.join(ROOT_DIR, "smart_control", "configs", "resources", "sb1") -CONFIG_PATH = os.path.join(ROOT_DIR, "smart_control", "configs", "resources", "sb1", "train_sim_configs") -METRICS_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "experiment_results", "metrics") -RENDERS_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "experiment_results", "renders") -OUTPUT_DATA_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "data", "starter_buffers") -EXPERIMENT_RESULTS_PATH = os.path.join(ROOT_DIR, "smart_control", "reinforcement_learning", "experiment_results") +DATA_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "configs", "resources", "sb1") +CONFIG_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "configs", "resources", "sb1", "train_sim_configs") +METRICS_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "reinforcement_learning", "experiment_results", "metrics") +RENDERS_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "reinforcement_learning", "experiment_results", "renders") +OUTPUT_DATA_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "reinforcement_learning", "data", "starter_buffers") +EXPERIMENT_RESULTS_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "reinforcement_learning", "experiment_results") # pylint: enable=line-too-long # fmt: on diff --git a/smart_control/simulator/constants.py b/smart_control/simulator/constants.py index 365b29be..db3def37 100644 --- a/smart_control/simulator/constants.py +++ b/smart_control/simulator/constants.py @@ -4,14 +4,14 @@ from dotenv import load_dotenv -from smart_control.utils.constants import ROOT_DIR +from smart_control.utils.constants import ROOT_DIRPATH load_dotenv() # Path to save videos generated by the simulation's visual logger. # fmt: off # pylint: disable=line-too-long -DEFAULT_SIM_VIDEOS_DIRPATH = os.path.join(ROOT_DIR, "smart_control", "simulator", "videos") +DEFAULT_SIM_VIDEOS_DIRPATH = os.path.join(ROOT_DIRPATH, "smart_control", "simulator", "videos") SIM_VIDEOS_DIRPATH = os.getenv("SIM_VIDEOS_DIRPATH", default=DEFAULT_SIM_VIDEOS_DIRPATH) # pylint: enable=line-too-long # fmt: on diff --git a/smart_control/utils/constants.py b/smart_control/utils/constants.py index f0b89408..2cdbf79c 100644 --- a/smart_control/utils/constants.py +++ b/smart_control/utils/constants.py @@ -6,7 +6,19 @@ # --------- Relative Filepaths --------------- # Path to the root directory of the project (where the main README is): -ROOT_DIR = os.path.join(os.path.dirname(__file__), '..', '..') +ROOT_DIRPATH = os.path.join(os.path.dirname(__file__), '..', '..') + +# Configs: +CONFIGS_DIRPATH = os.path.join(ROOT_DIRPATH, 'smart_control', 'configs') +BUILDING_CONFIG_DIRPATH = os.path.join( + CONFIGS_DIRPATH, + 'resources', + 'sb1', +) +BUILDING_GIN_CONFIG_FILEPATH = os.path.join( + BUILDING_CONFIG_DIRPATH, + 'sim_config.gin', +) # --------- Thermal Constants --------------- diff --git a/smart_control/reinforcement_learning/utils/config_test.py b/smart_control/utils/constants_test.py similarity index 71% rename from smart_control/reinforcement_learning/utils/config_test.py rename to smart_control/utils/constants_test.py index 2bfb08bb..a4ccaa5f 100644 --- a/smart_control/reinforcement_learning/utils/config_test.py +++ b/smart_control/utils/constants_test.py @@ -1,19 +1,19 @@ -"""Tests for reinforcement learning utils config.""" +"""Tests for constants.""" import os from absl.testing import absltest -from smart_control.utils.constants import ROOT_DIR +from smart_control.utils.constants import ROOT_DIRPATH -class TestConfigPaths(absltest.TestCase): +class TestRelativePaths(absltest.TestCase): def test_root_dir(self): # test the path to the root directory is correct, # and some files that would only exist there are present - file_names = os.listdir(ROOT_DIR) + file_names = os.listdir(ROOT_DIRPATH) self.assertIn("README.md", file_names) self.assertIn("pyproject.toml", file_names) self.assertIn("LICENSE", file_names) From e9c2f3498d06b08d13d72a60f99bc3e543453795 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 24 Jun 2025 15:56:20 +0000 Subject: [PATCH 10/34] Refactor filepaths --- docs/setup/linux.md | 4 +-- docs/setup/mac.md | 4 +-- .../observers/rendering_observer.py | 4 +-- .../reinforcement_learning/scripts/eval.py | 14 +++++----- .../scripts/generate_gin_config_files.py | 14 +++++----- .../scripts/populate_starter_buffer.py | 8 +++--- .../reinforcement_learning/scripts/train.py | 24 ++++++++--------- .../reinforcement_learning/utils/config.py | 27 +++++++------------ .../reinforcement_learning/utils/constants.py | 11 ++++++++ smart_control/simulator/constants.py | 10 +++---- .../simulator_flexible_floor_plan.py | 2 +- smart_control/utils/constants.py | 17 +++++------- smart_control/utils/constants_test.py | 4 +-- 13 files changed, 67 insertions(+), 76 deletions(-) diff --git a/docs/setup/linux.md b/docs/setup/linux.md index f758501e..2954bf8f 100644 --- a/docs/setup/linux.md +++ b/docs/setup/linux.md @@ -120,7 +120,7 @@ cd ../.. By default, simulation videos are stored in the "simulator/videos" directory (which is ignored from version control). If you would like to customize this -location, use the `SIM_VIDEOS_DIRPATH` environment variable. +location, use the `SIM_VIDEOS_DIR` environment variable. You can pass environment variable(s) at runtime, or create a local ".env" file and set your desired value(s) there: @@ -129,7 +129,7 @@ and set your desired value(s) there: # this is the ".env" file... # customizing the directory where simulation videos are stored: -SIM_VIDEOS_DIRPATH="/cns/oz-d/home/smart-buildings-control-team/smart-buildings/geometric_sim_videos/" +SIM_VIDEOS_DIR="/cns/oz-d/home/smart-buildings-control-team/smart-buildings/geometric_sim_videos/" ``` ## Notebook Setup diff --git a/docs/setup/mac.md b/docs/setup/mac.md index 04593a0b..44694aba 100644 --- a/docs/setup/mac.md +++ b/docs/setup/mac.md @@ -121,7 +121,7 @@ cd ../.. By default, simulation videos are stored in the "simulator/videos" directory (which is ignored from version control). If you would like to customize this -location, use the `SIM_VIDEOS_DIRPATH` environment variable. +location, use the `SIM_VIDEOS_DIR` environment variable. You can pass environment variable(s) at runtime, or create a local ".env" file and set your desired value(s) there: @@ -130,7 +130,7 @@ and set your desired value(s) there: # this is the ".env" file... # customizing the directory where simulation videos are stored: -SIM_VIDEOS_DIRPATH="/cns/oz-d/home/smart-buildings-control-team/smart-buildings/geometric_sim_videos/" +SIM_VIDEOS_DIR="/cns/oz-d/home/smart-buildings-control-team/smart-buildings/geometric_sim_videos/" ``` ## Notebook Setup diff --git a/smart_control/reinforcement_learning/observers/rendering_observer.py b/smart_control/reinforcement_learning/observers/rendering_observer.py index 6d91ff48..5e7969b3 100644 --- a/smart_control/reinforcement_learning/observers/rendering_observer.py +++ b/smart_control/reinforcement_learning/observers/rendering_observer.py @@ -17,8 +17,8 @@ from smart_control.environment import environment from smart_control.reinforcement_learning.observers.base_observer import Observer -from smart_control.reinforcement_learning.utils.config import RENDERS_PATH from smart_control.reinforcement_learning.utils.constants import DEFAULT_TIME_ZONE +from smart_control.reinforcement_learning.utils.constants import RL_EXPERIMENT_RENDERS_DIR from smart_control.reinforcement_learning.utils.data_processing import get_action_timeseries from smart_control.reinforcement_learning.utils.data_processing import get_energy_timeseries from smart_control.reinforcement_learning.utils.data_processing import get_latest_episode_reader @@ -46,7 +46,7 @@ def __init__( plot_fn: Optional[Callable] = None, # pylint: disable=g-bare-generic clear_output_before_render: bool = True, time_zone: str = DEFAULT_TIME_ZONE, - save_path: str = RENDERS_PATH, + save_path: str = RL_EXPERIMENT_RENDERS_DIR, ): """Initialize the observer. diff --git a/smart_control/reinforcement_learning/scripts/eval.py b/smart_control/reinforcement_learning/scripts/eval.py index e2fcf68d..74831433 100644 --- a/smart_control/reinforcement_learning/scripts/eval.py +++ b/smart_control/reinforcement_learning/scripts/eval.py @@ -20,10 +20,10 @@ from smart_control.reinforcement_learning.observers.trajectory_recorder_observer import TrajectoryRecorderObserver from smart_control.reinforcement_learning.policies.saved_model_policy import SavedModelPolicy from smart_control.reinforcement_learning.policies.schedule_policy import create_baseline_schedule_policy -from smart_control.reinforcement_learning.utils.config import BUILDING_GIN_CONFIG_FILEPATH -from smart_control.reinforcement_learning.utils.config import EXPERIMENT_RESULTS_PATH -from smart_control.reinforcement_learning.utils.constants import ROOT_DIRPATH +from smart_control.reinforcement_learning.utils.constants import RL_EXPERIMENT_RESULTS_DIR from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment +from smart_control.utils.constants import ROOT_DIR +from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH # Configure logging logging.basicConfig( @@ -140,7 +140,7 @@ def evaluate_policy( save_trajectory: Whether to save detailed trajectory data for each episode """ # Get base directory for evaluation results - base_dir = os.path.dirname(EXPERIMENT_RESULTS_PATH) + base_dir = os.path.dirname(RL_EXPERIMENT_RESULTS_DIR) eval_results_path = os.path.join(base_dir, "eval_results") os.makedirs(eval_results_path, exist_ok=True) @@ -278,7 +278,7 @@ def evaluate_policy( parser.add_argument( "--gin-config", type=str, - default=BUILDING_GIN_CONFIG_FILEPATH, + default=SB1_GIN_CONFIG_FILEPATH, help="Path to the .gin config file", ) parser.add_argument( @@ -299,10 +299,10 @@ def evaluate_policy( # Make it work for both relative and absolute paths gin_config_path_ = args.gin_config if not os.path.isabs(args.gin_config): - gin_config_path_ = os.path.join(ROOT_DIRPATH, args.gin_config) + gin_config_path_ = os.path.join(ROOT_DIR, args.gin_config) if not os.path.isabs(args.policy_dir) and args.policy_dir != "schedule": - args.policy_dir = os.path.join(ROOT_DIRPATH, args.policy_dir) + args.policy_dir = os.path.join(ROOT_DIR, args.policy_dir) evaluate_policy( policy_dir=args.policy_dir, diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py b/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py index 8a306b60..3ba9a305 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py @@ -11,9 +11,9 @@ import os import re -from smart_control.reinforcement_learning.utils.config import CONFIG_PATH -from smart_control.utils.constants import BUILDING_GIN_CONFIG_FILEPATH -from smart_control.utils.constants import ROOT_DIRPATH +from smart_control.utils.constants import ROOT_DIR +from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH +from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR logger = logging.getLogger(__name__) # Configure logging @@ -123,12 +123,12 @@ def main(): ) parser.add_argument( 'base_config', - default=BUILDING_GIN_CONFIG_FILEPATH, + default=SB1_GIN_CONFIG_FILEPATH, help='Path to the base gin config file', ) parser.add_argument( '--output-dir', - default=os.path.join(CONFIG_PATH, 'generated_configs'), + default=os.path.join(SB1_TRAIN_CONFIGS_DIR, 'generated_configs'), help='Directory to save generated config files', ) parser.add_argument( @@ -154,9 +154,9 @@ def main(): # This ensures that it works both with absolute and relative paths if not os.path.isabs(args.base_config): - args.base_config = os.path.join(ROOT_DIRPATH, args.base_config) + args.base_config = os.path.join(ROOT_DIR, args.base_config) if not os.path.isabs(args.output_dir): - args.output_dir = os.path.join(ROOT_DIRPATH, args.output_dir) + args.output_dir = os.path.join(ROOT_DIR, args.output_dir) # Convert comma-separated values to lists time_steps = [step.strip() for step in args.time_steps.split(',')] diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py index 44a10781..87224a3d 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py @@ -19,10 +19,10 @@ from smart_control.reinforcement_learning.observers.print_status_observer import PrintStatusObserver from smart_control.reinforcement_learning.policies.schedule_policy import create_baseline_schedule_policy from smart_control.reinforcement_learning.replay_buffer.replay_buffer import ReplayBufferManager -from smart_control.reinforcement_learning.utils.config import CONFIG_PATH from smart_control.reinforcement_learning.utils.config import REPLAY_BUFFER_DATA_PATH from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment -from smart_control.utils.constants import ROOT_DIRPATH +from smart_control.utils.constants import ROOT_DIR +from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR # Configure logging logging.basicConfig( @@ -177,7 +177,7 @@ def populate_replay_buffer( if __name__ == '__main__': - config_filepath = os.path.join(CONFIG_PATH, 'sim_config_1_day.gin') + config_filepath = os.path.join(SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin') # fmt: off # pylint: disable=line-too-long @@ -195,7 +195,7 @@ def populate_replay_buffer( # This makes it work for both relative and absolute paths if not os.path.isabs(args.env_gin_config_file_path): args.env_gin_config_file_path = os.path.join( - ROOT_DIRPATH, args.env_gin_config_file_path + ROOT_DIR, args.env_gin_config_file_path ) buffer_path_ = args.buffer_name diff --git a/smart_control/reinforcement_learning/scripts/train.py b/smart_control/reinforcement_learning/scripts/train.py index 898838c9..0b223527 100644 --- a/smart_control/reinforcement_learning/scripts/train.py +++ b/smart_control/reinforcement_learning/scripts/train.py @@ -28,11 +28,11 @@ from smart_control.reinforcement_learning.observers.composite_observer import CompositeObserver from smart_control.reinforcement_learning.observers.print_status_observer import PrintStatusObserver from smart_control.reinforcement_learning.replay_buffer.replay_buffer import ReplayBufferManager -from smart_control.reinforcement_learning.utils.config import BUILDING_GIN_CONFIG_FILEPATH -from smart_control.reinforcement_learning.utils.config import CONFIG_PATH -from smart_control.reinforcement_learning.utils.config import EXPERIMENT_RESULTS_PATH -from smart_control.reinforcement_learning.utils.config import ROOT_DIRPATH +from smart_control.reinforcement_learning.utils.constants import RL_EXPERIMENT_RESULTS_DIR from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment +from smart_control.utils.constants import ROOT_DIR +from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH +from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR os.environ['WRAPT_DISABLE_EXTENSIONS'] = 'true' @@ -111,12 +111,14 @@ def train_agent( """ # Set up scenario config path if not provided if scenario_config_path is None: - scenario_config_path = os.path.join(CONFIG_PATH, 'sim_config_1_day.gin') + scenario_config_path = os.path.join( + SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin' + ) # Generate timestamp for summary directory current_time = datetime.now().strftime('%Y_%m_%d-%H:%M:%S') summary_dir = os.path.join( - EXPERIMENT_RESULTS_PATH, f'{experiment_name}_{current_time}' + RL_EXPERIMENT_RESULTS_DIR, f'{experiment_name}_{current_time}' ) logger.info('Experiment results will be saved to %s', summary_dir) @@ -471,7 +473,7 @@ def train_agent( parser.add_argument( '--scenario-config-path', type=str, - default=BUILDING_GIN_CONFIG_FILEPATH, + default=SB1_GIN_CONFIG_FILEPATH, help='Path to the scenario config file (sim_config.gin)', ) @@ -479,14 +481,10 @@ def train_agent( # Make it work for both relative and absolute paths if not os.path.isabs(args.starter_buffer_path): - args.starter_buffer_path = os.path.join( - ROOT_DIRPATH, args.starter_buffer_path - ) + args.starter_buffer_path = os.path.join(ROOT_DIR, args.starter_buffer_path) if not os.path.isabs(args.scenario_config_path): - args.scenario_config_path = os.path.join( - ROOT_DIRPATH, args.scenario_config_path - ) + args.scenario_config_path = os.path.join(ROOT_DIR, args.scenario_config_path) # pylint: disable=line-too-long train_agent( starter_buffer_path=args.starter_buffer_path, diff --git a/smart_control/reinforcement_learning/utils/config.py b/smart_control/reinforcement_learning/utils/config.py index 363894af..7a47db9a 100644 --- a/smart_control/reinforcement_learning/utils/config.py +++ b/smart_control/reinforcement_learning/utils/config.py @@ -23,24 +23,14 @@ from smart_control.simulator.weather_controller import ReplayWeatherController from smart_control.utils import controller_reader from smart_control.utils import histogram_reducer -from smart_control.utils.constants import ROOT_DIRPATH from smart_control.utils.controller_writer import ProtoWriterFactory from smart_control.utils.environment_utils import to_timestamp from smart_control.utils.observation_normalizer import StandardScoreObservationNormalizer # pylint: enable=unused-import -# Relative filepaths. Consider moving to reinforcement_learning/constants.py -# fmt: off -# pylint: disable=line-too-long -DATA_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "configs", "resources", "sb1") -CONFIG_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "configs", "resources", "sb1", "train_sim_configs") -METRICS_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "reinforcement_learning", "experiment_results", "metrics") -RENDERS_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "reinforcement_learning", "experiment_results", "renders") -OUTPUT_DATA_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "reinforcement_learning", "data", "starter_buffers") -EXPERIMENT_RESULTS_PATH = os.path.join(ROOT_DIRPATH, "smart_control", "reinforcement_learning", "experiment_results") -# pylint: enable=line-too-long -# fmt: on +from smart_control.utils.constants import SB1_CONFIG_DIR # isort:skip +from smart_control.reinforcement_learning.utils.constants import RL_EXPERIMENT_METRICS_DIR # isort:skip @gin.configurable @@ -50,7 +40,7 @@ def get_histogram_path() -> str: Returns: Path to histogram data. """ - return DATA_PATH + return SB1_CONFIG_DIR @gin.configurable @@ -60,7 +50,7 @@ def get_reset_temp_values() -> np.ndarray: Returns: Reset temperature values. """ - reset_temps_filepath = os.path.join(DATA_PATH, "reset_temps.npy") + reset_temps_filepath = os.path.join(SB1_CONFIG_DIR, "reset_temps.npy") return np.load(reset_temps_filepath) @@ -72,7 +62,7 @@ def get_zone_path() -> str: Returns: Path to zone data. """ - return os.path.join(DATA_PATH, "double_resolution_zone_1_2.npy") + return os.path.join(SB1_CONFIG_DIR, "double_resolution_zone_1_2.npy") @gin.configurable @@ -82,7 +72,7 @@ def get_metrics_path() -> str: Returns: Path to metrics. """ - return os.path.join(METRICS_PATH, "metrics") + return os.path.join(RL_EXPERIMENT_METRICS_DIR, "metrics") @gin.configurable @@ -93,7 +83,8 @@ def get_weather_path() -> str: Path to weather data. """ return os.path.join( - DATA_PATH, "local_weather_moffett_field_20230701_20231122.csv" + SB1_CONFIG_DIR, + "local_weather_moffett_field_20230701_20231122.csv", ) @@ -118,7 +109,7 @@ def get_histogram_reducer() -> Any: ) # pylint: enable=bad-continuation # fmt: on - reader = controller_reader.ProtoReader(DATA_PATH) + reader = controller_reader.ProtoReader(SB1_CONFIG_DIR) hr = histogram_reducer.HistogramReducer( histogram_parameters_tuples=histogram_parameters_tuples, diff --git a/smart_control/reinforcement_learning/utils/constants.py b/smart_control/reinforcement_learning/utils/constants.py index e24b67c2..d9a749c9 100644 --- a/smart_control/reinforcement_learning/utils/constants.py +++ b/smart_control/reinforcement_learning/utils/constants.py @@ -1,5 +1,16 @@ """Reinforcement learning constants.""" +import os + +from smart_control.utils.constants import ROOT_DIR + +# Relative filepaths: +RL_DIR = os.path.join(ROOT_DIR, 'smart_control', 'reinforcement_learning') +RL_EXPERIMENT_RESULTS_DIR = os.path.join(RL_DIR, 'experiment_results') +RL_EXPERIMENT_METRICS_DIR = os.path.join(RL_EXPERIMENT_RESULTS_DIR, 'metrics') +RL_EXPERIMENT_RENDERS_DIR = os.path.join(RL_EXPERIMENT_RESULTS_DIR, 'renders') +# RL_STARTER_BUFFERS_DIR = os.path.join(RL_DIR, 'data', 'starter_buffers') + # Temperature conversion KELVIN_TO_CELSIUS = 273.15 diff --git a/smart_control/simulator/constants.py b/smart_control/simulator/constants.py index db3def37..bf47a7dc 100644 --- a/smart_control/simulator/constants.py +++ b/smart_control/simulator/constants.py @@ -4,17 +4,13 @@ from dotenv import load_dotenv -from smart_control.utils.constants import ROOT_DIRPATH +from smart_control.utils.constants import ROOT_DIR load_dotenv() # Path to save videos generated by the simulation's visual logger. -# fmt: off -# pylint: disable=line-too-long -DEFAULT_SIM_VIDEOS_DIRPATH = os.path.join(ROOT_DIRPATH, "smart_control", "simulator", "videos") -SIM_VIDEOS_DIRPATH = os.getenv("SIM_VIDEOS_DIRPATH", default=DEFAULT_SIM_VIDEOS_DIRPATH) -# pylint: enable=line-too-long -# fmt: on +DEFAULT_SIM_VIDEOS_DIR = os.path.join(ROOT_DIR, "smart_control", "simulator", "videos") # pylint: disable=line-too-long +SIM_VIDEOS_DIR = os.getenv("SIM_VIDEOS_DIR", default=DEFAULT_SIM_VIDEOS_DIR) # Here we use a specific placeholder value that helps us pick out interior walls # and will not be used by connectedComponents() function (which only counts diff --git a/smart_control/simulator/simulator_flexible_floor_plan.py b/smart_control/simulator/simulator_flexible_floor_plan.py index 8a91a507..4195382b 100644 --- a/smart_control/simulator/simulator_flexible_floor_plan.py +++ b/smart_control/simulator/simulator_flexible_floor_plan.py @@ -176,7 +176,7 @@ def execute_step_sim( self._log_and_plotter.log(self.building.temp) if self.current_timestamp == self._start_timestamp + pd.Timedelta(days=4): - self.get_video(path=constants.SIM_VIDEOS_DIRPATH + video_filename) + self.get_video(path=constants.SIM_VIDEOS_DIR + video_filename) def _get_zone_reward_info( self, diff --git a/smart_control/utils/constants.py b/smart_control/utils/constants.py index 2cdbf79c..c0de3eb6 100644 --- a/smart_control/utils/constants.py +++ b/smart_control/utils/constants.py @@ -6,19 +6,14 @@ # --------- Relative Filepaths --------------- # Path to the root directory of the project (where the main README is): -ROOT_DIRPATH = os.path.join(os.path.dirname(__file__), '..', '..') +ROOT_DIR = os.path.join(os.path.dirname(__file__), '..', '..') # Configs: -CONFIGS_DIRPATH = os.path.join(ROOT_DIRPATH, 'smart_control', 'configs') -BUILDING_CONFIG_DIRPATH = os.path.join( - CONFIGS_DIRPATH, - 'resources', - 'sb1', -) -BUILDING_GIN_CONFIG_FILEPATH = os.path.join( - BUILDING_CONFIG_DIRPATH, - 'sim_config.gin', -) +CONFIGS_DIR = os.path.join(ROOT_DIR, 'smart_control', 'configs') +SB1_CONFIG_DIR = os.path.join(CONFIGS_DIR, 'resources', 'sb1') +SB1_GIN_CONFIG_FILEPATH = os.path.join(SB1_CONFIG_DIR, 'sim_config.gin') +SB1_TRAIN_CONFIGS_DIR = os.path.join(SB1_CONFIG_DIR, 'train_sim_configs') + # --------- Thermal Constants --------------- diff --git a/smart_control/utils/constants_test.py b/smart_control/utils/constants_test.py index a4ccaa5f..9da52321 100644 --- a/smart_control/utils/constants_test.py +++ b/smart_control/utils/constants_test.py @@ -4,7 +4,7 @@ from absl.testing import absltest -from smart_control.utils.constants import ROOT_DIRPATH +from smart_control.utils.constants import ROOT_DIR class TestRelativePaths(absltest.TestCase): @@ -13,7 +13,7 @@ def test_root_dir(self): # test the path to the root directory is correct, # and some files that would only exist there are present - file_names = os.listdir(ROOT_DIRPATH) + file_names = os.listdir(ROOT_DIR) self.assertIn("README.md", file_names) self.assertIn("pyproject.toml", file_names) self.assertIn("LICENSE", file_names) From ebbae9c8395f77bb1a6f89b284193abdbd757879 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 24 Jun 2025 19:19:24 +0000 Subject: [PATCH 11/34] Refactor and test temp conversion functions; closes #25 --- .../observers/rendering_observer.py | 22 ++++---- .../reinforcement_learning/utils/constants.py | 3 -- .../utils/data_processing.py | 31 +----------- smart_control/utils/constants.py | 6 ++- smart_control/utils/conversion_utils.py | 50 ++++++++++++++++++- smart_control/utils/conversion_utils_test.py | 31 ++++++++++++ smart_control/utils/plot_utils.py | 16 +++--- 7 files changed, 105 insertions(+), 54 deletions(-) diff --git a/smart_control/reinforcement_learning/observers/rendering_observer.py b/smart_control/reinforcement_learning/observers/rendering_observer.py index 5e7969b3..a011ee96 100644 --- a/smart_control/reinforcement_learning/observers/rendering_observer.py +++ b/smart_control/reinforcement_learning/observers/rendering_observer.py @@ -26,7 +26,7 @@ from smart_control.reinforcement_learning.utils.data_processing import get_reward_timeseries from smart_control.reinforcement_learning.utils.data_processing import get_zone_timeseries from smart_control.utils import building_renderer -from smart_control.utils.constants import KELVIN_TO_CELSIUS +from smart_control.utils.conversion_utils import convert_kelvin_to_celsius as k_to_c logger = logging.getLogger(__name__) @@ -353,37 +353,37 @@ def _plot_temperature_timeline( ax1.plot( zone_cooling_setpoints.index, - zone_cooling_setpoints - KELVIN_TO_CELSIUS, + k_to_c(zone_cooling_setpoints), color='yellow', lw=1, ) ax1.plot( zone_cooling_setpoints.index, - zone_heating_setpoints - KELVIN_TO_CELSIUS, + k_to_c(zone_heating_setpoints), color='yellow', lw=1, ) ax1.fill_between( zone_temp_stats.index, - zone_temp_stats['min_temp'] - KELVIN_TO_CELSIUS, - zone_temp_stats['max_temp'] - KELVIN_TO_CELSIUS, + k_to_c(zone_temp_stats['min_temp']), + k_to_c(zone_temp_stats['max_temp']), facecolor='green', alpha=0.8, ) ax1.fill_between( zone_temp_stats.index, - zone_temp_stats['q25_temp'] - KELVIN_TO_CELSIUS, - zone_temp_stats['q75_temp'] - KELVIN_TO_CELSIUS, + k_to_c(zone_temp_stats['q25_temp']), + k_to_c(zone_temp_stats['q75_temp']), facecolor='green', alpha=0.8, ) ax1.plot( zone_temp_stats.index, - zone_temp_stats['median_temp'] - KELVIN_TO_CELSIUS, + k_to_c(zone_temp_stats['median_temp']), color='white', lw=3, alpha=1.0, @@ -391,7 +391,7 @@ def _plot_temperature_timeline( ax1.plot( outside_air_temperature_timeseries.index, - outside_air_temperature_timeseries - KELVIN_TO_CELSIUS, + k_to_c(outside_air_temperature_timeseries), color='magenta', lw=3, alpha=1.0, @@ -418,8 +418,8 @@ def _plot_action_timeline( single_action_timeseries = single_action_timeseries.sort_values(by='timestamp') # pylint: disable=line-too-long if action_tuple[1] in ['supply_water_setpoint', 'supply_air_heating_temperature_setpoint']: # pylint: disable=line-too-long - single_action_timeseries['setpoint_value'] = ( - single_action_timeseries['setpoint_value'] - KELVIN_TO_CELSIUS + single_action_timeseries['setpoint_value'] = k_to_c( + single_action_timeseries['setpoint_value'] ) ax1.plot( diff --git a/smart_control/reinforcement_learning/utils/constants.py b/smart_control/reinforcement_learning/utils/constants.py index d9a749c9..98e7996d 100644 --- a/smart_control/reinforcement_learning/utils/constants.py +++ b/smart_control/reinforcement_learning/utils/constants.py @@ -11,9 +11,6 @@ RL_EXPERIMENT_RENDERS_DIR = os.path.join(RL_EXPERIMENT_RESULTS_DIR, 'renders') # RL_STARTER_BUFFERS_DIR = os.path.join(RL_DIR, 'data', 'starter_buffers') -# Temperature conversion -KELVIN_TO_CELSIUS = 273.15 - # Default time zone for plotting and simulations DEFAULT_TIME_ZONE = 'US/Pacific' diff --git a/smart_control/reinforcement_learning/utils/data_processing.py b/smart_control/reinforcement_learning/utils/data_processing.py index fbd976ce..0a674147 100644 --- a/smart_control/reinforcement_learning/utils/data_processing.py +++ b/smart_control/reinforcement_learning/utils/data_processing.py @@ -2,13 +2,12 @@ import logging import os -from typing import Any, List, Union +from typing import Any, List import numpy as np import pandas as pd from smart_control.reinforcement_learning.utils.constants import DEFAULT_TIME_ZONE -from smart_control.reinforcement_learning.utils.constants import KELVIN_TO_CELSIUS from smart_control.utils import controller_reader from smart_control.utils import conversion_utils @@ -323,31 +322,3 @@ def get_action_timeseries(action_responses: List[Any]) -> pd.DataFrame: 'setpoint_value': setpoint_values, 'response_type': response_types, }) - - -def convert_kelvin_to_celsius( - temperature_kelvin: Union[float, np.ndarray, pd.Series], -) -> Union[float, np.ndarray, pd.Series]: - """Convert temperature from Kelvin to Celsius. - - Args: - temperature_kelvin: Temperature in Kelvin. - - Returns: - Temperature in Celsius. - """ - return temperature_kelvin - KELVIN_TO_CELSIUS - - -def convert_celsius_to_kelvin( - temperature_celsius: Union[float, np.ndarray, pd.Series], -) -> Union[float, np.ndarray, pd.Series]: - """Convert temperature from Celsius to Kelvin. - - Args: - temperature_celsius: Temperature in Celsius. - - Returns: - Temperature in Kelvin. - """ - return temperature_celsius + KELVIN_TO_CELSIUS diff --git a/smart_control/utils/constants.py b/smart_control/utils/constants.py index c0de3eb6..3b0d2414 100644 --- a/smart_control/utils/constants.py +++ b/smart_control/utils/constants.py @@ -28,7 +28,11 @@ W_PER_KW: float = 1000.0 # Number of Watts in a kW. WATTS_PER_BTU_HR: float = 0.29307107 # Number of Watts in a BTU/hr HZ_PERCENT: float = 100.0 / 60.0 # Converts blower/pump Hz to Percentage Power -KELVIN_TO_CELSIUS = 273.15 + +# kelvin to celsius... +# prefer to use the related conversion functions in utils.conversion_utils +# to make sure you are converting in the right direction +_KELVIN_TO_CELSIUS = 273.15 # https://www.rapidtables.com/convert/power/hp-to-watt.html WATTS_PER_HORSEPOWER = 746.0 diff --git a/smart_control/utils/conversion_utils.py b/smart_control/utils/conversion_utils.py index 50f22c2f..ebc0332a 100644 --- a/smart_control/utils/conversion_utils.py +++ b/smart_control/utils/conversion_utils.py @@ -6,7 +6,7 @@ import functools import re import types -from typing import Mapping, Tuple +from typing import Mapping, Tuple, Union from google.protobuf import timestamp_pb2 import holidays @@ -14,12 +14,17 @@ import pandas as pd from smart_control.proto import smart_control_reward_pb2 +from smart_control.utils.constants import _KELVIN_TO_CELSIUS _COUNTRY = 'US' _SECONDS_IN_DAY = 24 * 3600 _WATT_SECONDS_KWH = 1.0 / 3600.0 / 1000.0 _DAYS_IN_WEEK = 7.0 +# +# DATES AND TIMES +# + def pandas_to_proto_timestamp( pandas_timestamp: pd.Timestamp, @@ -55,6 +60,11 @@ def is_work_day(timestamp: pd.Timestamp): return timestamp.weekday() < 5 and timestamp.date() not in _us_holidays() +# +# BUILDING INFO +# + + def zone_coordinates_to_id(coordinates: Tuple[int, int]) -> str: return 'zone_id_' + str(coordinates) @@ -119,6 +129,11 @@ def get_radian_time( return 2.0 * np.pi * interval_frac +# +# TEMPERATURES +# + + def kelvin_to_fahrenheit(kelvin: float) -> float: """Converts Kelvin to °F. @@ -155,6 +170,39 @@ def fahrenheit_to_kelvin(fahrenheit: float) -> float: return celsius + 273.15 +def convert_kelvin_to_celsius( + temperature_kelvin: Union[float, np.ndarray, pd.Series], +) -> Union[float, np.ndarray, pd.Series]: + """Convert temperature from Kelvin to Celsius. + + Args: + temperature_kelvin: Temperature in Kelvin. + + Returns: + Temperature in Celsius. + """ + return temperature_kelvin - _KELVIN_TO_CELSIUS + + +def convert_celsius_to_kelvin( + temperature_celsius: Union[float, np.ndarray, pd.Series], +) -> Union[float, np.ndarray, pd.Series]: + """Convert temperature from Celsius to Kelvin. + + Args: + temperature_celsius: Temperature in Celsius. + + Returns: + Temperature in Kelvin. + """ + return temperature_celsius + _KELVIN_TO_CELSIUS + + +# +# ENERGY +# + + def get_reward_info_energy_use( reward_info: smart_control_reward_pb2.RewardInfo, ) -> Mapping[str, float]: diff --git a/smart_control/utils/conversion_utils_test.py b/smart_control/utils/conversion_utils_test.py index f01d7596..93a63885 100644 --- a/smart_control/utils/conversion_utils_test.py +++ b/smart_control/utils/conversion_utils_test.py @@ -7,6 +7,8 @@ from smart_control.proto import smart_control_reward_pb2 from smart_control.utils import conversion_utils +from smart_control.utils.conversion_utils import convert_celsius_to_kelvin as c_to_k +from smart_control.utils.conversion_utils import convert_kelvin_to_celsius as k_to_c class ConversionUtilsTest(parameterized.TestCase): @@ -87,6 +89,35 @@ def test_fahrenheit_to_kelvin_invalid(self): with self.assertRaises(ValueError): _ = conversion_utils.fahrenheit_to_kelvin(-495.67) + KELVIN_AND_CELSIUS_FLOAT_PARAMS = [ + # (kelvin, celsius) + (50.0, -223.15), + (0.0, -273.15), # Absolute zero in Celsius + (-50.0, -323.15), + ] + + @parameterized.parameters(KELVIN_AND_CELSIUS_FLOAT_PARAMS) + def test_kelvin_to_celsius_floats(self, kelvin, celsius): + self.assertAlmostEqual(k_to_c(kelvin), celsius, places=10) + + @parameterized.parameters(KELVIN_AND_CELSIUS_FLOAT_PARAMS) + def test_celsius_to_kelvin_floats(self, kelvin, celsius): + self.assertAlmostEqual(c_to_k(celsius), kelvin, places=10) + + KELVIN_AND_CELSIUS_SERIES_PARAMS = [ + (pd.Series([50.0, 0, -50]), pd.Series([-223.15, -273.15, -323.15])), + ] + + @parameterized.parameters(KELVIN_AND_CELSIUS_SERIES_PARAMS) + def test_kelvin_to_celsius_series(self, kelvin_series, celsius_series): + with self.subTest('Kelvin to Celsius series'): + pd.testing.assert_series_equal(k_to_c(kelvin_series), celsius_series) + + @parameterized.parameters(KELVIN_AND_CELSIUS_SERIES_PARAMS) + def test_celsius_to_kelvin_series(self, kelvin_series, celsius_series): + with self.subTest('Kelvin to Celsius series'): + pd.testing.assert_series_equal(c_to_k(celsius_series), kelvin_series) + @parameterized.parameters( (pd.Timestamp('2021-09-27 00:00:00+01'), 0), (pd.Timestamp('2021-10-10 23:59:59-07'), 6.28311258512742), diff --git a/smart_control/utils/plot_utils.py b/smart_control/utils/plot_utils.py index 4bab3485..06e9524f 100644 --- a/smart_control/utils/plot_utils.py +++ b/smart_control/utils/plot_utils.py @@ -12,7 +12,7 @@ import numpy as np import pandas as pd -K_TO_C = 273.0 # TODO: https://github.com/google/sbsim/issues/25 - consider importing and using `int(KELVIN_TO_CELSIUS)` constant here # pylint:disable=line-too-long +from smart_control.utils.conversion_utils import convert_kelvin_to_celsius as k_to_c def get_temp_colors(min_k, max_k): @@ -188,9 +188,9 @@ def render_zone(zi, zj): temp_label = ( f'({zi}, {zj}) ' - f'min {(temp_min - K_TO_C):3.1f} C, ' - f'max {(temp_max - K_TO_C):3.1f} C, ' - f'avg {(temp_avg - K_TO_C):3.1f} C' + f'min {k_to_c(temp_min):3.1f} C, ' + f'max {k_to_c(temp_max):3.1f} C, ' + f'avg {k_to_c(temp_avg):3.1f} C' ) ax.text( @@ -273,7 +273,7 @@ def render_diffuser(i, j, q): label = ( f"Local time {current_time.strftime('%Y-%m-%d %H:%M')}, " - f'Ambient temp {(ambient_temp - K_TO_C):3.1f} C' + f'Ambient temp {k_to_c(ambient_temp):3.1f} C' ) ax.text( 0.01, @@ -294,7 +294,7 @@ def plot_zone_temp_timeline(ax1, schedule, temps_timeseries_df, end_timestamp): ) for _, row in setpoint_windows.iterrows(): left = mdates.date2num(row['start_time']) - bottom = row['heating_setpoint'] - K_TO_C + bottom = k_to_c(row['heating_setpoint']) width = mdates.date2num(row['end_time']) - left height = row['cooling_setpoint'] - row['heating_setpoint'] face_color = 'white' @@ -314,7 +314,7 @@ def plot_zone_temp_timeline(ax1, schedule, temps_timeseries_df, end_timestamp): for zone in zone_temps_cols: ax1.plot( temps_timeseries_df.index, - temps_timeseries_df[zone] - K_TO_C, + k_to_c(temps_timeseries_df[zone]), color='yellow', marker=None, alpha=1, @@ -324,7 +324,7 @@ def plot_zone_temp_timeline(ax1, schedule, temps_timeseries_df, end_timestamp): ax1.plot( temps_timeseries_df.index, - temps_timeseries_df['ambient'] - K_TO_C, + k_to_c(temps_timeseries_df['ambient']), color='blue', marker=None, alpha=1, From 4ac81814e1995ef560c4e26cb8b9b2fa4e48dd6d Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 24 Jun 2025 19:32:20 +0000 Subject: [PATCH 12/34] Refactor temp conversion tests --- .../utils/data_processing_test.py | 19 --- smart_control/utils/conversion_utils_test.py | 109 +++++++++--------- 2 files changed, 56 insertions(+), 72 deletions(-) delete mode 100644 smart_control/reinforcement_learning/utils/data_processing_test.py diff --git a/smart_control/reinforcement_learning/utils/data_processing_test.py b/smart_control/reinforcement_learning/utils/data_processing_test.py deleted file mode 100644 index a0952c38..00000000 --- a/smart_control/reinforcement_learning/utils/data_processing_test.py +++ /dev/null @@ -1,19 +0,0 @@ -"""Tests for reinforcement learning data processing utils.""" - -from absl.testing import absltest - -from smart_control.reinforcement_learning.utils.data_processing import convert_celsius_to_kelvin -from smart_control.reinforcement_learning.utils.data_processing import convert_kelvin_to_celsius - - -class TestTempConversions(absltest.TestCase): - - def test_c_to_k(self): - self.assertEqual(convert_celsius_to_kelvin(0), 273.15) - - def test_k_to_c(self): - self.assertEqual(convert_kelvin_to_celsius(273.15), 0) - - -if __name__ == '__main__': - absltest.main() diff --git a/smart_control/utils/conversion_utils_test.py b/smart_control/utils/conversion_utils_test.py index 93a63885..daaedfb0 100644 --- a/smart_control/utils/conversion_utils_test.py +++ b/smart_control/utils/conversion_utils_test.py @@ -65,59 +65,6 @@ def test_get_radian_dow(self, current_time, expected_radian): expected_radian, ) - @parameterized.parameters( - (32.0, 273.15), (-10.0, 249.817), (70.0, 294.261), (110.0, 316.483) - ) - def test_kelvin_to_fahrenheit(self, fahrenheit, kelvin): - self.assertAlmostEqual( - fahrenheit, conversion_utils.kelvin_to_fahrenheit(kelvin), places=2 - ) - - def test_kelvin_to_fahrenheit_invalid(self): - with self.assertRaises(ValueError): - _ = conversion_utils.kelvin_to_fahrenheit(0.0) - - @parameterized.parameters( - (32.0, 273.15), (-10.0, 249.817), (70.0, 294.261), (110.0, 316.483) - ) - def test_fahrenheit_to_kelvin(self, fahrenheit, kelvin): - self.assertAlmostEqual( - kelvin, conversion_utils.fahrenheit_to_kelvin(fahrenheit), places=2 - ) - - def test_fahrenheit_to_kelvin_invalid(self): - with self.assertRaises(ValueError): - _ = conversion_utils.fahrenheit_to_kelvin(-495.67) - - KELVIN_AND_CELSIUS_FLOAT_PARAMS = [ - # (kelvin, celsius) - (50.0, -223.15), - (0.0, -273.15), # Absolute zero in Celsius - (-50.0, -323.15), - ] - - @parameterized.parameters(KELVIN_AND_CELSIUS_FLOAT_PARAMS) - def test_kelvin_to_celsius_floats(self, kelvin, celsius): - self.assertAlmostEqual(k_to_c(kelvin), celsius, places=10) - - @parameterized.parameters(KELVIN_AND_CELSIUS_FLOAT_PARAMS) - def test_celsius_to_kelvin_floats(self, kelvin, celsius): - self.assertAlmostEqual(c_to_k(celsius), kelvin, places=10) - - KELVIN_AND_CELSIUS_SERIES_PARAMS = [ - (pd.Series([50.0, 0, -50]), pd.Series([-223.15, -273.15, -323.15])), - ] - - @parameterized.parameters(KELVIN_AND_CELSIUS_SERIES_PARAMS) - def test_kelvin_to_celsius_series(self, kelvin_series, celsius_series): - with self.subTest('Kelvin to Celsius series'): - pd.testing.assert_series_equal(k_to_c(kelvin_series), celsius_series) - - @parameterized.parameters(KELVIN_AND_CELSIUS_SERIES_PARAMS) - def test_celsius_to_kelvin_series(self, kelvin_series, celsius_series): - with self.subTest('Kelvin to Celsius series'): - pd.testing.assert_series_equal(c_to_k(celsius_series), kelvin_series) - @parameterized.parameters( (pd.Timestamp('2021-09-27 00:00:00+01'), 0), (pd.Timestamp('2021-10-10 23:59:59-07'), 6.28311258512742), @@ -182,5 +129,61 @@ def test_get_reward_info_energy_use(self): self.assertAlmostEqual(value, energy_use[field], places=5) +class TemperatureConversionTest(parameterized.TestCase): + + @parameterized.parameters( + (32.0, 273.15), (-10.0, 249.817), (70.0, 294.261), (110.0, 316.483) + ) + def test_kelvin_to_fahrenheit(self, fahrenheit, kelvin): + self.assertAlmostEqual( + fahrenheit, conversion_utils.kelvin_to_fahrenheit(kelvin), places=2 + ) + + def test_kelvin_to_fahrenheit_invalid(self): + with self.assertRaises(ValueError): + _ = conversion_utils.kelvin_to_fahrenheit(0.0) + + @parameterized.parameters( + (32.0, 273.15), (-10.0, 249.817), (70.0, 294.261), (110.0, 316.483) + ) + def test_fahrenheit_to_kelvin(self, fahrenheit, kelvin): + self.assertAlmostEqual( + kelvin, conversion_utils.fahrenheit_to_kelvin(fahrenheit), places=2 + ) + + def test_fahrenheit_to_kelvin_invalid(self): + with self.assertRaises(ValueError): + _ = conversion_utils.fahrenheit_to_kelvin(-495.67) + + KELVIN_AND_CELSIUS_FLOAT_PARAMS = [ + # (kelvin, celsius) + (50.0, -223.15), + (0.0, -273.15), # Absolute zero in Celsius + (-50.0, -323.15), + ] + + @parameterized.parameters(KELVIN_AND_CELSIUS_FLOAT_PARAMS) + def test_kelvin_to_celsius_floats(self, kelvin, celsius): + self.assertAlmostEqual(k_to_c(kelvin), celsius, places=10) + + @parameterized.parameters(KELVIN_AND_CELSIUS_FLOAT_PARAMS) + def test_celsius_to_kelvin_floats(self, kelvin, celsius): + self.assertAlmostEqual(c_to_k(celsius), kelvin, places=10) + + KELVIN_AND_CELSIUS_SERIES_PARAMS = [ + (pd.Series([50.0, 0, -50]), pd.Series([-223.15, -273.15, -323.15])), + ] + + @parameterized.parameters(KELVIN_AND_CELSIUS_SERIES_PARAMS) + def test_kelvin_to_celsius_series(self, kelvin_series, celsius_series): + with self.subTest('Kelvin to Celsius series'): + pd.testing.assert_series_equal(k_to_c(kelvin_series), celsius_series) + + @parameterized.parameters(KELVIN_AND_CELSIUS_SERIES_PARAMS) + def test_celsius_to_kelvin_series(self, kelvin_series, celsius_series): + with self.subTest('Kelvin to Celsius series'): + pd.testing.assert_series_equal(c_to_k(celsius_series), kelvin_series) + + if __name__ == '__main__': absltest.main() From 959728b65558409338e5fe6bdff5075ddb607cdc Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 24 Jun 2025 19:38:26 +0000 Subject: [PATCH 13/34] Review eval script --- smart_control/reinforcement_learning/scripts/eval.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/smart_control/reinforcement_learning/scripts/eval.py b/smart_control/reinforcement_learning/scripts/eval.py index 74831433..e3f056ae 100644 --- a/smart_control/reinforcement_learning/scripts/eval.py +++ b/smart_control/reinforcement_learning/scripts/eval.py @@ -3,6 +3,7 @@ This script loads a saved policy and evaluates it on a configured environment. """ +import argparse from datetime import datetime import logging import os @@ -25,7 +26,6 @@ from smart_control.utils.constants import ROOT_DIR from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH -# Configure logging logging.basicConfig( level=logging.INFO, format="[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]", @@ -260,7 +260,6 @@ def evaluate_policy( if __name__ == "__main__": - import argparse parser = argparse.ArgumentParser( description="Evaluate a trained reinforcement learning policy" @@ -270,9 +269,8 @@ def evaluate_policy( type=str, required=True, help=( - "Path to the directory containing the saved policy. To " - " use" - " schedule policy, just type `schedule`" + "Path to the directory containing the saved policy. To use schedule" + " policy, just type `schedule`" ), ) parser.add_argument( From e29eeb11f3eda515924d7b9df05f17cde740072c Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 24 Jun 2025 20:18:02 +0000 Subject: [PATCH 14/34] Remove redundant variable setting --- .../reinforcement_learning/observers/rendering_observer.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/smart_control/reinforcement_learning/observers/rendering_observer.py b/smart_control/reinforcement_learning/observers/rendering_observer.py index a011ee96..601b7e92 100644 --- a/smart_control/reinforcement_learning/observers/rendering_observer.py +++ b/smart_control/reinforcement_learning/observers/rendering_observer.py @@ -580,5 +580,3 @@ def reset(self) -> None: self._counter = 0 self._cumulative_reward = 0.0 self._start_time = None - self._cumulative_reward = 0.0 - self._start_time = None From b1a48ad7d6ad4364d1150fbc653a1a2168a91c4e Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 24 Jun 2025 20:45:57 +0000 Subject: [PATCH 15/34] Fix failing test --- smart_control/environment/environment_test.py | 7 ++++--- smart_control/environment/environment_test_utils.py | 13 ++++++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/smart_control/environment/environment_test.py b/smart_control/environment/environment_test.py index 648bcbfe..ae43d14f 100644 --- a/smart_control/environment/environment_test.py +++ b/smart_control/environment/environment_test.py @@ -66,13 +66,13 @@ class EnvironmentTest(parameterized.TestCase, tf.test.TestCase): 2.236067, ), ) - def test_comput_actions_regularization_cost_valid( + def test_compute_actions_regularization_cost_valid( self, action_history, expected ): cost = environment.compute_action_regularization_cost(action_history) self.assertAlmostEqual(expected, cost, places=3) - def test_comput_actions_regularization_cost_invalid(self): + def test_compute_actions_regularization_cost_invalid(self): action_history = [np.array([1, 0]), np.array([1, 0, 1])] with self.assertRaises(ValueError): _ = environment.compute_action_regularization_cost(action_history) @@ -705,7 +705,7 @@ def test_step(self): (pd.Timedelta(1, unit="minute")), (pd.Timedelta(1, unit="hour")), ) - def test_validate_environment(self): + def test_validate_environment(self, step_interval): class TerminatingEnv(environment.Environment): """Environment that terminates after a fixed number of steps. @@ -737,6 +737,7 @@ def _step(self, action) -> ts.TimeStep: return ts.termination(env._get_observation(), reward=0.0) building = environment_test_utils.SimpleBuilding() + building.time_step_sec = step_interval.seconds reward_function = environment_test_utils.SimpleRewardFunction() action_config = self._create_bounded_action_config(200, 300) obs_normalizer = self._create_observation_normalizer() diff --git a/smart_control/environment/environment_test_utils.py b/smart_control/environment/environment_test_utils.py index ff64178a..03b805d7 100644 --- a/smart_control/environment/environment_test_utils.py +++ b/smart_control/environment/environment_test_utils.py @@ -36,6 +36,8 @@ def __init__(self): self.reset_called = False self.step_count = 0 + self._time_step_sec = 300 # allow setting of the property + @property def reward_info(self) -> smart_control_reward_pb2.RewardInfo: """Returns a message with data to compute the instantaneous reward.""" @@ -175,7 +177,16 @@ def num_occupants(self) -> int: @property def time_step_sec(self) -> float: - return 300.0 + return self._time_step_sec + + @time_step_sec.setter + def time_step_sec(self, value: float): + """Allows setting of the time_step_sec property like: + building.time_step_sec = 500 + """ + if value <= 0: + raise ValueError("time_step_sec must be a positive value.") + self._time_step_sec = value class SimpleRewardFunction(base_reward_function.BaseRewardFunction): From 8031d663a9856f71c1e93d65385aa468c9982edf Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Thu, 26 Jun 2025 20:42:02 +0000 Subject: [PATCH 16/34] Repro generate configs script; use absl flags because argparse not working --- docs/api/reinforcement_learning/scripts.md | 4 + docs/guides/reinforcement_learning/scripts.md | 67 ++ poetry.lock | 810 ++++++++++-------- pyproject.toml | 1 + .../scripts/generate_gin_config_files.py | 189 ---- .../scripts/generate_gin_configs.py | 242 ++++++ .../scripts/generate_gin_configs_test.py | 52 ++ .../scripts/populate_starter_buffer.py | 6 +- .../reinforcement_learning/scripts/train.py | 5 - .../reinforcement_learning/utils/constants.py | 2 +- 10 files changed, 812 insertions(+), 566 deletions(-) create mode 100644 docs/guides/reinforcement_learning/scripts.md delete mode 100644 smart_control/reinforcement_learning/scripts/generate_gin_config_files.py create mode 100644 smart_control/reinforcement_learning/scripts/generate_gin_configs.py create mode 100644 smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py diff --git a/docs/api/reinforcement_learning/scripts.md b/docs/api/reinforcement_learning/scripts.md index 7cadbd22..3f4cc9b8 100644 --- a/docs/api/reinforcement_learning/scripts.md +++ b/docs/api/reinforcement_learning/scripts.md @@ -1,5 +1,9 @@ # Scripts +::: smart_control.reinforcement_learning.scripts.generate_gin_configs + ::: smart_control.reinforcement_learning.scripts.populate_starter_buffer ::: smart_control.reinforcement_learning.scripts.train + +::: smart_control.reinforcement_learning.scripts.eval diff --git a/docs/guides/reinforcement_learning/scripts.md b/docs/guides/reinforcement_learning/scripts.md new file mode 100644 index 00000000..30c23b4f --- /dev/null +++ b/docs/guides/reinforcement_learning/scripts.md @@ -0,0 +1,67 @@ +# Reinforcement Learning Scripts + +## Configuration Generation + +```sh +python -m smart_control.reinforcement_learning.scripts.generate_gin_configs +``` + +```sh +python -m smart_control.reinforcement_learning.scripts.generate_gin_configs \ + /home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/sim_config.gin \ + --output-dir /home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs \ + --time-steps 900 \ + --num-days 14 \ + --start-timestamps 2023-07-21,2023-08-21,2023-10-21,2023-11-21 \ +``` + +```sh +python scripts/generate_gin_config_files.py /home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/sim_config.gin \ + --output-dir /home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs \ + --time-steps 300,600,900 \ + --num-days 1,7,14 \ + --start-timestamps 2023-07-06,2023-08-06,2023-10-06 +``` + +## Starter Buffer Population + +```sh +python -m smart_control.reinforcement_learning.scripts.populate_starter_buffer +``` + +```sh +python -m smart_control.reinforcement_learning.scripts.populate_starter_buffer \ + --buffer-name default-starter-buffer +``` + +## Training + +```sh +python -m smart_control.reinforcement_learning.scripts.train \ + --starter-buffer-path path/to/the/starter/buffer + --experiment-name my-experiment-1 +``` + +```sh +python scripts/train.py \ + --starter-buffer-path data/starter_buffers/default_starter_buffer_seqlen2_exp6720/2025-04-04T06\:30\:49.808661634-04\:00/ \ + --experiment-name sac_multiple_episodes \ + --scenario-config-path "/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-14_starttimestamp-2023-07-06.gin" \ + "/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-14_starttimestamp-2023-08-06.gin" \ + "/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-14_starttimestamp-2023-10-06.gin" \ + "/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-14_starttimestamp-2023-11-06.gin" \ + --eval-scenario-config-path "/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-14_starttimestamp-2023-10-21.gin" +``` + +## Evaluation + +```sh +python -m smart_control.reinforcement_learning.scripts.eval +``` + +```sh +python scripts/eval.py + --policy-dir experiment_results/ddpg_train_run-july-6th_2025_04_07-12:50:40/policies/ + --gin-config /home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-14_starttimestamp-2023-11-06.gin + --experiment-name ddpg_train-summer_eval-winter +``` diff --git a/poetry.lock b/poetry.lock index 075faa08..0578d523 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2,14 +2,14 @@ [[package]] name = "absl-py" -version = "2.3.0" +version = "2.3.1" description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "absl_py-2.3.0-py3-none-any.whl", hash = "sha256:9824a48b654a306168f63e0d97714665f8490b8d89ec7bf2efc24bf67cf579b3"}, - {file = "absl_py-2.3.0.tar.gz", hash = "sha256:d96fda5c884f1b22178852f30ffa85766d50b99e00775ea626c23304f582fc4f"}, + {file = "absl_py-2.3.1-py3-none-any.whl", hash = "sha256:eeecf07f0c2a93ace0772c92e596ace6d3d3996c042b2128459aaae2a76de11d"}, + {file = "absl_py-2.3.1.tar.gz", hash = "sha256:a97820526f7fbfd2ec1bce83f3f25e3a14840dac0d8e02a0b71cd75db3f77fc9"}, ] [[package]] @@ -353,14 +353,14 @@ files = [ [[package]] name = "certifi" -version = "2025.6.15" +version = "2025.7.9" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" groups = ["main", "docs", "notebooks"] files = [ - {file = "certifi-2025.6.15-py3-none-any.whl", hash = "sha256:2e0c7ce7cb5d8f8634ca55d2ba7e6ec2689a2fd6537d8dec1296a477a4910057"}, - {file = "certifi-2025.6.15.tar.gz", hash = "sha256:d747aa5a8b9bbbb1bb8c22bb13e22bd1f18e9796defa16bab421f7f7a317323b"}, + {file = "certifi-2025.7.9-py3-none-any.whl", hash = "sha256:d842783a14f8fdd646895ac26f719a061408834473cfc10203f6a575beb15d39"}, + {file = "certifi-2025.7.9.tar.gz", hash = "sha256:c1d2ec05395148ee10cf672ffc28cd37ea0ab0d99f9cc74c43e588cbd111b079"}, ] [[package]] @@ -596,7 +596,7 @@ files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] -markers = {main = "sys_platform == \"win32\"", dev = "sys_platform == \"win32\" or platform_system == \"Windows\"", notebooks = "sys_platform == \"win32\""} +markers = {main = "sys_platform == \"win32\" or platform_system == \"Windows\"", dev = "sys_platform == \"win32\" or platform_system == \"Windows\"", notebooks = "sys_platform == \"win32\""} [[package]] name = "comm" @@ -993,54 +993,54 @@ test = ["pytest", "pytest-cov", "pytest-mpl", "pytest-subtests"] [[package]] name = "fonttools" -version = "4.58.4" +version = "4.58.5" description = "Tools to manipulate font files" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "fonttools-4.58.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:834542f13fee7625ad753b2db035edb674b07522fcbdd0ed9e9a9e2a1034467f"}, - {file = "fonttools-4.58.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2e6c61ce330142525296170cd65666e46121fc0d44383cbbcfa39cf8f58383df"}, - {file = "fonttools-4.58.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9c75f8faa29579c0fbf29b56ae6a3660c6c025f3b671803cb6a9caa7e4e3a98"}, - {file = "fonttools-4.58.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:88dedcedbd5549e35b2ea3db3de02579c27e62e51af56779c021e7b33caadd0e"}, - {file = "fonttools-4.58.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae80a895adab43586f4da1521d58fd4f4377cef322ee0cc205abcefa3a5effc3"}, - {file = "fonttools-4.58.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0d3acc7f0d151da116e87a182aefb569cf0a3c8e0fd4c9cd0a7c1e7d3e7adb26"}, - {file = "fonttools-4.58.4-cp310-cp310-win32.whl", hash = "sha256:1244f69686008e7e8d2581d9f37eef330a73fee3843f1107993eb82c9d306577"}, - {file = "fonttools-4.58.4-cp310-cp310-win_amd64.whl", hash = "sha256:2a66c0af8a01eb2b78645af60f3b787de5fe5eb1fd8348163715b80bdbfbde1f"}, - {file = "fonttools-4.58.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a3841991c9ee2dc0562eb7f23d333d34ce81e8e27c903846f0487da21e0028eb"}, - {file = "fonttools-4.58.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c98f91b6a9604e7ffb5ece6ea346fa617f967c2c0944228801246ed56084664"}, - {file = "fonttools-4.58.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab9f891eb687ddf6a4e5f82901e00f992e18012ca97ab7acd15f13632acd14c1"}, - {file = "fonttools-4.58.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:891c5771e8f0094b7c0dc90eda8fc75e72930b32581418f2c285a9feedfd9a68"}, - {file = "fonttools-4.58.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:43ba4d9646045c375d22e3473b7d82b18b31ee2ac715cd94220ffab7bc2d5c1d"}, - {file = "fonttools-4.58.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33d19f16e6d2ffd6669bda574a6589941f6c99a8d5cfb9f464038244c71555de"}, - {file = "fonttools-4.58.4-cp311-cp311-win32.whl", hash = "sha256:b59e5109b907da19dc9df1287454821a34a75f2632a491dd406e46ff432c2a24"}, - {file = "fonttools-4.58.4-cp311-cp311-win_amd64.whl", hash = "sha256:3d471a5b567a0d1648f2e148c9a8bcf00d9ac76eb89e976d9976582044cc2509"}, - {file = "fonttools-4.58.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:462211c0f37a278494e74267a994f6be9a2023d0557aaa9ecbcbfce0f403b5a6"}, - {file = "fonttools-4.58.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0c7a12fb6f769165547f00fcaa8d0df9517603ae7e04b625e5acb8639809b82d"}, - {file = "fonttools-4.58.4-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2d42c63020a922154add0a326388a60a55504629edc3274bc273cd3806b4659f"}, - {file = "fonttools-4.58.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8f2b4e6fd45edc6805f5f2c355590b092ffc7e10a945bd6a569fc66c1d2ae7aa"}, - {file = "fonttools-4.58.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f155b927f6efb1213a79334e4cb9904d1e18973376ffc17a0d7cd43d31981f1e"}, - {file = "fonttools-4.58.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e38f687d5de97c7fb7da3e58169fb5ba349e464e141f83c3c2e2beb91d317816"}, - {file = "fonttools-4.58.4-cp312-cp312-win32.whl", hash = "sha256:636c073b4da9db053aa683db99580cac0f7c213a953b678f69acbca3443c12cc"}, - {file = "fonttools-4.58.4-cp312-cp312-win_amd64.whl", hash = "sha256:82e8470535743409b30913ba2822e20077acf9ea70acec40b10fcf5671dceb58"}, - {file = "fonttools-4.58.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5f4a64846495c543796fa59b90b7a7a9dff6839bd852741ab35a71994d685c6d"}, - {file = "fonttools-4.58.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e80661793a5d4d7ad132a2aa1eae2e160fbdbb50831a0edf37c7c63b2ed36574"}, - {file = "fonttools-4.58.4-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fe5807fc64e4ba5130f1974c045a6e8d795f3b7fb6debfa511d1773290dbb76b"}, - {file = "fonttools-4.58.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b610b9bef841cb8f4b50472494158b1e347d15cad56eac414c722eda695a6cfd"}, - {file = "fonttools-4.58.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2daa7f0e213c38f05f054eb5e1730bd0424aebddbeac094489ea1585807dd187"}, - {file = "fonttools-4.58.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:66cccb6c0b944496b7f26450e9a66e997739c513ffaac728d24930df2fd9d35b"}, - {file = "fonttools-4.58.4-cp313-cp313-win32.whl", hash = "sha256:94d2aebb5ca59a5107825520fde596e344652c1f18170ef01dacbe48fa60c889"}, - {file = "fonttools-4.58.4-cp313-cp313-win_amd64.whl", hash = "sha256:b554bd6e80bba582fd326ddab296e563c20c64dca816d5e30489760e0c41529f"}, - {file = "fonttools-4.58.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ca773fe7812e4e1197ee4e63b9691e89650ab55f679e12ac86052d2fe0d152cd"}, - {file = "fonttools-4.58.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e31289101221910f44245472e02b1a2f7d671c6d06a45c07b354ecb25829ad92"}, - {file = "fonttools-4.58.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90c9e3c01475bb9602cb617f69f02c4ba7ab7784d93f0b0d685e84286f4c1a10"}, - {file = "fonttools-4.58.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e00a826f2bc745a010341ac102082fe5e3fb9f0861b90ed9ff32277598813711"}, - {file = "fonttools-4.58.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bc75e72e9d2a4ad0935c59713bd38679d51c6fefab1eadde80e3ed4c2a11ea84"}, - {file = "fonttools-4.58.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f57a795e540059ce3de68508acfaaf177899b39c36ef0a2833b2308db98c71f1"}, - {file = "fonttools-4.58.4-cp39-cp39-win32.whl", hash = "sha256:a7d04f64c88b48ede655abcf76f2b2952f04933567884d99be7c89e0a4495131"}, - {file = "fonttools-4.58.4-cp39-cp39-win_amd64.whl", hash = "sha256:5a8bc5dfd425c89b1c38380bc138787b0a830f761b82b37139aa080915503b69"}, - {file = "fonttools-4.58.4-py3-none-any.whl", hash = "sha256:a10ce13a13f26cbb9f37512a4346bb437ad7e002ff6fa966a7ce7ff5ac3528bd"}, - {file = "fonttools-4.58.4.tar.gz", hash = "sha256:928a8009b9884ed3aae17724b960987575155ca23c6f0b8146e400cc9e0d44ba"}, + {file = "fonttools-4.58.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d500d399aa4e92d969a0d21052696fa762385bb23c3e733703af4a195ad9f34c"}, + {file = "fonttools-4.58.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b00530b84f87792891874938bd42f47af2f7f4c2a1d70466e6eb7166577853ab"}, + {file = "fonttools-4.58.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c5579fb3744dfec151b5c29b35857df83e01f06fe446e8c2ebaf1effd7e6cdce"}, + {file = "fonttools-4.58.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adf440deecfcc2390998e649156e3bdd0b615863228c484732dc06ac04f57385"}, + {file = "fonttools-4.58.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a81769fc4d473c808310c9ed91fbe01b67f615e3196fb9773e093939f59e6783"}, + {file = "fonttools-4.58.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0162a6a37b0ca70d8505311d541e291cd6cab54d1a986ae3d2686c56c0581e8f"}, + {file = "fonttools-4.58.5-cp310-cp310-win32.whl", hash = "sha256:1cde303422198fdc7f502dbdf1bf65306166cdb9446debd6c7fb826b4d66a530"}, + {file = "fonttools-4.58.5-cp310-cp310-win_amd64.whl", hash = "sha256:75cf8c2812c898dd3d70d62b2b768df4eeb524a83fb987a512ddb3863d6a8c54"}, + {file = "fonttools-4.58.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cda226253bf14c559bc5a17c570d46abd70315c9a687d91c0e01147f87736182"}, + {file = "fonttools-4.58.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:83a96e4a4e65efd6c098da549ec34f328f08963acd2d7bc910ceba01d2dc73e6"}, + {file = "fonttools-4.58.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2d172b92dff59ef8929b4452d5a7b19b8e92081aa87bfb2d82b03b1ff14fc667"}, + {file = "fonttools-4.58.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0bfddfd09aafbbfb3bd98ae67415fbe51eccd614c17db0c8844fe724fbc5d43d"}, + {file = "fonttools-4.58.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cfde5045f1bc92ad11b4b7551807564045a1b38cb037eb3c2bc4e737cd3a8d0f"}, + {file = "fonttools-4.58.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3515ac47a9a5ac025d2899d195198314023d89492340ba86e4ba79451f7518a8"}, + {file = "fonttools-4.58.5-cp311-cp311-win32.whl", hash = "sha256:9f7e2ab9c10b6811b4f12a0768661325a48e664ec0a0530232c1605896a598db"}, + {file = "fonttools-4.58.5-cp311-cp311-win_amd64.whl", hash = "sha256:126c16ec4a672c9cb5c1c255dc438d15436b470afc8e9cac25a2d39dd2dc26eb"}, + {file = "fonttools-4.58.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c3af3fefaafb570a03051a0d6899b8374dcf8e6a4560e42575843aef33bdbad6"}, + {file = "fonttools-4.58.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:688137789dbd44e8757ad77b49a771539d8069195ffa9a8bcf18176e90bbd86d"}, + {file = "fonttools-4.58.5-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2af65836cf84cd7cb882d0b353bdc73643a497ce23b7414c26499bb8128ca1af"}, + {file = "fonttools-4.58.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d2d79cfeb456bf438cb9fb87437634d4d6f228f27572ca5c5355e58472d5519d"}, + {file = "fonttools-4.58.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0feac9dda9a48a7a342a593f35d50a5cee2dbd27a03a4c4a5192834a4853b204"}, + {file = "fonttools-4.58.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36555230e168511e83ad8637232268649634b8dfff6ef58f46e1ebc057a041ad"}, + {file = "fonttools-4.58.5-cp312-cp312-win32.whl", hash = "sha256:26ec05319353842d127bd02516eacb25b97ca83966e40e9ad6fab85cab0576f4"}, + {file = "fonttools-4.58.5-cp312-cp312-win_amd64.whl", hash = "sha256:778a632e538f82c1920579c0c01566a8f83dc24470c96efbf2fbac698907f569"}, + {file = "fonttools-4.58.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f4b6f1360da13cecc88c0d60716145b31e1015fbe6a59e32f73a4404e2ea92cf"}, + {file = "fonttools-4.58.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4a036822e915692aa2c03e2decc60f49a8190f8111b639c947a4f4e5774d0d7a"}, + {file = "fonttools-4.58.5-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a6d7709fcf4577b0f294ee6327088884ca95046e1eccde87c53bbba4d5008541"}, + {file = "fonttools-4.58.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b9b5099ca99b79d6d67162778b1b1616fc0e1de02c1a178248a0da8d78a33852"}, + {file = "fonttools-4.58.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3f2c05a8d82a4d15aebfdb3506e90793aea16e0302cec385134dd960647a36c0"}, + {file = "fonttools-4.58.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79f0c4b1cc63839b61deeac646d8dba46f8ed40332c2ac1b9997281462c2e4ba"}, + {file = "fonttools-4.58.5-cp313-cp313-win32.whl", hash = "sha256:a1a9a2c462760976882131cbab7d63407813413a2d32cd699e86a1ff22bf7aa5"}, + {file = "fonttools-4.58.5-cp313-cp313-win_amd64.whl", hash = "sha256:bca61b14031a4b7dc87e14bf6ca34c275f8e4b9f7a37bc2fe746b532a924cf30"}, + {file = "fonttools-4.58.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:082410bc40014db55be5457836043f0dd1e6b3817c7d11a0aeb44eaa862890af"}, + {file = "fonttools-4.58.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0b0983be58d8c8acb11161fdd3b43d64015cef8c3d65ad9289a252243b236128"}, + {file = "fonttools-4.58.5-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5a0e28fb6abc31ba45a2d11dc2fe826e5a074013d13b7b447b441e8236e5f1c"}, + {file = "fonttools-4.58.5-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d506652abc285934ee949a5f3a952c5d52a09257bc2ba44a92db3ec2804c76fe"}, + {file = "fonttools-4.58.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9e2d71676025dd74a21d682be36d4846aa03644c619f2c2d695a11a7262433f6"}, + {file = "fonttools-4.58.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb46a73759efc8a7eca40203843241cd3c79aa983ed7f7515548ed3d82073761"}, + {file = "fonttools-4.58.5-cp39-cp39-win32.whl", hash = "sha256:bf09f14d73a18c62eb9ad1cac98a37569241ba3cd5789cc578286c128cc29f7f"}, + {file = "fonttools-4.58.5-cp39-cp39-win_amd64.whl", hash = "sha256:8ddb7c0c3e91b187acc1bed31857376926569a18a348ac58d6a71eb8a6b22393"}, + {file = "fonttools-4.58.5-py3-none-any.whl", hash = "sha256:e48a487ed24d9b611c5c4b25db1e50e69e9854ca2670e39a3486ffcd98863ec4"}, + {file = "fonttools-4.58.5.tar.gz", hash = "sha256:b2a35b0a19f1837284b3a23dd64fd7761b8911d50911ecd2bdbaf5b2d1b5df9c"}, ] [package.extras] @@ -1210,67 +1210,67 @@ colorama = ">=0.4" [[package]] name = "grpcio" -version = "1.73.0" +version = "1.73.1" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "grpcio-1.73.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:d050197eeed50f858ef6c51ab09514856f957dba7b1f7812698260fc9cc417f6"}, - {file = "grpcio-1.73.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:ebb8d5f4b0200916fb292a964a4d41210de92aba9007e33d8551d85800ea16cb"}, - {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:c0811331b469e3f15dda5f90ab71bcd9681189a83944fd6dc908e2c9249041ef"}, - {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12787c791c3993d0ea1cc8bf90393647e9a586066b3b322949365d2772ba965b"}, - {file = "grpcio-1.73.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c17771e884fddf152f2a0df12478e8d02853e5b602a10a9a9f1f52fa02b1d32"}, - {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:275e23d4c428c26b51857bbd95fcb8e528783597207ec592571e4372b300a29f"}, - {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:9ffc972b530bf73ef0f948f799482a1bf12d9b6f33406a8e6387c0ca2098a833"}, - {file = "grpcio-1.73.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d269df64aff092b2cec5e015d8ae09c7e90888b5c35c24fdca719a2c9f35"}, - {file = "grpcio-1.73.0-cp310-cp310-win32.whl", hash = "sha256:072d8154b8f74300ed362c01d54af8b93200c1a9077aeaea79828d48598514f1"}, - {file = "grpcio-1.73.0-cp310-cp310-win_amd64.whl", hash = "sha256:ce953d9d2100e1078a76a9dc2b7338d5415924dc59c69a15bf6e734db8a0f1ca"}, - {file = "grpcio-1.73.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:51036f641f171eebe5fa7aaca5abbd6150f0c338dab3a58f9111354240fe36ec"}, - {file = "grpcio-1.73.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:d12bbb88381ea00bdd92c55aff3da3391fd85bc902c41275c8447b86f036ce0f"}, - {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:483c507c2328ed0e01bc1adb13d1eada05cc737ec301d8e5a8f4a90f387f1790"}, - {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c201a34aa960c962d0ce23fe5f423f97e9d4b518ad605eae6d0a82171809caaa"}, - {file = "grpcio-1.73.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859f70c8e435e8e1fa060e04297c6818ffc81ca9ebd4940e180490958229a45a"}, - {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e2459a27c6886e7e687e4e407778425f3c6a971fa17a16420227bda39574d64b"}, - {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e0084d4559ee3dbdcce9395e1bc90fdd0262529b32c417a39ecbc18da8074ac7"}, - {file = "grpcio-1.73.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef5fff73d5f724755693a464d444ee0a448c6cdfd3c1616a9223f736c622617d"}, - {file = "grpcio-1.73.0-cp311-cp311-win32.whl", hash = "sha256:965a16b71a8eeef91fc4df1dc40dc39c344887249174053814f8a8e18449c4c3"}, - {file = "grpcio-1.73.0-cp311-cp311-win_amd64.whl", hash = "sha256:b71a7b4483d1f753bbc11089ff0f6fa63b49c97a9cc20552cded3fcad466d23b"}, - {file = "grpcio-1.73.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:fb9d7c27089d9ba3746f18d2109eb530ef2a37452d2ff50f5a6696cd39167d3b"}, - {file = "grpcio-1.73.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:128ba2ebdac41e41554d492b82c34586a90ebd0766f8ebd72160c0e3a57b9155"}, - {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:068ecc415f79408d57a7f146f54cdf9f0acb4b301a52a9e563973dc981e82f3d"}, - {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ddc1cfb2240f84d35d559ade18f69dcd4257dbaa5ba0de1a565d903aaab2968"}, - {file = "grpcio-1.73.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e53007f70d9783f53b41b4cf38ed39a8e348011437e4c287eee7dd1d39d54b2f"}, - {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4dd8d8d092efede7d6f48d695ba2592046acd04ccf421436dd7ed52677a9ad29"}, - {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:70176093d0a95b44d24baa9c034bb67bfe2b6b5f7ebc2836f4093c97010e17fd"}, - {file = "grpcio-1.73.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:085ebe876373ca095e24ced95c8f440495ed0b574c491f7f4f714ff794bbcd10"}, - {file = "grpcio-1.73.0-cp312-cp312-win32.whl", hash = "sha256:cfc556c1d6aef02c727ec7d0016827a73bfe67193e47c546f7cadd3ee6bf1a60"}, - {file = "grpcio-1.73.0-cp312-cp312-win_amd64.whl", hash = "sha256:bbf45d59d090bf69f1e4e1594832aaf40aa84b31659af3c5e2c3f6a35202791a"}, - {file = "grpcio-1.73.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:da1d677018ef423202aca6d73a8d3b2cb245699eb7f50eb5f74cae15a8e1f724"}, - {file = "grpcio-1.73.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:36bf93f6a657f37c131d9dd2c391b867abf1426a86727c3575393e9e11dadb0d"}, - {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:d84000367508ade791d90c2bafbd905574b5ced8056397027a77a215d601ba15"}, - {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c98ba1d928a178ce33f3425ff823318040a2b7ef875d30a0073565e5ceb058d9"}, - {file = "grpcio-1.73.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a73c72922dfd30b396a5f25bb3a4590195ee45ecde7ee068acb0892d2900cf07"}, - {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:10e8edc035724aba0346a432060fd192b42bd03675d083c01553cab071a28da5"}, - {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f5cdc332b503c33b1643b12ea933582c7b081957c8bc2ea4cc4bc58054a09288"}, - {file = "grpcio-1.73.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:07ad7c57233c2109e4ac999cb9c2710c3b8e3f491a73b058b0ce431f31ed8145"}, - {file = "grpcio-1.73.0-cp313-cp313-win32.whl", hash = "sha256:0eb5df4f41ea10bda99a802b2a292d85be28958ede2a50f2beb8c7fc9a738419"}, - {file = "grpcio-1.73.0-cp313-cp313-win_amd64.whl", hash = "sha256:38cf518cc54cd0c47c9539cefa8888549fcc067db0b0c66a46535ca8032020c4"}, - {file = "grpcio-1.73.0-cp39-cp39-linux_armv7l.whl", hash = "sha256:1284850607901cfe1475852d808e5a102133461ec9380bc3fc9ebc0686ee8e32"}, - {file = "grpcio-1.73.0-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:0e092a4b28eefb63eec00d09ef33291cd4c3a0875cde29aec4d11d74434d222c"}, - {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:33577fe7febffe8ebad458744cfee8914e0c10b09f0ff073a6b149a84df8ab8f"}, - {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:60813d8a16420d01fa0da1fc7ebfaaa49a7e5051b0337cd48f4f950eb249a08e"}, - {file = "grpcio-1.73.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a9c957dc65e5d474378d7bcc557e9184576605d4b4539e8ead6e351d7ccce20"}, - {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3902b71407d021163ea93c70c8531551f71ae742db15b66826cf8825707d2908"}, - {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1dd7fa7276dcf061e2d5f9316604499eea06b1b23e34a9380572d74fe59915a8"}, - {file = "grpcio-1.73.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2d1510c4ea473110cb46a010555f2c1a279d1c256edb276e17fa571ba1e8927c"}, - {file = "grpcio-1.73.0-cp39-cp39-win32.whl", hash = "sha256:d0a1517b2005ba1235a1190b98509264bf72e231215dfeef8db9a5a92868789e"}, - {file = "grpcio-1.73.0-cp39-cp39-win_amd64.whl", hash = "sha256:6228f7eb6d9f785f38b589d49957fca5df3d5b5349e77d2d89b14e390165344c"}, - {file = "grpcio-1.73.0.tar.gz", hash = "sha256:3af4c30918a7f0d39de500d11255f8d9da4f30e94a2033e70fe2a720e184bd8e"}, + {file = "grpcio-1.73.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:2d70f4ddd0a823436c2624640570ed6097e40935c9194482475fe8e3d9754d55"}, + {file = "grpcio-1.73.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:3841a8a5a66830261ab6a3c2a3dc539ed84e4ab019165f77b3eeb9f0ba621f26"}, + {file = "grpcio-1.73.1-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:628c30f8e77e0258ab788750ec92059fc3d6628590fb4b7cea8c102503623ed7"}, + {file = "grpcio-1.73.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:67a0468256c9db6d5ecb1fde4bf409d016f42cef649323f0a08a72f352d1358b"}, + {file = "grpcio-1.73.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68b84d65bbdebd5926eb5c53b0b9ec3b3f83408a30e4c20c373c5337b4219ec5"}, + {file = "grpcio-1.73.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c54796ca22b8349cc594d18b01099e39f2b7ffb586ad83217655781a350ce4da"}, + {file = "grpcio-1.73.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:75fc8e543962ece2f7ecd32ada2d44c0c8570ae73ec92869f9af8b944863116d"}, + {file = "grpcio-1.73.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6a6037891cd2b1dd1406b388660522e1565ed340b1fea2955b0234bdd941a862"}, + {file = "grpcio-1.73.1-cp310-cp310-win32.whl", hash = "sha256:cce7265b9617168c2d08ae570fcc2af4eaf72e84f8c710ca657cc546115263af"}, + {file = "grpcio-1.73.1-cp310-cp310-win_amd64.whl", hash = "sha256:6a2b372e65fad38842050943f42ce8fee00c6f2e8ea4f7754ba7478d26a356ee"}, + {file = "grpcio-1.73.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:ba2cea9f7ae4bc21f42015f0ec98f69ae4179848ad744b210e7685112fa507a1"}, + {file = "grpcio-1.73.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:d74c3f4f37b79e746271aa6cdb3a1d7e4432aea38735542b23adcabaaee0c097"}, + {file = "grpcio-1.73.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:5b9b1805a7d61c9e90541cbe8dfe0a593dfc8c5c3a43fe623701b6a01b01d710"}, + {file = "grpcio-1.73.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3215f69a0670a8cfa2ab53236d9e8026bfb7ead5d4baabe7d7dc11d30fda967"}, + {file = "grpcio-1.73.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc5eccfd9577a5dc7d5612b2ba90cca4ad14c6d949216c68585fdec9848befb1"}, + {file = "grpcio-1.73.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:dc7d7fd520614fce2e6455ba89791458020a39716951c7c07694f9dbae28e9c0"}, + {file = "grpcio-1.73.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:105492124828911f85127e4825d1c1234b032cb9d238567876b5515d01151379"}, + {file = "grpcio-1.73.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:610e19b04f452ba6f402ac9aa94eb3d21fbc94553368008af634812c4a85a99e"}, + {file = "grpcio-1.73.1-cp311-cp311-win32.whl", hash = "sha256:d60588ab6ba0ac753761ee0e5b30a29398306401bfbceffe7d68ebb21193f9d4"}, + {file = "grpcio-1.73.1-cp311-cp311-win_amd64.whl", hash = "sha256:6957025a4608bb0a5ff42abd75bfbb2ed99eda29d5992ef31d691ab54b753643"}, + {file = "grpcio-1.73.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:921b25618b084e75d424a9f8e6403bfeb7abef074bb6c3174701e0f2542debcf"}, + {file = "grpcio-1.73.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:277b426a0ed341e8447fbf6c1d6b68c952adddf585ea4685aa563de0f03df887"}, + {file = "grpcio-1.73.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:96c112333309493c10e118d92f04594f9055774757f5d101b39f8150f8c25582"}, + {file = "grpcio-1.73.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f48e862aed925ae987eb7084409a80985de75243389dc9d9c271dd711e589918"}, + {file = "grpcio-1.73.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83a6c2cce218e28f5040429835fa34a29319071079e3169f9543c3fbeff166d2"}, + {file = "grpcio-1.73.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:65b0458a10b100d815a8426b1442bd17001fdb77ea13665b2f7dc9e8587fdc6b"}, + {file = "grpcio-1.73.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:0a9f3ea8dce9eae9d7cb36827200133a72b37a63896e0e61a9d5ec7d61a59ab1"}, + {file = "grpcio-1.73.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:de18769aea47f18e782bf6819a37c1c528914bfd5683b8782b9da356506190c8"}, + {file = "grpcio-1.73.1-cp312-cp312-win32.whl", hash = "sha256:24e06a5319e33041e322d32c62b1e728f18ab8c9dbc91729a3d9f9e3ed336642"}, + {file = "grpcio-1.73.1-cp312-cp312-win_amd64.whl", hash = "sha256:303c8135d8ab176f8038c14cc10d698ae1db9c480f2b2823f7a987aa2a4c5646"}, + {file = "grpcio-1.73.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:b310824ab5092cf74750ebd8a8a8981c1810cb2b363210e70d06ef37ad80d4f9"}, + {file = "grpcio-1.73.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:8f5a6df3fba31a3485096ac85b2e34b9666ffb0590df0cd044f58694e6a1f6b5"}, + {file = "grpcio-1.73.1-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:052e28fe9c41357da42250a91926a3e2f74c046575c070b69659467ca5aa976b"}, + {file = "grpcio-1.73.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c0bf15f629b1497436596b1cbddddfa3234273490229ca29561209778ebe182"}, + {file = "grpcio-1.73.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ab860d5bfa788c5a021fba264802e2593688cd965d1374d31d2b1a34cacd854"}, + {file = "grpcio-1.73.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:ad1d958c31cc91ab050bd8a91355480b8e0683e21176522bacea225ce51163f2"}, + {file = "grpcio-1.73.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f43ffb3bd415c57224c7427bfb9e6c46a0b6e998754bfa0d00f408e1873dcbb5"}, + {file = "grpcio-1.73.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:686231cdd03a8a8055f798b2b54b19428cdf18fa1549bee92249b43607c42668"}, + {file = "grpcio-1.73.1-cp313-cp313-win32.whl", hash = "sha256:89018866a096e2ce21e05eabed1567479713ebe57b1db7cbb0f1e3b896793ba4"}, + {file = "grpcio-1.73.1-cp313-cp313-win_amd64.whl", hash = "sha256:4a68f8c9966b94dff693670a5cf2b54888a48a5011c5d9ce2295a1a1465ee84f"}, + {file = "grpcio-1.73.1-cp39-cp39-linux_armv7l.whl", hash = "sha256:b4adc97d2d7f5c660a5498bda978ebb866066ad10097265a5da0511323ae9f50"}, + {file = "grpcio-1.73.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:c45a28a0cfb6ddcc7dc50a29de44ecac53d115c3388b2782404218db51cb2df3"}, + {file = "grpcio-1.73.1-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:10af9f2ab98a39f5b6c1896c6fc2036744b5b41d12739d48bed4c3e15b6cf900"}, + {file = "grpcio-1.73.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:45cf17dcce5ebdb7b4fe9e86cb338fa99d7d1bb71defc78228e1ddf8d0de8cbb"}, + {file = "grpcio-1.73.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c502c2e950fc7e8bf05c047e8a14522ef7babac59abbfde6dbf46b7a0d9c71e"}, + {file = "grpcio-1.73.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6abfc0f9153dc4924536f40336f88bd4fe7bd7494f028675e2e04291b8c2c62a"}, + {file = "grpcio-1.73.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ed451a0e39c8e51eb1612b78686839efd1a920666d1666c1adfdb4fd51680c0f"}, + {file = "grpcio-1.73.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:07f08705a5505c9b5b0cbcbabafb96462b5a15b7236bbf6bbcc6b0b91e1cbd7e"}, + {file = "grpcio-1.73.1-cp39-cp39-win32.whl", hash = "sha256:ad5c958cc3d98bb9d71714dc69f1c13aaf2f4b53e29d4cc3f1501ef2e4d129b2"}, + {file = "grpcio-1.73.1-cp39-cp39-win_amd64.whl", hash = "sha256:42f0660bce31b745eb9d23f094a332d31f210dcadd0fc8e5be7e4c62a87ce86b"}, + {file = "grpcio-1.73.1.tar.gz", hash = "sha256:7fce2cd1c0c1116cf3850564ebfc3264fba75d3c74a7414373f1238ea365ef87"}, ] [package.extras] -protobuf = ["grpcio-tools (>=1.73.0)"] +protobuf = ["grpcio-tools (>=1.73.1)"] [[package]] name = "gym" @@ -1925,14 +1925,14 @@ test = ["jupyter-server (>=2.0.0)", "pytest (>=7.0)", "pytest-jupyter[server] (> [[package]] name = "jupyterlab" -version = "4.4.3" +version = "4.4.4" description = "JupyterLab computational environment" optional = false python-versions = ">=3.9" groups = ["notebooks"] files = [ - {file = "jupyterlab-4.4.3-py3-none-any.whl", hash = "sha256:164302f6d4b6c44773dfc38d585665a4db401a16e5296c37df5cba63904fbdea"}, - {file = "jupyterlab-4.4.3.tar.gz", hash = "sha256:a94c32fd7f8b93e82a49dc70a6ec45a5c18281ca2a7228d12765e4e210e5bca2"}, + {file = "jupyterlab-4.4.4-py3-none-any.whl", hash = "sha256:711611e4f59851152eb93316c3547c3ec6291f16bb455f1f4fa380d25637e0dd"}, + {file = "jupyterlab-4.4.4.tar.gz", hash = "sha256:163fee1ef702e0a057f75d2eed3ed1da8a986d59eb002cbeb6f0c2779e6cd153"}, ] [package.dependencies] @@ -2470,14 +2470,14 @@ pyyaml = ">=5.1" [[package]] name = "mkdocs-material" -version = "9.6.14" +version = "9.6.15" description = "Documentation that simply works" optional = false python-versions = ">=3.8" groups = ["docs"] files = [ - {file = "mkdocs_material-9.6.14-py3-none-any.whl", hash = "sha256:3b9cee6d3688551bf7a8e8f41afda97a3c39a12f0325436d76c86706114b721b"}, - {file = "mkdocs_material-9.6.14.tar.gz", hash = "sha256:39d795e90dce6b531387c255bd07e866e027828b7346d3eba5ac3de265053754"}, + {file = "mkdocs_material-9.6.15-py3-none-any.whl", hash = "sha256:ac969c94d4fe5eb7c924b6d2f43d7db41159ea91553d18a9afc4780c34f2717a"}, + {file = "mkdocs_material-9.6.15.tar.gz", hash = "sha256:64adf8fa8dba1a17905b6aee1894a5aafd966d4aeb44a11088519b0f5ca4f1b5"}, ] [package.dependencies] @@ -2709,19 +2709,19 @@ files = [ [[package]] name = "notebook" -version = "7.4.3" +version = "7.4.4" description = "Jupyter Notebook - A web-based notebook environment for interactive computing" optional = false python-versions = ">=3.8" groups = ["notebooks"] files = [ - {file = "notebook-7.4.3-py3-none-any.whl", hash = "sha256:9cdeee954e04101cadb195d90e2ab62b7c9286c1d4f858bf3bb54e40df16c0c3"}, - {file = "notebook-7.4.3.tar.gz", hash = "sha256:a1567481cd3853f2610ee0ecf5dfa12bb508e878ee8f92152c134ef7f0568a76"}, + {file = "notebook-7.4.4-py3-none-any.whl", hash = "sha256:32840f7f777b6bff79bb101159336e9b332bdbfba1495b8739e34d1d65cbc1c0"}, + {file = "notebook-7.4.4.tar.gz", hash = "sha256:392fd501e266f2fb3466c6fcd3331163a2184968cb5c5accf90292e01dfe528c"}, ] [package.dependencies] jupyter-server = ">=2.4.0,<3" -jupyterlab = ">=4.4.3,<4.5" +jupyterlab = ">=4.4.4,<4.5" jupyterlab-server = ">=2.27.1,<3" notebook-shim = ">=0.2,<0.3" tornado = ">=6.2.0" @@ -2890,54 +2890,54 @@ lint = ["black"] [[package]] name = "pandas" -version = "2.3.0" +version = "2.3.1" description = "Powerful data structures for data analysis, time series, and statistics" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pandas-2.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:625466edd01d43b75b1883a64d859168e4556261a5035b32f9d743b67ef44634"}, - {file = "pandas-2.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a6872d695c896f00df46b71648eea332279ef4077a409e2fe94220208b6bb675"}, - {file = "pandas-2.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4dd97c19bd06bc557ad787a15b6489d2614ddaab5d104a0310eb314c724b2d2"}, - {file = "pandas-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:034abd6f3db8b9880aaee98f4f5d4dbec7c4829938463ec046517220b2f8574e"}, - {file = "pandas-2.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23c2b2dc5213810208ca0b80b8666670eb4660bbfd9d45f58592cc4ddcfd62e1"}, - {file = "pandas-2.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:39ff73ec07be5e90330cc6ff5705c651ace83374189dcdcb46e6ff54b4a72cd6"}, - {file = "pandas-2.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:40cecc4ea5abd2921682b57532baea5588cc5f80f0231c624056b146887274d2"}, - {file = "pandas-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8adff9f138fc614347ff33812046787f7d43b3cef7c0f0171b3340cae333f6ca"}, - {file = "pandas-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e5f08eb9a445d07720776df6e641975665c9ea12c9d8a331e0f6890f2dcd76ef"}, - {file = "pandas-2.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa35c266c8cd1a67d75971a1912b185b492d257092bdd2709bbdebe574ed228d"}, - {file = "pandas-2.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a0cc77b0f089d2d2ffe3007db58f170dae9b9f54e569b299db871a3ab5bf46"}, - {file = "pandas-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c06f6f144ad0a1bf84699aeea7eff6068ca5c63ceb404798198af7eb86082e33"}, - {file = "pandas-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ed16339bc354a73e0a609df36d256672c7d296f3f767ac07257801aa064ff73c"}, - {file = "pandas-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:fa07e138b3f6c04addfeaf56cc7fdb96c3b68a3fe5e5401251f231fce40a0d7a"}, - {file = "pandas-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2eb4728a18dcd2908c7fccf74a982e241b467d178724545a48d0caf534b38ebf"}, - {file = "pandas-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9d8c3187be7479ea5c3d30c32a5d73d62a621166675063b2edd21bc47614027"}, - {file = "pandas-2.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ff730713d4c4f2f1c860e36c005c7cefc1c7c80c21c0688fd605aa43c9fcf09"}, - {file = "pandas-2.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba24af48643b12ffe49b27065d3babd52702d95ab70f50e1b34f71ca703e2c0d"}, - {file = "pandas-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:404d681c698e3c8a40a61d0cd9412cc7364ab9a9cc6e144ae2992e11a2e77a20"}, - {file = "pandas-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6021910b086b3ca756755e86ddc64e0ddafd5e58e076c72cb1585162e5ad259b"}, - {file = "pandas-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:094e271a15b579650ebf4c5155c05dcd2a14fd4fdd72cf4854b2f7ad31ea30be"}, - {file = "pandas-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c7e2fc25f89a49a11599ec1e76821322439d90820108309bf42130d2f36c983"}, - {file = "pandas-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c6da97aeb6a6d233fb6b17986234cc723b396b50a3c6804776351994f2a658fd"}, - {file = "pandas-2.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb32dc743b52467d488e7a7c8039b821da2826a9ba4f85b89ea95274f863280f"}, - {file = "pandas-2.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:213cd63c43263dbb522c1f8a7c9d072e25900f6975596f883f4bebd77295d4f3"}, - {file = "pandas-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1d2b33e68d0ce64e26a4acc2e72d747292084f4e8db4c847c6f5f6cbe56ed6d8"}, - {file = "pandas-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:430a63bae10b5086995db1b02694996336e5a8ac9a96b4200572b413dfdfccb9"}, - {file = "pandas-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:4930255e28ff5545e2ca404637bcc56f031893142773b3468dc021c6c32a1390"}, - {file = "pandas-2.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f925f1ef673b4bd0271b1809b72b3270384f2b7d9d14a189b12b7fc02574d575"}, - {file = "pandas-2.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78ad363ddb873a631e92a3c063ade1ecfb34cae71e9a2be6ad100f875ac1042"}, - {file = "pandas-2.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951805d146922aed8357e4cc5671b8b0b9be1027f0619cea132a9f3f65f2f09c"}, - {file = "pandas-2.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a881bc1309f3fce34696d07b00f13335c41f5f5a8770a33b09ebe23261cfc67"}, - {file = "pandas-2.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e1991bbb96f4050b09b5f811253c4f3cf05ee89a589379aa36cd623f21a31d6f"}, - {file = "pandas-2.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:bb3be958022198531eb7ec2008cfc78c5b1eed51af8600c6c5d9160d89d8d249"}, - {file = "pandas-2.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9efc0acbbffb5236fbdf0409c04edce96bec4bdaa649d49985427bd1ec73e085"}, - {file = "pandas-2.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:75651c14fde635e680496148a8526b328e09fe0572d9ae9b638648c46a544ba3"}, - {file = "pandas-2.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5be867a0541a9fb47a4be0c5790a4bccd5b77b92f0a59eeec9375fafc2aa14"}, - {file = "pandas-2.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84141f722d45d0c2a89544dd29d35b3abfc13d2250ed7e68394eda7564bd6324"}, - {file = "pandas-2.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f95a2aef32614ed86216d3c450ab12a4e82084e8102e355707a1d96e33d51c34"}, - {file = "pandas-2.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e0f51973ba93a9f97185049326d75b942b9aeb472bec616a129806facb129ebb"}, - {file = "pandas-2.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:b198687ca9c8529662213538a9bb1e60fa0bf0f6af89292eb68fea28743fcd5a"}, - {file = "pandas-2.3.0.tar.gz", hash = "sha256:34600ab34ebf1131a7613a260a61dbe8b62c188ec0ea4c296da7c9a06b004133"}, + {file = "pandas-2.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:22c2e866f7209ebc3a8f08d75766566aae02bcc91d196935a1d9e59c7b990ac9"}, + {file = "pandas-2.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3583d348546201aff730c8c47e49bc159833f971c2899d6097bce68b9112a4f1"}, + {file = "pandas-2.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f951fbb702dacd390561e0ea45cdd8ecfa7fb56935eb3dd78e306c19104b9b0"}, + {file = "pandas-2.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd05b72ec02ebfb993569b4931b2e16fbb4d6ad6ce80224a3ee838387d83a191"}, + {file = "pandas-2.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1b916a627919a247d865aed068eb65eb91a344b13f5b57ab9f610b7716c92de1"}, + {file = "pandas-2.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fe67dc676818c186d5a3d5425250e40f179c2a89145df477dd82945eaea89e97"}, + {file = "pandas-2.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:2eb789ae0274672acbd3c575b0598d213345660120a257b47b5dafdc618aec83"}, + {file = "pandas-2.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2b0540963d83431f5ce8870ea02a7430adca100cec8a050f0811f8e31035541b"}, + {file = "pandas-2.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fe7317f578c6a153912bd2292f02e40c1d8f253e93c599e82620c7f69755c74f"}, + {file = "pandas-2.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6723a27ad7b244c0c79d8e7007092d7c8f0f11305770e2f4cd778b3ad5f9f85"}, + {file = "pandas-2.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3462c3735fe19f2638f2c3a40bd94ec2dc5ba13abbb032dd2fa1f540a075509d"}, + {file = "pandas-2.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:98bcc8b5bf7afed22cc753a28bc4d9e26e078e777066bc53fac7904ddef9a678"}, + {file = "pandas-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4d544806b485ddf29e52d75b1f559142514e60ef58a832f74fb38e48d757b299"}, + {file = "pandas-2.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b3cd4273d3cb3707b6fffd217204c52ed92859533e31dc03b7c5008aa933aaab"}, + {file = "pandas-2.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:689968e841136f9e542020698ee1c4fbe9caa2ed2213ae2388dc7b81721510d3"}, + {file = "pandas-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:025e92411c16cbe5bb2a4abc99732a6b132f439b8aab23a59fa593eb00704232"}, + {file = "pandas-2.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b7ff55f31c4fcb3e316e8f7fa194566b286d6ac430afec0d461163312c5841e"}, + {file = "pandas-2.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7dcb79bf373a47d2a40cf7232928eb7540155abbc460925c2c96d2d30b006eb4"}, + {file = "pandas-2.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:56a342b231e8862c96bdb6ab97170e203ce511f4d0429589c8ede1ee8ece48b8"}, + {file = "pandas-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ca7ed14832bce68baef331f4d7f294411bed8efd032f8109d690df45e00c4679"}, + {file = "pandas-2.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:ac942bfd0aca577bef61f2bc8da8147c4ef6879965ef883d8e8d5d2dc3e744b8"}, + {file = "pandas-2.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9026bd4a80108fac2239294a15ef9003c4ee191a0f64b90f170b40cfb7cf2d22"}, + {file = "pandas-2.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6de8547d4fdb12421e2d047a2c446c623ff4c11f47fddb6b9169eb98ffba485a"}, + {file = "pandas-2.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:782647ddc63c83133b2506912cc6b108140a38a37292102aaa19c81c83db2928"}, + {file = "pandas-2.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ba6aff74075311fc88504b1db890187a3cd0f887a5b10f5525f8e2ef55bfdb9"}, + {file = "pandas-2.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e5635178b387bd2ba4ac040f82bc2ef6e6b500483975c4ebacd34bec945fda12"}, + {file = "pandas-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6f3bf5ec947526106399a9e1d26d40ee2b259c66422efdf4de63c848492d91bb"}, + {file = "pandas-2.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:1c78cf43c8fde236342a1cb2c34bcff89564a7bfed7e474ed2fffa6aed03a956"}, + {file = "pandas-2.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8dfc17328e8da77be3cf9f47509e5637ba8f137148ed0e9b5241e1baf526e20a"}, + {file = "pandas-2.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ec6c851509364c59a5344458ab935e6451b31b818be467eb24b0fe89bd05b6b9"}, + {file = "pandas-2.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:911580460fc4884d9b05254b38a6bfadddfcc6aaef856fb5859e7ca202e45275"}, + {file = "pandas-2.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f4d6feeba91744872a600e6edbbd5b033005b431d5ae8379abee5bcfa479fab"}, + {file = "pandas-2.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:fe37e757f462d31a9cd7580236a82f353f5713a80e059a29753cf938c6775d96"}, + {file = "pandas-2.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5db9637dbc24b631ff3707269ae4559bce4b7fd75c1c4d7e13f40edc42df4444"}, + {file = "pandas-2.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4645f770f98d656f11c69e81aeb21c6fca076a44bed3dcbb9396a4311bc7f6d8"}, + {file = "pandas-2.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:342e59589cc454aaff7484d75b816a433350b3d7964d7847327edda4d532a2e3"}, + {file = "pandas-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d12f618d80379fde6af007f65f0c25bd3e40251dbd1636480dfffce2cf1e6da"}, + {file = "pandas-2.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd71c47a911da120d72ef173aeac0bf5241423f9bfea57320110a978457e069e"}, + {file = "pandas-2.3.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:09e3b1587f0f3b0913e21e8b32c3119174551deb4a4eba4a89bc7377947977e7"}, + {file = "pandas-2.3.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2323294c73ed50f612f67e2bf3ae45aea04dce5690778e08a09391897f35ff88"}, + {file = "pandas-2.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:b4b0de34dc8499c2db34000ef8baad684cfa4cbd836ecee05f323ebfba348c7d"}, + {file = "pandas-2.3.1.tar.gz", hash = "sha256:0a95b9ac964fe83ce317827f80304d37388ea77616b1425f0ae41c9d2d0d7bb2"}, ] [package.dependencies] @@ -3032,101 +3032,126 @@ ptyprocess = ">=0.5" [[package]] name = "pillow" -version = "11.2.1" +version = "11.3.0" description = "Python Imaging Library (Fork)" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pillow-11.2.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:d57a75d53922fc20c165016a20d9c44f73305e67c351bbc60d1adaf662e74047"}, - {file = "pillow-11.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:127bf6ac4a5b58b3d32fc8289656f77f80567d65660bc46f72c0d77e6600cc95"}, - {file = "pillow-11.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4ba4be812c7a40280629e55ae0b14a0aafa150dd6451297562e1764808bbe61"}, - {file = "pillow-11.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8bd62331e5032bc396a93609982a9ab6b411c05078a52f5fe3cc59234a3abd1"}, - {file = "pillow-11.2.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:562d11134c97a62fe3af29581f083033179f7ff435f78392565a1ad2d1c2c45c"}, - {file = "pillow-11.2.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:c97209e85b5be259994eb5b69ff50c5d20cca0f458ef9abd835e262d9d88b39d"}, - {file = "pillow-11.2.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0c3e6d0f59171dfa2e25d7116217543310908dfa2770aa64b8f87605f8cacc97"}, - {file = "pillow-11.2.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc1c3bc53befb6096b84165956e886b1729634a799e9d6329a0c512ab651e579"}, - {file = "pillow-11.2.1-cp310-cp310-win32.whl", hash = "sha256:312c77b7f07ab2139924d2639860e084ec2a13e72af54d4f08ac843a5fc9c79d"}, - {file = "pillow-11.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:9bc7ae48b8057a611e5fe9f853baa88093b9a76303937449397899385da06fad"}, - {file = "pillow-11.2.1-cp310-cp310-win_arm64.whl", hash = "sha256:2728567e249cdd939f6cc3d1f049595c66e4187f3c34078cbc0a7d21c47482d2"}, - {file = "pillow-11.2.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:35ca289f712ccfc699508c4658a1d14652e8033e9b69839edf83cbdd0ba39e70"}, - {file = "pillow-11.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0409af9f829f87a2dfb7e259f78f317a5351f2045158be321fd135973fff7bf"}, - {file = "pillow-11.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4e5c5edee874dce4f653dbe59db7c73a600119fbea8d31f53423586ee2aafd7"}, - {file = "pillow-11.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b93a07e76d13bff9444f1a029e0af2964e654bfc2e2c2d46bfd080df5ad5f3d8"}, - {file = "pillow-11.2.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:e6def7eed9e7fa90fde255afaf08060dc4b343bbe524a8f69bdd2a2f0018f600"}, - {file = "pillow-11.2.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8f4f3724c068be008c08257207210c138d5f3731af6c155a81c2b09a9eb3a788"}, - {file = "pillow-11.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a0a6709b47019dff32e678bc12c63008311b82b9327613f534e496dacaefb71e"}, - {file = "pillow-11.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f6b0c664ccb879109ee3ca702a9272d877f4fcd21e5eb63c26422fd6e415365e"}, - {file = "pillow-11.2.1-cp311-cp311-win32.whl", hash = "sha256:cc5d875d56e49f112b6def6813c4e3d3036d269c008bf8aef72cd08d20ca6df6"}, - {file = "pillow-11.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:0f5c7eda47bf8e3c8a283762cab94e496ba977a420868cb819159980b6709193"}, - {file = "pillow-11.2.1-cp311-cp311-win_arm64.whl", hash = "sha256:4d375eb838755f2528ac8cbc926c3e31cc49ca4ad0cf79cff48b20e30634a4a7"}, - {file = "pillow-11.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:78afba22027b4accef10dbd5eed84425930ba41b3ea0a86fa8d20baaf19d807f"}, - {file = "pillow-11.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:78092232a4ab376a35d68c4e6d5e00dfd73454bd12b230420025fbe178ee3b0b"}, - {file = "pillow-11.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25a5f306095c6780c52e6bbb6109624b95c5b18e40aab1c3041da3e9e0cd3e2d"}, - {file = "pillow-11.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c7b29dbd4281923a2bfe562acb734cee96bbb129e96e6972d315ed9f232bef4"}, - {file = "pillow-11.2.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3e645b020f3209a0181a418bffe7b4a93171eef6c4ef6cc20980b30bebf17b7d"}, - {file = "pillow-11.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b2dbea1012ccb784a65349f57bbc93730b96e85b42e9bf7b01ef40443db720b4"}, - {file = "pillow-11.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:da3104c57bbd72948d75f6a9389e6727d2ab6333c3617f0a89d72d4940aa0443"}, - {file = "pillow-11.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:598174aef4589af795f66f9caab87ba4ff860ce08cd5bb447c6fc553ffee603c"}, - {file = "pillow-11.2.1-cp312-cp312-win32.whl", hash = "sha256:1d535df14716e7f8776b9e7fee118576d65572b4aad3ed639be9e4fa88a1cad3"}, - {file = "pillow-11.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:14e33b28bf17c7a38eede290f77db7c664e4eb01f7869e37fa98a5aa95978941"}, - {file = "pillow-11.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:21e1470ac9e5739ff880c211fc3af01e3ae505859392bf65458c224d0bf283eb"}, - {file = "pillow-11.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fdec757fea0b793056419bca3e9932eb2b0ceec90ef4813ea4c1e072c389eb28"}, - {file = "pillow-11.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b0e130705d568e2f43a17bcbe74d90958e8a16263868a12c3e0d9c8162690830"}, - {file = "pillow-11.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bdb5e09068332578214cadd9c05e3d64d99e0e87591be22a324bdbc18925be0"}, - {file = "pillow-11.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d189ba1bebfbc0c0e529159631ec72bb9e9bc041f01ec6d3233d6d82eb823bc1"}, - {file = "pillow-11.2.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:191955c55d8a712fab8934a42bfefbf99dd0b5875078240943f913bb66d46d9f"}, - {file = "pillow-11.2.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:ad275964d52e2243430472fc5d2c2334b4fc3ff9c16cb0a19254e25efa03a155"}, - {file = "pillow-11.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:750f96efe0597382660d8b53e90dd1dd44568a8edb51cb7f9d5d918b80d4de14"}, - {file = "pillow-11.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fe15238d3798788d00716637b3d4e7bb6bde18b26e5d08335a96e88564a36b6b"}, - {file = "pillow-11.2.1-cp313-cp313-win32.whl", hash = "sha256:3fe735ced9a607fee4f481423a9c36701a39719252a9bb251679635f99d0f7d2"}, - {file = "pillow-11.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:74ee3d7ecb3f3c05459ba95eed5efa28d6092d751ce9bf20e3e253a4e497e691"}, - {file = "pillow-11.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:5119225c622403afb4b44bad4c1ca6c1f98eed79db8d3bc6e4e160fc6339d66c"}, - {file = "pillow-11.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8ce2e8411c7aaef53e6bb29fe98f28cd4fbd9a1d9be2eeea434331aac0536b22"}, - {file = "pillow-11.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9ee66787e095127116d91dea2143db65c7bb1e232f617aa5957c0d9d2a3f23a7"}, - {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9622e3b6c1d8b551b6e6f21873bdcc55762b4b2126633014cea1803368a9aa16"}, - {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63b5dff3a68f371ea06025a1a6966c9a1e1ee452fc8020c2cd0ea41b83e9037b"}, - {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:31df6e2d3d8fc99f993fd253e97fae451a8db2e7207acf97859732273e108406"}, - {file = "pillow-11.2.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:062b7a42d672c45a70fa1f8b43d1d38ff76b63421cbbe7f88146b39e8a558d91"}, - {file = "pillow-11.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4eb92eca2711ef8be42fd3f67533765d9fd043b8c80db204f16c8ea62ee1a751"}, - {file = "pillow-11.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f91ebf30830a48c825590aede79376cb40f110b387c17ee9bd59932c961044f9"}, - {file = "pillow-11.2.1-cp313-cp313t-win32.whl", hash = "sha256:e0b55f27f584ed623221cfe995c912c61606be8513bfa0e07d2c674b4516d9dd"}, - {file = "pillow-11.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:36d6b82164c39ce5482f649b437382c0fb2395eabc1e2b1702a6deb8ad647d6e"}, - {file = "pillow-11.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:225c832a13326e34f212d2072982bb1adb210e0cc0b153e688743018c94a2681"}, - {file = "pillow-11.2.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:7491cf8a79b8eb867d419648fff2f83cb0b3891c8b36da92cc7f1931d46108c8"}, - {file = "pillow-11.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b02d8f9cb83c52578a0b4beadba92e37d83a4ef11570a8688bbf43f4ca50909"}, - {file = "pillow-11.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:014ca0050c85003620526b0ac1ac53f56fc93af128f7546623cc8e31875ab928"}, - {file = "pillow-11.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3692b68c87096ac6308296d96354eddd25f98740c9d2ab54e1549d6c8aea9d79"}, - {file = "pillow-11.2.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:f781dcb0bc9929adc77bad571b8621ecb1e4cdef86e940fe2e5b5ee24fd33b35"}, - {file = "pillow-11.2.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:2b490402c96f907a166615e9a5afacf2519e28295f157ec3a2bb9bd57de638cb"}, - {file = "pillow-11.2.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dd6b20b93b3ccc9c1b597999209e4bc5cf2853f9ee66e3fc9a400a78733ffc9a"}, - {file = "pillow-11.2.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4b835d89c08a6c2ee7781b8dd0a30209a8012b5f09c0a665b65b0eb3560b6f36"}, - {file = "pillow-11.2.1-cp39-cp39-win32.whl", hash = "sha256:b10428b3416d4f9c61f94b494681280be7686bda15898a3a9e08eb66a6d92d67"}, - {file = "pillow-11.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:6ebce70c3f486acf7591a3d73431fa504a4e18a9b97ff27f5f47b7368e4b9dd1"}, - {file = "pillow-11.2.1-cp39-cp39-win_arm64.whl", hash = "sha256:c27476257b2fdcd7872d54cfd119b3a9ce4610fb85c8e32b70b42e3680a29a1e"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:9b7b0d4fd2635f54ad82785d56bc0d94f147096493a79985d0ab57aedd563156"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:aa442755e31c64037aa7c1cb186e0b369f8416c567381852c63444dd666fb772"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0d3348c95b766f54b76116d53d4cb171b52992a1027e7ca50c81b43b9d9e363"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85d27ea4c889342f7e35f6d56e7e1cb345632ad592e8c51b693d7b7556043ce0"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bf2c33d6791c598142f00c9c4c7d47f6476731c31081331664eb26d6ab583e01"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e616e7154c37669fc1dfc14584f11e284e05d1c650e1c0f972f281c4ccc53193"}, - {file = "pillow-11.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:39ad2e0f424394e3aebc40168845fee52df1394a4673a6ee512d840d14ab3013"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:80f1df8dbe9572b4b7abdfa17eb5d78dd620b1d55d9e25f834efdbee872d3aed"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ea926cfbc3957090becbcbbb65ad177161a2ff2ad578b5a6ec9bb1e1cd78753c"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:738db0e0941ca0376804d4de6a782c005245264edaa253ffce24e5a15cbdc7bd"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db98ab6565c69082ec9b0d4e40dd9f6181dab0dd236d26f7a50b8b9bfbd5076"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:036e53f4170e270ddb8797d4c590e6dd14d28e15c7da375c18978045f7e6c37b"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:14f73f7c291279bd65fda51ee87affd7c1e097709f7fdd0188957a16c264601f"}, - {file = "pillow-11.2.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:208653868d5c9ecc2b327f9b9ef34e0e42a4cdd172c2988fd81d62d2bc9bc044"}, - {file = "pillow-11.2.1.tar.gz", hash = "sha256:a64dd61998416367b7ef979b73d3a85853ba9bec4c2925f74e588879a58716b6"}, + {file = "pillow-11.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1b9c17fd4ace828b3003dfd1e30bff24863e0eb59b535e8f80194d9cc7ecf860"}, + {file = "pillow-11.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:65dc69160114cdd0ca0f35cb434633c75e8e7fad4cf855177a05bf38678f73ad"}, + {file = "pillow-11.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7107195ddc914f656c7fc8e4a5e1c25f32e9236ea3ea860f257b0436011fddd0"}, + {file = "pillow-11.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cc3e831b563b3114baac7ec2ee86819eb03caa1a2cef0b481a5675b59c4fe23b"}, + {file = "pillow-11.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1f182ebd2303acf8c380a54f615ec883322593320a9b00438eb842c1f37ae50"}, + {file = "pillow-11.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4445fa62e15936a028672fd48c4c11a66d641d2c05726c7ec1f8ba6a572036ae"}, + {file = "pillow-11.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:71f511f6b3b91dd543282477be45a033e4845a40278fa8dcdbfdb07109bf18f9"}, + {file = "pillow-11.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:040a5b691b0713e1f6cbe222e0f4f74cd233421e105850ae3b3c0ceda520f42e"}, + {file = "pillow-11.3.0-cp310-cp310-win32.whl", hash = "sha256:89bd777bc6624fe4115e9fac3352c79ed60f3bb18651420635f26e643e3dd1f6"}, + {file = "pillow-11.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:19d2ff547c75b8e3ff46f4d9ef969a06c30ab2d4263a9e287733aa8b2429ce8f"}, + {file = "pillow-11.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:819931d25e57b513242859ce1876c58c59dc31587847bf74cfe06b2e0cb22d2f"}, + {file = "pillow-11.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1cd110edf822773368b396281a2293aeb91c90a2db00d78ea43e7e861631b722"}, + {file = "pillow-11.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9c412fddd1b77a75aa904615ebaa6001f169b26fd467b4be93aded278266b288"}, + {file = "pillow-11.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1aa4de119a0ecac0a34a9c8bde33f34022e2e8f99104e47a3ca392fd60e37d"}, + {file = "pillow-11.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:91da1d88226663594e3f6b4b8c3c8d85bd504117d043740a8e0ec449087cc494"}, + {file = "pillow-11.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:643f189248837533073c405ec2f0bb250ba54598cf80e8c1e043381a60632f58"}, + {file = "pillow-11.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:106064daa23a745510dabce1d84f29137a37224831d88eb4ce94bb187b1d7e5f"}, + {file = "pillow-11.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cd8ff254faf15591e724dc7c4ddb6bf4793efcbe13802a4ae3e863cd300b493e"}, + {file = "pillow-11.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:932c754c2d51ad2b2271fd01c3d121daaa35e27efae2a616f77bf164bc0b3e94"}, + {file = "pillow-11.3.0-cp311-cp311-win32.whl", hash = "sha256:b4b8f3efc8d530a1544e5962bd6b403d5f7fe8b9e08227c6b255f98ad82b4ba0"}, + {file = "pillow-11.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:1a992e86b0dd7aeb1f053cd506508c0999d710a8f07b4c791c63843fc6a807ac"}, + {file = "pillow-11.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:30807c931ff7c095620fe04448e2c2fc673fcbb1ffe2a7da3fb39613489b1ddd"}, + {file = "pillow-11.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdae223722da47b024b867c1ea0be64e0df702c5e0a60e27daad39bf960dd1e4"}, + {file = "pillow-11.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:921bd305b10e82b4d1f5e802b6850677f965d8394203d182f078873851dada69"}, + {file = "pillow-11.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb76541cba2f958032d79d143b98a3a6b3ea87f0959bbe256c0b5e416599fd5d"}, + {file = "pillow-11.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:67172f2944ebba3d4a7b54f2e95c786a3a50c21b88456329314caaa28cda70f6"}, + {file = "pillow-11.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97f07ed9f56a3b9b5f49d3661dc9607484e85c67e27f3e8be2c7d28ca032fec7"}, + {file = "pillow-11.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:676b2815362456b5b3216b4fd5bd89d362100dc6f4945154ff172e206a22c024"}, + {file = "pillow-11.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3e184b2f26ff146363dd07bde8b711833d7b0202e27d13540bfe2e35a323a809"}, + {file = "pillow-11.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6be31e3fc9a621e071bc17bb7de63b85cbe0bfae91bb0363c893cbe67247780d"}, + {file = "pillow-11.3.0-cp312-cp312-win32.whl", hash = "sha256:7b161756381f0918e05e7cb8a371fff367e807770f8fe92ecb20d905d0e1c149"}, + {file = "pillow-11.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a6444696fce635783440b7f7a9fc24b3ad10a9ea3f0ab66c5905be1c19ccf17d"}, + {file = "pillow-11.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:2aceea54f957dd4448264f9bf40875da0415c83eb85f55069d89c0ed436e3542"}, + {file = "pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:1c627742b539bba4309df89171356fcb3cc5a9178355b2727d1b74a6cf155fbd"}, + {file = "pillow-11.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:30b7c02f3899d10f13d7a48163c8969e4e653f8b43416d23d13d1bbfdc93b9f8"}, + {file = "pillow-11.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:7859a4cc7c9295f5838015d8cc0a9c215b77e43d07a25e460f35cf516df8626f"}, + {file = "pillow-11.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec1ee50470b0d050984394423d96325b744d55c701a439d2bd66089bff963d3c"}, + {file = "pillow-11.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7db51d222548ccfd274e4572fdbf3e810a5e66b00608862f947b163e613b67dd"}, + {file = "pillow-11.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2d6fcc902a24ac74495df63faad1884282239265c6839a0a6416d33faedfae7e"}, + {file = "pillow-11.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f0f5d8f4a08090c6d6d578351a2b91acf519a54986c055af27e7a93feae6d3f1"}, + {file = "pillow-11.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c37d8ba9411d6003bba9e518db0db0c58a680ab9fe5179f040b0463644bc9805"}, + {file = "pillow-11.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13f87d581e71d9189ab21fe0efb5a23e9f28552d5be6979e84001d3b8505abe8"}, + {file = "pillow-11.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:023f6d2d11784a465f09fd09a34b150ea4672e85fb3d05931d89f373ab14abb2"}, + {file = "pillow-11.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:45dfc51ac5975b938e9809451c51734124e73b04d0f0ac621649821a63852e7b"}, + {file = "pillow-11.3.0-cp313-cp313-win32.whl", hash = "sha256:a4d336baed65d50d37b88ca5b60c0fa9d81e3a87d4a7930d3880d1624d5b31f3"}, + {file = "pillow-11.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0bce5c4fd0921f99d2e858dc4d4d64193407e1b99478bc5cacecba2311abde51"}, + {file = "pillow-11.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:1904e1264881f682f02b7f8167935cce37bc97db457f8e7849dc3a6a52b99580"}, + {file = "pillow-11.3.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4c834a3921375c48ee6b9624061076bc0a32a60b5532b322cc0ea64e639dd50e"}, + {file = "pillow-11.3.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e05688ccef30ea69b9317a9ead994b93975104a677a36a8ed8106be9260aa6d"}, + {file = "pillow-11.3.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1019b04af07fc0163e2810167918cb5add8d74674b6267616021ab558dc98ced"}, + {file = "pillow-11.3.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f944255db153ebb2b19c51fe85dd99ef0ce494123f21b9db4877ffdfc5590c7c"}, + {file = "pillow-11.3.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1f85acb69adf2aaee8b7da124efebbdb959a104db34d3a2cb0f3793dbae422a8"}, + {file = "pillow-11.3.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f6ecbeff5005399bb48d198f098a9b4b6bdf27b8487c7f38ca16eeb070cd59"}, + {file = "pillow-11.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a7bc6e6fd0395bc052f16b1a8670859964dbd7003bd0af2ff08342eb6e442cfe"}, + {file = "pillow-11.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:83e1b0161c9d148125083a35c1c5a89db5b7054834fd4387499e06552035236c"}, + {file = "pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788"}, + {file = "pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31"}, + {file = "pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e"}, + {file = "pillow-11.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d9da3df5f9ea2a89b81bb6087177fb1f4d1c7146d583a3fe5c672c0d94e55e12"}, + {file = "pillow-11.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0b275ff9b04df7b640c59ec5a3cb113eefd3795a8df80bac69646ef699c6981a"}, + {file = "pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632"}, + {file = "pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673"}, + {file = "pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027"}, + {file = "pillow-11.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93efb0b4de7e340d99057415c749175e24c8864302369e05914682ba642e5d77"}, + {file = "pillow-11.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7966e38dcd0fa11ca390aed7c6f20454443581d758242023cf36fcb319b1a874"}, + {file = "pillow-11.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:98a9afa7b9007c67ed84c57c9e0ad86a6000da96eaa638e4f8abe5b65ff83f0a"}, + {file = "pillow-11.3.0-cp314-cp314-win32.whl", hash = "sha256:02a723e6bf909e7cea0dac1b0e0310be9d7650cd66222a5f1c571455c0a45214"}, + {file = "pillow-11.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a418486160228f64dd9e9efcd132679b7a02a5f22c982c78b6fc7dab3fefb635"}, + {file = "pillow-11.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:155658efb5e044669c08896c0c44231c5e9abcaadbc5cd3648df2f7c0b96b9a6"}, + {file = "pillow-11.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:59a03cdf019efbfeeed910bf79c7c93255c3d54bc45898ac2a4140071b02b4ae"}, + {file = "pillow-11.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f8a5827f84d973d8636e9dc5764af4f0cf2318d26744b3d902931701b0d46653"}, + {file = "pillow-11.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ee92f2fd10f4adc4b43d07ec5e779932b4eb3dbfbc34790ada5a6669bc095aa6"}, + {file = "pillow-11.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96d333dcf42d01f47b37e0979b6bd73ec91eae18614864622d9b87bbd5bbf36"}, + {file = "pillow-11.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c96f993ab8c98460cd0c001447bff6194403e8b1d7e149ade5f00594918128b"}, + {file = "pillow-11.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41342b64afeba938edb034d122b2dda5db2139b9a4af999729ba8818e0056477"}, + {file = "pillow-11.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:068d9c39a2d1b358eb9f245ce7ab1b5c3246c7c8c7d9ba58cfa5b43146c06e50"}, + {file = "pillow-11.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a1bc6ba083b145187f648b667e05a2534ecc4b9f2784c2cbe3089e44868f2b9b"}, + {file = "pillow-11.3.0-cp314-cp314t-win32.whl", hash = "sha256:118ca10c0d60b06d006be10a501fd6bbdfef559251ed31b794668ed569c87e12"}, + {file = "pillow-11.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8924748b688aa210d79883357d102cd64690e56b923a186f35a82cbc10f997db"}, + {file = "pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa"}, + {file = "pillow-11.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:48d254f8a4c776de343051023eb61ffe818299eeac478da55227d96e241de53f"}, + {file = "pillow-11.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7aee118e30a4cf54fdd873bd3a29de51e29105ab11f9aad8c32123f58c8f8081"}, + {file = "pillow-11.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:23cff760a9049c502721bdb743a7cb3e03365fafcdfc2ef9784610714166e5a4"}, + {file = "pillow-11.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6359a3bc43f57d5b375d1ad54a0074318a0844d11b76abccf478c37c986d3cfc"}, + {file = "pillow-11.3.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:092c80c76635f5ecb10f3f83d76716165c96f5229addbd1ec2bdbbda7d496e06"}, + {file = "pillow-11.3.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cadc9e0ea0a2431124cde7e1697106471fc4c1da01530e679b2391c37d3fbb3a"}, + {file = "pillow-11.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6a418691000f2a418c9135a7cf0d797c1bb7d9a485e61fe8e7722845b95ef978"}, + {file = "pillow-11.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:97afb3a00b65cc0804d1c7abddbf090a81eaac02768af58cbdcaaa0a931e0b6d"}, + {file = "pillow-11.3.0-cp39-cp39-win32.whl", hash = "sha256:ea944117a7974ae78059fcc1800e5d3295172bb97035c0c1d9345fca1419da71"}, + {file = "pillow-11.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:e5c5858ad8ec655450a7c7df532e9842cf8df7cc349df7225c60d5d348c8aada"}, + {file = "pillow-11.3.0-cp39-cp39-win_arm64.whl", hash = "sha256:6abdbfd3aea42be05702a8dd98832329c167ee84400a1d1f61ab11437f1717eb"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3cee80663f29e3843b68199b9d6f4f54bd1d4a6b59bdd91bceefc51238bcb967"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b5f56c3f344f2ccaf0dd875d3e180f631dc60a51b314295a3e681fe8cf851fbe"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e67d793d180c9df62f1f40aee3accca4829d3794c95098887edc18af4b8b780c"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d000f46e2917c705e9fb93a3606ee4a819d1e3aa7a9b442f6444f07e77cf5e25"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:527b37216b6ac3a12d7838dc3bd75208ec57c1c6d11ef01902266a5a0c14fc27"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be5463ac478b623b9dd3937afd7fb7ab3d79dd290a28e2b6df292dc75063eb8a"}, + {file = "pillow-11.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8dc70ca24c110503e16918a658b869019126ecfe03109b754c402daff12b3d9f"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7c8ec7a017ad1bd562f93dbd8505763e688d388cde6e4a010ae1486916e713e6"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:9ab6ae226de48019caa8074894544af5b53a117ccb9d3b3dcb2871464c829438"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fe27fb049cdcca11f11a7bfda64043c37b30e6b91f10cb5bab275806c32f6ab3"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:465b9e8844e3c3519a983d58b80be3f668e2a7a5db97f2784e7079fbc9f9822c"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5418b53c0d59b3824d05e029669efa023bbef0f3e92e75ec8428f3799487f361"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:504b6f59505f08ae014f724b6207ff6222662aab5cc9542577fb084ed0676ac7"}, + {file = "pillow-11.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c84d689db21a1c397d001aa08241044aa2069e7587b398c8cc63020390b1c1b8"}, + {file = "pillow-11.3.0.tar.gz", hash = "sha256:3828ee7586cd0b2091b6209e5ad53e20d0649bbe87164a459d0676e035e8f523"}, ] [package.extras] -docs = ["furo", "olefile", "sphinx (>=8.2)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] +docs = ["furo", "olefile", "sphinx (>=8.2)", "sphinx-autobuild", "sphinx-copybutton", "sphinx-inline-tabs", "sphinxext-opengraph"] fpx = ["olefile"] mic = ["olefile"] test-arrow = ["pyarrow"] -tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"] +tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "trove-classifiers (>=2024.10.12)"] typing = ["typing-extensions ; python_version < \"3.10\""] xmp = ["defusedxml"] @@ -3624,14 +3649,14 @@ six = ">=1.5" [[package]] name = "python-dotenv" -version = "1.1.0" +version = "1.1.1" description = "Read key-value pairs from a .env file and set them as environment variables" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d"}, - {file = "python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5"}, + {file = "python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc"}, + {file = "python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab"}, ] [package.extras] @@ -3966,129 +3991,156 @@ files = [ [[package]] name = "rpds-py" -version = "0.25.1" +version = "0.26.0" description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.9" groups = ["notebooks"] files = [ - {file = "rpds_py-0.25.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:f4ad628b5174d5315761b67f212774a32f5bad5e61396d38108bd801c0a8f5d9"}, - {file = "rpds_py-0.25.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8c742af695f7525e559c16f1562cf2323db0e3f0fbdcabdf6865b095256b2d40"}, - {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:605ffe7769e24b1800b4d024d24034405d9404f0bc2f55b6db3362cd34145a6f"}, - {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ccc6f3ddef93243538be76f8e47045b4aad7a66a212cd3a0f23e34469473d36b"}, - {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f70316f760174ca04492b5ab01be631a8ae30cadab1d1081035136ba12738cfa"}, - {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1dafef8df605fdb46edcc0bf1573dea0d6d7b01ba87f85cd04dc855b2b4479e"}, - {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0701942049095741a8aeb298a31b203e735d1c61f4423511d2b1a41dcd8a16da"}, - {file = "rpds_py-0.25.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e87798852ae0b37c88babb7f7bbbb3e3fecc562a1c340195b44c7e24d403e380"}, - {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3bcce0edc1488906c2d4c75c94c70a0417e83920dd4c88fec1078c94843a6ce9"}, - {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e2f6a2347d3440ae789505693a02836383426249d5293541cd712e07e7aecf54"}, - {file = "rpds_py-0.25.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4fd52d3455a0aa997734f3835cbc4c9f32571345143960e7d7ebfe7b5fbfa3b2"}, - {file = "rpds_py-0.25.1-cp310-cp310-win32.whl", hash = "sha256:3f0b1798cae2bbbc9b9db44ee068c556d4737911ad53a4e5093d09d04b3bbc24"}, - {file = "rpds_py-0.25.1-cp310-cp310-win_amd64.whl", hash = "sha256:3ebd879ab996537fc510a2be58c59915b5dd63bccb06d1ef514fee787e05984a"}, - {file = "rpds_py-0.25.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5f048bbf18b1f9120685c6d6bb70cc1a52c8cc11bdd04e643d28d3be0baf666d"}, - {file = "rpds_py-0.25.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4fbb0dbba559959fcb5d0735a0f87cdbca9e95dac87982e9b95c0f8f7ad10255"}, - {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4ca54b9cf9d80b4016a67a0193ebe0bcf29f6b0a96f09db942087e294d3d4c2"}, - {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ee3e26eb83d39b886d2cb6e06ea701bba82ef30a0de044d34626ede51ec98b0"}, - {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:89706d0683c73a26f76a5315d893c051324d771196ae8b13e6ffa1ffaf5e574f"}, - {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2013ee878c76269c7b557a9a9c042335d732e89d482606990b70a839635feb7"}, - {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45e484db65e5380804afbec784522de84fa95e6bb92ef1bd3325d33d13efaebd"}, - {file = "rpds_py-0.25.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:48d64155d02127c249695abb87d39f0faf410733428d499867606be138161d65"}, - {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:048893e902132fd6548a2e661fb38bf4896a89eea95ac5816cf443524a85556f"}, - {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0317177b1e8691ab5879f4f33f4b6dc55ad3b344399e23df2e499de7b10a548d"}, - {file = "rpds_py-0.25.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bffcf57826d77a4151962bf1701374e0fc87f536e56ec46f1abdd6a903354042"}, - {file = "rpds_py-0.25.1-cp311-cp311-win32.whl", hash = "sha256:cda776f1967cb304816173b30994faaf2fd5bcb37e73118a47964a02c348e1bc"}, - {file = "rpds_py-0.25.1-cp311-cp311-win_amd64.whl", hash = "sha256:dc3c1ff0abc91444cd20ec643d0f805df9a3661fcacf9c95000329f3ddf268a4"}, - {file = "rpds_py-0.25.1-cp311-cp311-win_arm64.whl", hash = "sha256:5a3ddb74b0985c4387719fc536faced33cadf2172769540c62e2a94b7b9be1c4"}, - {file = "rpds_py-0.25.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b5ffe453cde61f73fea9430223c81d29e2fbf412a6073951102146c84e19e34c"}, - {file = "rpds_py-0.25.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:115874ae5e2fdcfc16b2aedc95b5eef4aebe91b28e7e21951eda8a5dc0d3461b"}, - {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a714bf6e5e81b0e570d01f56e0c89c6375101b8463999ead3a93a5d2a4af91fa"}, - {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:35634369325906bcd01577da4c19e3b9541a15e99f31e91a02d010816b49bfda"}, - {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4cb2b3ddc16710548801c6fcc0cfcdeeff9dafbc983f77265877793f2660309"}, - {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ceca1cf097ed77e1a51f1dbc8d174d10cb5931c188a4505ff9f3e119dfe519b"}, - {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c2cd1a4b0c2b8c5e31ffff50d09f39906fe351389ba143c195566056c13a7ea"}, - {file = "rpds_py-0.25.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1de336a4b164c9188cb23f3703adb74a7623ab32d20090d0e9bf499a2203ad65"}, - {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9fca84a15333e925dd59ce01da0ffe2ffe0d6e5d29a9eeba2148916d1824948c"}, - {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88ec04afe0c59fa64e2f6ea0dd9657e04fc83e38de90f6de201954b4d4eb59bd"}, - {file = "rpds_py-0.25.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8bd2f19e312ce3e1d2c635618e8a8d8132892bb746a7cf74780a489f0f6cdcb"}, - {file = "rpds_py-0.25.1-cp312-cp312-win32.whl", hash = "sha256:e5e2f7280d8d0d3ef06f3ec1b4fd598d386cc6f0721e54f09109a8132182fbfe"}, - {file = "rpds_py-0.25.1-cp312-cp312-win_amd64.whl", hash = "sha256:db58483f71c5db67d643857404da360dce3573031586034b7d59f245144cc192"}, - {file = "rpds_py-0.25.1-cp312-cp312-win_arm64.whl", hash = "sha256:6d50841c425d16faf3206ddbba44c21aa3310a0cebc3c1cdfc3e3f4f9f6f5728"}, - {file = "rpds_py-0.25.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:659d87430a8c8c704d52d094f5ba6fa72ef13b4d385b7e542a08fc240cb4a559"}, - {file = "rpds_py-0.25.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68f6f060f0bbdfb0245267da014d3a6da9be127fe3e8cc4a68c6f833f8a23bb1"}, - {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:083a9513a33e0b92cf6e7a6366036c6bb43ea595332c1ab5c8ae329e4bcc0a9c"}, - {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:816568614ecb22b18a010c7a12559c19f6fe993526af88e95a76d5a60b8b75fb"}, - {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c6564c0947a7f52e4792983f8e6cf9bac140438ebf81f527a21d944f2fd0a40"}, - {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c4a128527fe415d73cf1f70a9a688d06130d5810be69f3b553bf7b45e8acf79"}, - {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a49e1d7a4978ed554f095430b89ecc23f42014a50ac385eb0c4d163ce213c325"}, - {file = "rpds_py-0.25.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d74ec9bc0e2feb81d3f16946b005748119c0f52a153f6db6a29e8cd68636f295"}, - {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3af5b4cc10fa41e5bc64e5c198a1b2d2864337f8fcbb9a67e747e34002ce812b"}, - {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:79dc317a5f1c51fd9c6a0c4f48209c6b8526d0524a6904fc1076476e79b00f98"}, - {file = "rpds_py-0.25.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1521031351865e0181bc585147624d66b3b00a84109b57fcb7a779c3ec3772cd"}, - {file = "rpds_py-0.25.1-cp313-cp313-win32.whl", hash = "sha256:5d473be2b13600b93a5675d78f59e63b51b1ba2d0476893415dfbb5477e65b31"}, - {file = "rpds_py-0.25.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7b74e92a3b212390bdce1d93da9f6488c3878c1d434c5e751cbc202c5e09500"}, - {file = "rpds_py-0.25.1-cp313-cp313-win_arm64.whl", hash = "sha256:dd326a81afe332ede08eb39ab75b301d5676802cdffd3a8f287a5f0b694dc3f5"}, - {file = "rpds_py-0.25.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:a58d1ed49a94d4183483a3ce0af22f20318d4a1434acee255d683ad90bf78129"}, - {file = "rpds_py-0.25.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f251bf23deb8332823aef1da169d5d89fa84c89f67bdfb566c49dea1fccfd50d"}, - {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dbd586bfa270c1103ece2109314dd423df1fa3d9719928b5d09e4840cec0d72"}, - {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6d273f136e912aa101a9274c3145dcbddbe4bac560e77e6d5b3c9f6e0ed06d34"}, - {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:666fa7b1bd0a3810a7f18f6d3a25ccd8866291fbbc3c9b912b917a6715874bb9"}, - {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:921954d7fbf3fccc7de8f717799304b14b6d9a45bbeec5a8d7408ccbf531faf5"}, - {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3d86373ff19ca0441ebeb696ef64cb58b8b5cbacffcda5a0ec2f3911732a194"}, - {file = "rpds_py-0.25.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c8980cde3bb8575e7c956a530f2c217c1d6aac453474bf3ea0f9c89868b531b6"}, - {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8eb8c84ecea987a2523e057c0d950bcb3f789696c0499290b8d7b3107a719d78"}, - {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:e43a005671a9ed5a650f3bc39e4dbccd6d4326b24fb5ea8be5f3a43a6f576c72"}, - {file = "rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:58f77c60956501a4a627749a6dcb78dac522f249dd96b5c9f1c6af29bfacfb66"}, - {file = "rpds_py-0.25.1-cp313-cp313t-win32.whl", hash = "sha256:2cb9e5b5e26fc02c8a4345048cd9998c2aca7c2712bd1b36da0c72ee969a3523"}, - {file = "rpds_py-0.25.1-cp313-cp313t-win_amd64.whl", hash = "sha256:401ca1c4a20cc0510d3435d89c069fe0a9ae2ee6495135ac46bdd49ec0495763"}, - {file = "rpds_py-0.25.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ce4c8e485a3c59593f1a6f683cf0ea5ab1c1dc94d11eea5619e4fb5228b40fbd"}, - {file = "rpds_py-0.25.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d8222acdb51a22929c3b2ddb236b69c59c72af4019d2cba961e2f9add9b6e634"}, - {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4593c4eae9b27d22df41cde518b4b9e4464d139e4322e2127daa9b5b981b76be"}, - {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd035756830c712b64725a76327ce80e82ed12ebab361d3a1cdc0f51ea21acb0"}, - {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:114a07e85f32b125404f28f2ed0ba431685151c037a26032b213c882f26eb908"}, - {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dec21e02e6cc932538b5203d3a8bd6aa1480c98c4914cb88eea064ecdbc6396a"}, - {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09eab132f41bf792c7a0ea1578e55df3f3e7f61888e340779b06050a9a3f16e9"}, - {file = "rpds_py-0.25.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c98f126c4fc697b84c423e387337d5b07e4a61e9feac494362a59fd7a2d9ed80"}, - {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0e6a327af8ebf6baba1c10fadd04964c1965d375d318f4435d5f3f9651550f4a"}, - {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:bc120d1132cff853ff617754196d0ac0ae63befe7c8498bd67731ba368abe451"}, - {file = "rpds_py-0.25.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:140f61d9bed7839446bdd44852e30195c8e520f81329b4201ceead4d64eb3a9f"}, - {file = "rpds_py-0.25.1-cp39-cp39-win32.whl", hash = "sha256:9c006f3aadeda131b438c3092124bd196b66312f0caa5823ef09585a669cf449"}, - {file = "rpds_py-0.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:a61d0b2c7c9a0ae45732a77844917b427ff16ad5464b4d4f5e4adb955f582890"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b24bf3cd93d5b6ecfbedec73b15f143596c88ee249fa98cefa9a9dc9d92c6f28"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:0eb90e94f43e5085623932b68840b6f379f26db7b5c2e6bcef3179bd83c9330f"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d50e4864498a9ab639d6d8854b25e80642bd362ff104312d9770b05d66e5fb13"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c9409b47ba0650544b0bb3c188243b83654dfe55dcc173a86832314e1a6a35d"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:796ad874c89127c91970652a4ee8b00d56368b7e00d3477f4415fe78164c8000"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85608eb70a659bf4c1142b2781083d4b7c0c4e2c90eff11856a9754e965b2540"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4feb9211d15d9160bc85fa72fed46432cdc143eb9cf6d5ca377335a921ac37b"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ccfa689b9246c48947d31dd9d8b16d89a0ecc8e0e26ea5253068efb6c542b76e"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3c5b317ecbd8226887994852e85de562f7177add602514d4ac40f87de3ae45a8"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:454601988aab2c6e8fd49e7634c65476b2b919647626208e376afcd22019eeb8"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:1c0c434a53714358532d13539272db75a5ed9df75a4a090a753ac7173ec14e11"}, - {file = "rpds_py-0.25.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f73ce1512e04fbe2bc97836e89830d6b4314c171587a99688082d090f934d20a"}, - {file = "rpds_py-0.25.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee86d81551ec68a5c25373c5643d343150cc54672b5e9a0cafc93c1870a53954"}, - {file = "rpds_py-0.25.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89c24300cd4a8e4a51e55c31a8ff3918e6651b241ee8876a42cc2b2a078533ba"}, - {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:771c16060ff4e79584dc48902a91ba79fd93eade3aa3a12d6d2a4aadaf7d542b"}, - {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:785ffacd0ee61c3e60bdfde93baa6d7c10d86f15655bd706c89da08068dc5038"}, - {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a40046a529cc15cef88ac5ab589f83f739e2d332cb4d7399072242400ed68c9"}, - {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85fc223d9c76cabe5d0bff82214459189720dc135db45f9f66aa7cffbf9ff6c1"}, - {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0be9965f93c222fb9b4cc254235b3b2b215796c03ef5ee64f995b1b69af0762"}, - {file = "rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8378fa4a940f3fb509c081e06cb7f7f2adae8cf46ef258b0e0ed7519facd573e"}, - {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:33358883a4490287e67a2c391dfaea4d9359860281db3292b6886bf0be3d8692"}, - {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1d1fadd539298e70cac2f2cb36f5b8a65f742b9b9f1014dd4ea1f7785e2470bf"}, - {file = "rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9a46c2fb2545e21181445515960006e85d22025bd2fe6db23e76daec6eb689fe"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:50f2c501a89c9a5f4e454b126193c5495b9fb441a75b298c60591d8a2eb92e1b"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d779b325cc8238227c47fbc53964c8cc9a941d5dbae87aa007a1f08f2f77b23"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:036ded36bedb727beeabc16dc1dad7cb154b3fa444e936a03b67a86dc6a5066e"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:245550f5a1ac98504147cba96ffec8fabc22b610742e9150138e5d60774686d7"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ff7c23ba0a88cb7b104281a99476cccadf29de2a0ef5ce864959a52675b1ca83"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e37caa8cdb3b7cf24786451a0bdb853f6347b8b92005eeb64225ae1db54d1c2b"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2f48ab00181600ee266a095fe815134eb456163f7d6699f525dee471f312cf"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e5fc7484fa7dce57e25063b0ec9638ff02a908304f861d81ea49273e43838c1"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:d3c10228d6cf6fe2b63d2e7985e94f6916fa46940df46b70449e9ff9297bd3d1"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:5d9e40f32745db28c1ef7aad23f6fc458dc1e29945bd6781060f0d15628b8ddf"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:35a8d1a24b5936b35c5003313bc177403d8bdef0f8b24f28b1c4a255f94ea992"}, - {file = "rpds_py-0.25.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6099263f526efff9cf3883dfef505518730f7a7a93049b1d90d42e50a22b4793"}, - {file = "rpds_py-0.25.1.tar.gz", hash = "sha256:8960b6dac09b62dac26e75d7e2c4a22efb835d827a7278c34f72b2b84fa160e3"}, + {file = "rpds_py-0.26.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:4c70c70f9169692b36307a95f3d8c0a9fcd79f7b4a383aad5eaa0e9718b79b37"}, + {file = "rpds_py-0.26.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:777c62479d12395bfb932944e61e915741e364c843afc3196b694db3d669fcd0"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec671691e72dff75817386aa02d81e708b5a7ec0dec6669ec05213ff6b77e1bd"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6a1cb5d6ce81379401bbb7f6dbe3d56de537fb8235979843f0d53bc2e9815a79"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f789e32fa1fb6a7bf890e0124e7b42d1e60d28ebff57fe806719abb75f0e9a3"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c55b0a669976cf258afd718de3d9ad1b7d1fe0a91cd1ab36f38b03d4d4aeaaf"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c70d9ec912802ecfd6cd390dadb34a9578b04f9bcb8e863d0a7598ba5e9e7ccc"}, + {file = "rpds_py-0.26.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3021933c2cb7def39d927b9862292e0f4c75a13d7de70eb0ab06efed4c508c19"}, + {file = "rpds_py-0.26.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8a7898b6ca3b7d6659e55cdac825a2e58c638cbf335cde41f4619e290dd0ad11"}, + {file = "rpds_py-0.26.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:12bff2ad9447188377f1b2794772f91fe68bb4bbfa5a39d7941fbebdbf8c500f"}, + {file = "rpds_py-0.26.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:191aa858f7d4902e975d4cf2f2d9243816c91e9605070aeb09c0a800d187e323"}, + {file = "rpds_py-0.26.0-cp310-cp310-win32.whl", hash = "sha256:b37a04d9f52cb76b6b78f35109b513f6519efb481d8ca4c321f6a3b9580b3f45"}, + {file = "rpds_py-0.26.0-cp310-cp310-win_amd64.whl", hash = "sha256:38721d4c9edd3eb6670437d8d5e2070063f305bfa2d5aa4278c51cedcd508a84"}, + {file = "rpds_py-0.26.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9e8cb77286025bdb21be2941d64ac6ca016130bfdcd228739e8ab137eb4406ed"}, + {file = "rpds_py-0.26.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5e09330b21d98adc8ccb2dbb9fc6cb434e8908d4c119aeaa772cb1caab5440a0"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c9c1b92b774b2e68d11193dc39620d62fd8ab33f0a3c77ecdabe19c179cdbc1"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:824e6d3503ab990d7090768e4dfd9e840837bae057f212ff9f4f05ec6d1975e7"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ad7fd2258228bf288f2331f0a6148ad0186b2e3643055ed0db30990e59817a6"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0dc23bbb3e06ec1ea72d515fb572c1fea59695aefbffb106501138762e1e915e"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d80bf832ac7b1920ee29a426cdca335f96a2b5caa839811803e999b41ba9030d"}, + {file = "rpds_py-0.26.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0919f38f5542c0a87e7b4afcafab6fd2c15386632d249e9a087498571250abe3"}, + {file = "rpds_py-0.26.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d422b945683e409000c888e384546dbab9009bb92f7c0b456e217988cf316107"}, + {file = "rpds_py-0.26.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a7711fa562ba2da1aa757e11024ad6d93bad6ad7ede5afb9af144623e5f76a"}, + {file = "rpds_py-0.26.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:238e8c8610cb7c29460e37184f6799547f7e09e6a9bdbdab4e8edb90986a2318"}, + {file = "rpds_py-0.26.0-cp311-cp311-win32.whl", hash = "sha256:893b022bfbdf26d7bedb083efeea624e8550ca6eb98bf7fea30211ce95b9201a"}, + {file = "rpds_py-0.26.0-cp311-cp311-win_amd64.whl", hash = "sha256:87a5531de9f71aceb8af041d72fc4cab4943648d91875ed56d2e629bef6d4c03"}, + {file = "rpds_py-0.26.0-cp311-cp311-win_arm64.whl", hash = "sha256:de2713f48c1ad57f89ac25b3cb7daed2156d8e822cf0eca9b96a6f990718cc41"}, + {file = "rpds_py-0.26.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:894514d47e012e794f1350f076c427d2347ebf82f9b958d554d12819849a369d"}, + {file = "rpds_py-0.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc921b96fa95a097add244da36a1d9e4f3039160d1d30f1b35837bf108c21136"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e1157659470aa42a75448b6e943c895be8c70531c43cb78b9ba990778955582"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:521ccf56f45bb3a791182dc6b88ae5f8fa079dd705ee42138c76deb1238e554e"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9def736773fd56b305c0eef698be5192c77bfa30d55a0e5885f80126c4831a15"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cdad4ea3b4513b475e027be79e5a0ceac8ee1c113a1a11e5edc3c30c29f964d8"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82b165b07f416bdccf5c84546a484cc8f15137ca38325403864bfdf2b5b72f6a"}, + {file = "rpds_py-0.26.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d04cab0a54b9dba4d278fe955a1390da3cf71f57feb78ddc7cb67cbe0bd30323"}, + {file = "rpds_py-0.26.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:79061ba1a11b6a12743a2b0f72a46aa2758613d454aa6ba4f5a265cc48850158"}, + {file = "rpds_py-0.26.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f405c93675d8d4c5ac87364bb38d06c988e11028a64b52a47158a355079661f3"}, + {file = "rpds_py-0.26.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dafd4c44b74aa4bed4b250f1aed165b8ef5de743bcca3b88fc9619b6087093d2"}, + {file = "rpds_py-0.26.0-cp312-cp312-win32.whl", hash = "sha256:3da5852aad63fa0c6f836f3359647870e21ea96cf433eb393ffa45263a170d44"}, + {file = "rpds_py-0.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:cf47cfdabc2194a669dcf7a8dbba62e37a04c5041d2125fae0233b720da6f05c"}, + {file = "rpds_py-0.26.0-cp312-cp312-win_arm64.whl", hash = "sha256:20ab1ae4fa534f73647aad289003f1104092890849e0266271351922ed5574f8"}, + {file = "rpds_py-0.26.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:696764a5be111b036256c0b18cd29783fab22154690fc698062fc1b0084b511d"}, + {file = "rpds_py-0.26.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1e6c15d2080a63aaed876e228efe4f814bc7889c63b1e112ad46fdc8b368b9e1"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390e3170babf42462739a93321e657444f0862c6d722a291accc46f9d21ed04e"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7da84c2c74c0f5bc97d853d9e17bb83e2dcafcff0dc48286916001cc114379a1"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c5fe114a6dd480a510b6d3661d09d67d1622c4bf20660a474507aaee7eeeee9"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3100b3090269f3a7ea727b06a6080d4eb7439dca4c0e91a07c5d133bb1727ea7"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c03c9b0c64afd0320ae57de4c982801271c0c211aa2d37f3003ff5feb75bb04"}, + {file = "rpds_py-0.26.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5963b72ccd199ade6ee493723d18a3f21ba7d5b957017607f815788cef50eaf1"}, + {file = "rpds_py-0.26.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9da4e873860ad5bab3291438525cae80169daecbfafe5657f7f5fb4d6b3f96b9"}, + {file = "rpds_py-0.26.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5afaddaa8e8c7f1f7b4c5c725c0070b6eed0228f705b90a1732a48e84350f4e9"}, + {file = "rpds_py-0.26.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4916dc96489616a6f9667e7526af8fa693c0fdb4f3acb0e5d9f4400eb06a47ba"}, + {file = "rpds_py-0.26.0-cp313-cp313-win32.whl", hash = "sha256:2a343f91b17097c546b93f7999976fd6c9d5900617aa848c81d794e062ab302b"}, + {file = "rpds_py-0.26.0-cp313-cp313-win_amd64.whl", hash = "sha256:0a0b60701f2300c81b2ac88a5fb893ccfa408e1c4a555a77f908a2596eb875a5"}, + {file = "rpds_py-0.26.0-cp313-cp313-win_arm64.whl", hash = "sha256:257d011919f133a4746958257f2c75238e3ff54255acd5e3e11f3ff41fd14256"}, + {file = "rpds_py-0.26.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:529c8156d7506fba5740e05da8795688f87119cce330c244519cf706a4a3d618"}, + {file = "rpds_py-0.26.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f53ec51f9d24e9638a40cabb95078ade8c99251945dad8d57bf4aabe86ecee35"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab504c4d654e4a29558eaa5bb8cea5fdc1703ea60a8099ffd9c758472cf913f"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd0641abca296bc1a00183fe44f7fced8807ed49d501f188faa642d0e4975b83"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b312fecc1d017b5327afa81d4da1480f51c68810963a7336d92203dbb3d4f1"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c741107203954f6fc34d3066d213d0a0c40f7bb5aafd698fb39888af277c70d8"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc3e55a7db08dc9a6ed5fb7103019d2c1a38a349ac41901f9f66d7f95750942f"}, + {file = "rpds_py-0.26.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e851920caab2dbcae311fd28f4313c6953993893eb5c1bb367ec69d9a39e7ed"}, + {file = "rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dfbf280da5f876d0b00c81f26bedce274e72a678c28845453885a9b3c22ae632"}, + {file = "rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1cc81d14ddfa53d7f3906694d35d54d9d3f850ef8e4e99ee68bc0d1e5fed9a9c"}, + {file = "rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dca83c498b4650a91efcf7b88d669b170256bf8017a5db6f3e06c2bf031f57e0"}, + {file = "rpds_py-0.26.0-cp313-cp313t-win32.whl", hash = "sha256:4d11382bcaf12f80b51d790dee295c56a159633a8e81e6323b16e55d81ae37e9"}, + {file = "rpds_py-0.26.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff110acded3c22c033e637dd8896e411c7d3a11289b2edf041f86663dbc791e9"}, + {file = "rpds_py-0.26.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:da619979df60a940cd434084355c514c25cf8eb4cf9a508510682f6c851a4f7a"}, + {file = "rpds_py-0.26.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ea89a2458a1a75f87caabefe789c87539ea4e43b40f18cff526052e35bbb4fdf"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feac1045b3327a45944e7dcbeb57530339f6b17baff154df51ef8b0da34c8c12"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b818a592bd69bfe437ee8368603d4a2d928c34cffcdf77c2e761a759ffd17d20"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a8b0dd8648709b62d9372fc00a57466f5fdeefed666afe3fea5a6c9539a0331"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6d3498ad0df07d81112aa6ec6c95a7e7b1ae00929fb73e7ebee0f3faaeabad2f"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24a4146ccb15be237fdef10f331c568e1b0e505f8c8c9ed5d67759dac58ac246"}, + {file = "rpds_py-0.26.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a9a63785467b2d73635957d32a4f6e73d5e4df497a16a6392fa066b753e87387"}, + {file = "rpds_py-0.26.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:de4ed93a8c91debfd5a047be327b7cc8b0cc6afe32a716bbbc4aedca9e2a83af"}, + {file = "rpds_py-0.26.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:caf51943715b12af827696ec395bfa68f090a4c1a1d2509eb4e2cb69abbbdb33"}, + {file = "rpds_py-0.26.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4a59e5bc386de021f56337f757301b337d7ab58baa40174fb150accd480bc953"}, + {file = "rpds_py-0.26.0-cp314-cp314-win32.whl", hash = "sha256:92c8db839367ef16a662478f0a2fe13e15f2227da3c1430a782ad0f6ee009ec9"}, + {file = "rpds_py-0.26.0-cp314-cp314-win_amd64.whl", hash = "sha256:b0afb8cdd034150d4d9f53926226ed27ad15b7f465e93d7468caaf5eafae0d37"}, + {file = "rpds_py-0.26.0-cp314-cp314-win_arm64.whl", hash = "sha256:ca3f059f4ba485d90c8dc75cb5ca897e15325e4e609812ce57f896607c1c0867"}, + {file = "rpds_py-0.26.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:5afea17ab3a126006dc2f293b14ffc7ef3c85336cf451564a0515ed7648033da"}, + {file = "rpds_py-0.26.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:69f0c0a3df7fd3a7eec50a00396104bb9a843ea6d45fcc31c2d5243446ffd7a7"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:801a71f70f9813e82d2513c9a96532551fce1e278ec0c64610992c49c04c2dad"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:df52098cde6d5e02fa75c1f6244f07971773adb4a26625edd5c18fee906fa84d"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bc596b30f86dc6f0929499c9e574601679d0341a0108c25b9b358a042f51bca"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9dfbe56b299cf5875b68eb6f0ebaadc9cac520a1989cac0db0765abfb3709c19"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac64f4b2bdb4ea622175c9ab7cf09444e412e22c0e02e906978b3b488af5fde8"}, + {file = "rpds_py-0.26.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:181ef9b6bbf9845a264f9aa45c31836e9f3c1f13be565d0d010e964c661d1e2b"}, + {file = "rpds_py-0.26.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:49028aa684c144ea502a8e847d23aed5e4c2ef7cadfa7d5eaafcb40864844b7a"}, + {file = "rpds_py-0.26.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:e5d524d68a474a9688336045bbf76cb0def88549c1b2ad9dbfec1fb7cfbe9170"}, + {file = "rpds_py-0.26.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c1851f429b822831bd2edcbe0cfd12ee9ea77868f8d3daf267b189371671c80e"}, + {file = "rpds_py-0.26.0-cp314-cp314t-win32.whl", hash = "sha256:7bdb17009696214c3b66bb3590c6d62e14ac5935e53e929bcdbc5a495987a84f"}, + {file = "rpds_py-0.26.0-cp314-cp314t-win_amd64.whl", hash = "sha256:f14440b9573a6f76b4ee4770c13f0b5921f71dde3b6fcb8dabbefd13b7fe05d7"}, + {file = "rpds_py-0.26.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:7a48af25d9b3c15684059d0d1fc0bc30e8eee5ca521030e2bffddcab5be40226"}, + {file = "rpds_py-0.26.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0c71c2f6bf36e61ee5c47b2b9b5d47e4d1baad6426bfed9eea3e858fc6ee8806"}, + {file = "rpds_py-0.26.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d815d48b1804ed7867b539236b6dd62997850ca1c91cad187f2ddb1b7bbef19"}, + {file = "rpds_py-0.26.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:84cfbd4d4d2cdeb2be61a057a258d26b22877266dd905809e94172dff01a42ae"}, + {file = "rpds_py-0.26.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fbaa70553ca116c77717f513e08815aec458e6b69a028d4028d403b3bc84ff37"}, + {file = "rpds_py-0.26.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39bfea47c375f379d8e87ab4bb9eb2c836e4f2069f0f65731d85e55d74666387"}, + {file = "rpds_py-0.26.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1533b7eb683fb5f38c1d68a3c78f5fdd8f1412fa6b9bf03b40f450785a0ab915"}, + {file = "rpds_py-0.26.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c5ab0ee51f560d179b057555b4f601b7df909ed31312d301b99f8b9fc6028284"}, + {file = "rpds_py-0.26.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e5162afc9e0d1f9cae3b577d9c29ddbab3505ab39012cb794d94a005825bde21"}, + {file = "rpds_py-0.26.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:43f10b007033f359bc3fa9cd5e6c1e76723f056ffa9a6b5c117cc35720a80292"}, + {file = "rpds_py-0.26.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e3730a48e5622e598293eee0762b09cff34dd3f271530f47b0894891281f051d"}, + {file = "rpds_py-0.26.0-cp39-cp39-win32.whl", hash = "sha256:4b1f66eb81eab2e0ff5775a3a312e5e2e16bf758f7b06be82fb0d04078c7ac51"}, + {file = "rpds_py-0.26.0-cp39-cp39-win_amd64.whl", hash = "sha256:519067e29f67b5c90e64fb1a6b6e9d2ec0ba28705c51956637bac23a2f4ddae1"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3c0909c5234543ada2515c05dc08595b08d621ba919629e94427e8e03539c958"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:c1fb0cda2abcc0ac62f64e2ea4b4e64c57dfd6b885e693095460c61bde7bb18e"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84d142d2d6cf9b31c12aa4878d82ed3b2324226270b89b676ac62ccd7df52d08"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a547e21c5610b7e9093d870be50682a6a6cf180d6da0f42c47c306073bfdbbf6"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:35e9a70a0f335371275cdcd08bc5b8051ac494dd58bff3bbfb421038220dc871"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0dfa6115c6def37905344d56fb54c03afc49104e2ca473d5dedec0f6606913b4"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:313cfcd6af1a55a286a3c9a25f64af6d0e46cf60bc5798f1db152d97a216ff6f"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f7bf2496fa563c046d05e4d232d7b7fd61346e2402052064b773e5c378bf6f73"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:aa81873e2c8c5aa616ab8e017a481a96742fdf9313c40f14338ca7dbf50cb55f"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:68ffcf982715f5b5b7686bdd349ff75d422e8f22551000c24b30eaa1b7f7ae84"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6188de70e190847bb6db3dc3981cbadff87d27d6fe9b4f0e18726d55795cee9b"}, + {file = "rpds_py-0.26.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1c962145c7473723df9722ba4c058de12eb5ebedcb4e27e7d902920aa3831ee8"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f61a9326f80ca59214d1cceb0a09bb2ece5b2563d4e0cd37bfd5515c28510674"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:183f857a53bcf4b1b42ef0f57ca553ab56bdd170e49d8091e96c51c3d69ca696"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:941c1cfdf4799d623cf3aa1d326a6b4fdb7a5799ee2687f3516738216d2262fb"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72a8d9564a717ee291f554eeb4bfeafe2309d5ec0aa6c475170bdab0f9ee8e88"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:511d15193cbe013619dd05414c35a7dedf2088fcee93c6bbb7c77859765bd4e8"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aea1f9741b603a8d8fedb0ed5502c2bc0accbc51f43e2ad1337fe7259c2b77a5"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4019a9d473c708cf2f16415688ef0b4639e07abaa569d72f74745bbeffafa2c7"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:093d63b4b0f52d98ebae33b8c50900d3d67e0666094b1be7a12fffd7f65de74b"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2abe21d8ba64cded53a2a677e149ceb76dcf44284202d737178afe7ba540c1eb"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:4feb7511c29f8442cbbc28149a92093d32e815a28aa2c50d333826ad2a20fdf0"}, + {file = "rpds_py-0.26.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e99685fc95d386da368013e7fb4269dd39c30d99f812a8372d62f244f662709c"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a90a13408a7a856b87be8a9f008fff53c5080eea4e4180f6c2e546e4a972fb5d"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3ac51b65e8dc76cf4949419c54c5528adb24fc721df722fd452e5fbc236f5c40"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59b2093224a18c6508d95cfdeba8db9cbfd6f3494e94793b58972933fcee4c6d"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4f01a5d6444a3258b00dc07b6ea4733e26f8072b788bef750baa37b370266137"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b6e2c12160c72aeda9d1283e612f68804621f448145a210f1bf1d79151c47090"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cb28c1f569f8d33b2b5dcd05d0e6ef7005d8639c54c2f0be824f05aedf715255"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1766b5724c3f779317d5321664a343c07773c8c5fd1532e4039e6cc7d1a815be"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b6d9e5a2ed9c4988c8f9b28b3bc0e3e5b1aaa10c28d210a594ff3a8c02742daf"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b5f7a446ddaf6ca0fad9a5535b56fbfc29998bf0e0b450d174bbec0d600e1d72"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:eed5ac260dd545fbc20da5f4f15e7efe36a55e0e7cf706e4ec005b491a9546a0"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:582462833ba7cee52e968b0341b85e392ae53d44c0f9af6a5927c80e539a8b67"}, + {file = "rpds_py-0.26.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:69a607203441e07e9a8a529cff1d5b73f6a160f22db1097211e6212a68567d11"}, + {file = "rpds_py-0.26.0.tar.gz", hash = "sha256:20dae58a859b0906f0685642e591056f1e787f3a8b39c8e8749a45dc7d26bdb0"}, ] [[package]] @@ -4809,6 +4861,28 @@ files = [ {file = "tornado-6.5.1.tar.gz", hash = "sha256:84ceece391e8eb9b2b95578db65e920d2a61070260594819589609ba9bc6308c"}, ] +[[package]] +name = "tqdm" +version = "4.67.1" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] +discord = ["requests"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + [[package]] name = "traitlets" version = "5.14.3" @@ -4827,26 +4901,26 @@ test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0, [[package]] name = "types-python-dateutil" -version = "2.9.0.20250516" +version = "2.9.0.20250708" description = "Typing stubs for python-dateutil" optional = false python-versions = ">=3.9" groups = ["notebooks"] files = [ - {file = "types_python_dateutil-2.9.0.20250516-py3-none-any.whl", hash = "sha256:2b2b3f57f9c6a61fba26a9c0ffb9ea5681c9b83e69cd897c6b5f668d9c0cab93"}, - {file = "types_python_dateutil-2.9.0.20250516.tar.gz", hash = "sha256:13e80d6c9c47df23ad773d54b2826bd52dbbb41be87c3f339381c1700ad21ee5"}, + {file = "types_python_dateutil-2.9.0.20250708-py3-none-any.whl", hash = "sha256:4d6d0cc1cc4d24a2dc3816024e502564094497b713f7befda4d5bc7a8e3fd21f"}, + {file = "types_python_dateutil-2.9.0.20250708.tar.gz", hash = "sha256:ccdbd75dab2d6c9696c350579f34cffe2c281e4c5f27a585b2a2438dd1d5c8ab"}, ] [[package]] name = "typing-extensions" -version = "4.14.0" +version = "4.14.1" description = "Backported and Experimental Type Hints for Python 3.9+" optional = false python-versions = ">=3.9" groups = ["main", "dev", "docs", "notebooks"] files = [ - {file = "typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"}, - {file = "typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4"}, + {file = "typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76"}, + {file = "typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36"}, ] markers = {dev = "python_version == \"3.10\"", docs = "python_version == \"3.10\""} @@ -5144,4 +5218,4 @@ files = [ [metadata] lock-version = "2.1" python-versions = ">=3.10.12,<3.12" -content-hash = "478f515b09f4590fb5782699e16ecb4e1290d81e1f1656bce8445ef4b2fe61ac" +content-hash = "4647ed5cc1864dd70367c93550dea435888131bdcfdd62403f6dcdab4d5a8b3e" diff --git a/pyproject.toml b/pyproject.toml index 202f1d0d..e8ee8c1d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,6 +39,7 @@ typing-extensions = "^4.12.2" ipython = "^8.27.0" importlib-resources = { version = "*", python = "<3.11" } python-dotenv = "^1.1.0" +tqdm = "^4.67.1" [tool.poetry.group.dev.dependencies] pytest = "^8.3.5" diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py b/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py deleted file mode 100644 index 3ba9a305..00000000 --- a/smart_control/reinforcement_learning/scripts/generate_gin_config_files.py +++ /dev/null @@ -1,189 +0,0 @@ -""" -Grid Configuration Generator for Gin Config Files - -This script generates multiple variations of a gin config file by creating a -grid of different values for specified parameters. -""" - -import argparse -from itertools import product -import logging -import os -import re - -from smart_control.utils.constants import ROOT_DIR -from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH -from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR - -logger = logging.getLogger(__name__) -# Configure logging -logging.basicConfig( - level=logging.WARNING, - format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', -) - - -def read_config_file(filepath): - """Read the base configuration file.""" - with open(filepath, 'r', encoding='utf-8') as f: - return f.read() - - -def modify_config(config_content, param_name, param_value): - """ - Modify a specific parameter in the config content. - Matches parameter assignments with literal values (numbers or quoted strings) - but not function calls that start with @ or contain parentheses. - Returns the modified config content. - """ - # This pattern has several components: - # 1. Match line start or after newline - # 2. Capture any leading text - # 3. Capture the parameter name, equals sign, and surrounding whitespace - # 4. Capture the value, which can be either: - # - A quoted string (with ' or ") - # - Or a sequence that doesn't start with @ and doesn't contain () - # 5. Capture the end of line - - pattern = ( - rf'(^|\n)' - rf'(.*?)' - rf'({re.escape(param_name)}\s*=)' - rf'((?:[\'\"].*?[\'\"])|(?:[^@\n][^()\n]*))' - rf'($|\n)' - ) - # Format replacement to preserve surrounding context - replacement = rf'\g<1>\g<2>\g<3>{param_value}\g<5>' - - modified_content = re.sub( - pattern, replacement, config_content, flags=re.MULTILINE - ) - - if modified_content == config_content: - logger.warning( - "Warning: Parameter '%s' not found in config file.", param_name - ) - - return modified_content - - -def generate_configs(base_config_path, output_dir, param_grids): - """ - Generate multiple config files based on parameter grids. - - Args: - base_config_path: Path to the base config file - output_dir: Directory to save generated config files - param_grids: Dictionary mapping parameter names to lists of values - """ - # Create output directory if it doesn't exist - os.makedirs(output_dir, exist_ok=True) - - # Read the base config file - base_config = read_config_file(base_config_path) - - # Get parameter names and their possible values - param_names = list(param_grids.keys()) - param_values = [param_grids[name] for name in param_names] - - # Generate all combinations of parameter values - for combination in product(*param_values): - # Create a new config file for each combination - modified_config = base_config - - # Build filename parts and track modifications for this combination - filename_parts = [] - - for i, param_name in enumerate(param_names): - param_value = combination[i] - modified_config = modify_config(modified_config, param_name, param_value) - - # Add to filename parts (clean parameter name and value) - clean_name = param_name.replace('_', '') - - if param_name == 'start_timestamp': - filename_parts.append(f'{clean_name}-{param_value[1:11]}') - else: - filename_parts.append(f'{clean_name}-{param_value}') - - # Generate a filename based on the parameter values - output_filename = f"config_{'_'.join(filename_parts)}.gin" - output_path = os.path.join(output_dir, output_filename) - - # Write the modified config to a new file - with open(output_path, 'w', encoding='utf-8') as f: - f.write(modified_config) - - logger.info('Generated: %s', output_path) - - -def main(): - parser = argparse.ArgumentParser( - description='Generate grid of gin config files' - ) - parser.add_argument( - 'base_config', - default=SB1_GIN_CONFIG_FILEPATH, - help='Path to the base gin config file', - ) - parser.add_argument( - '--output-dir', - default=os.path.join(SB1_TRAIN_CONFIGS_DIR, 'generated_configs'), - help='Directory to save generated config files', - ) - parser.add_argument( - '--time-steps', - type=str, - default='300', - help='Comma-separated list of time_step_sec values', - ) - parser.add_argument( - '--num-days', - type=str, - default='1,7,14,30', - help='Comma-separated list of num_days_in_episode values', - ) - parser.add_argument( - '--start-timestamps', - type=str, - default='2023-07-06', - help='Comma-separated list of start_timestamp dates', - ) - - args = parser.parse_args() - - # This ensures that it works both with absolute and relative paths - if not os.path.isabs(args.base_config): - args.base_config = os.path.join(ROOT_DIR, args.base_config) - if not os.path.isabs(args.output_dir): - args.output_dir = os.path.join(ROOT_DIR, args.output_dir) - - # Convert comma-separated values to lists - time_steps = [step.strip() for step in args.time_steps.split(',')] - num_days = [days.strip() for days in args.num_days.split(',')] - start_timestamps = [ - f"'{ timestamp.strip() } 07:00:00+00:00'" - for timestamp in args.start_timestamps.split(',') - ] - - logger.info('Start timestamps: %s', start_timestamps) - - # Define the parameter grid - param_grid = { - 'time_step_sec': time_steps, - 'num_days_in_episode': num_days, - 'start_timestamp': start_timestamps, - } - - # Generate configurations - generate_configs(args.base_config, args.output_dir, param_grid) - - logger.info( - 'Generated %d configuration files in %s', - len(time_steps) * len(num_days), - args.output_dir, - ) - - -if __name__ == '__main__': - main() diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_configs.py b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py new file mode 100644 index 00000000..184a3546 --- /dev/null +++ b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py @@ -0,0 +1,242 @@ +""" +Grid Configuration Generator for Gin Config Files + +This script generates multiple variations of a gin config file by creating a +grid of different values for specified parameters. +""" + +from itertools import product +import logging +import os +import re +from typing import Sequence + +from absl import app +from absl import flags + +from smart_control.utils.constants import ROOT_DIR +from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH +from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR + +SB1_GENERATED_CONFIGS_DIR = os.path.join(SB1_TRAIN_CONFIGS_DIR, 'generated_configs') # pylint:disable=line-too-long + +# LOGGER + +logger = logging.getLogger(__name__) + +# logging.basicConfig( +# level=logging.INFO, +# format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', +# ) + +logging.basicConfig( + level=logging.INFO, + format='[%(message)s]', +) + +# FLAGS + +FLAGS = flags.FLAGS + +flags.DEFINE_string( + name='base_config', + default=SB1_GIN_CONFIG_FILEPATH, + help='Path to the base gin config file', +) +flags.DEFINE_string( + name='output_dir', + default=SB1_GENERATED_CONFIGS_DIR, + help='Directory to save generated config files', +) +flags.DEFINE_list( + name='time_steps', + default=['300'], + help='Comma-separated list of time_step_sec values', +) +flags.DEFINE_list( + name='num_days', + default=['1', '7', '14', '30'], + help='Comma-separated list of num_days_in_episode values', +) +flags.DEFINE_list( + name='start_timestamps', + default=['2023-07-06'], + help='Comma-separated list of start_timestamp dates', +) + + +def read_config_file(filepath): + """Read the base configuration file.""" + with open(filepath, 'r', encoding='utf-8') as f: + return f.read() + + +def modify_config(config_content, param_name, param_value): + """ + Modify a specific parameter in the config content. + Matches parameter assignments with literal values (numbers or quoted strings) + but not function calls that start with @ or contain parentheses. + Returns the modified config content. + """ + # This pattern has several components: + # 1. Match line start or after newline + # 2. Capture any leading text + # 3. Capture the parameter name, equals sign, and surrounding whitespace + # 4. Capture the value, which can be either: + # - A quoted string (with ' or ") + # - Or a sequence that doesn't start with @ and doesn't contain () + # 5. Capture the end of line + + pattern = ( + rf'(^|\n)' + rf'(.*?)' + rf'({re.escape(param_name)}\s*=)' + rf'((?:[\'\"].*?[\'\"])|(?:[^@\n][^()\n]*))' + rf'($|\n)' + ) + # Format replacement to preserve surrounding context + replacement = rf'\g<1>\g<2>\g<3>{param_value}\g<5>' + + modified_content = re.sub( + pattern, replacement, config_content, flags=re.MULTILINE + ) + + if modified_content == config_content: + logger.warning( + "Warning: Parameter '%s' not found in config file.", param_name + ) + + return modified_content + + +# def generate_config(base_config_path: str, output_dir: str, params: dict): +# pass + + +def generate_configs(base_config_path: str, output_dir: str, params_grid: dict): + """ + Generate multiple config files based on parameter grids. + + Args: + base_config_path: Path to the base config file + output_dir: Directory to save generated config files + params_grid: Dictionary mapping parameter names to lists of values + + Example: + ```py + grid = { + 'time_step_sec': ['300'], + 'num_days_in_episode': ['1', '7', '14', '30'], + 'start_timestamp': ['2023-07-06 07:00:00+00:00'] + } + generate_configs("/path/to/my_config.gin", "/path/to/output/dir", grid) + ``` + """ + os.makedirs(output_dir, exist_ok=True) + + base_config = read_config_file(base_config_path) + + param_names = list(params_grid.keys()) + param_values = list(params_grid.values()) + + param_filename_aliases = { + 'time_step_sec': 'step', + 'num_days_in_episode': 'days', + 'start_timestamp': 'start', + # can add more filename aliases here + } + + # Generate all combinations of parameter values + for combination in product(*param_values): + # combination is like ('300', '1', '2023-07-06 07:00:00+00:00') + + # params = dict(zip(param_names, combination)) + # > {'time_step_sec': '300', + # > 'num_days_in_episode': '1', + # > 'start_timestamp': '2023-07-06 07:00:00+00:00'} + + # todo: generate_config(base_config_path, output_dir, params) + modified_config = base_config # consider passing the base_config instead + + filename_parts = [] + for i, param_name in enumerate(param_names): + param_value = combination[i] + modified_config = modify_config(modified_config, param_name, param_value) + + clean_name = param_filename_aliases.get(param_name) or param_name.replace('_', '') # pylint:disable=line-too-long + if param_name == 'start_timestamp': + filename_part = f'{clean_name}_{param_value[0:11]}'.replace('-', '') + else: + filename_part = f'{clean_name}_{param_value}' + filename_parts.append(filename_part.strip()) + + output_filename = f"{'_'.join(filename_parts)}.gin" + # > "step_300_days_7_start_20230706.gin" + output_path = os.path.join(output_dir, output_filename) + + with open(output_path, 'w', encoding='utf-8') as f: + f.write(modified_config) + + logger.info('Generated: %s', output_path) + + +def main(argv: Sequence[str]): + """When running absl app, we need the `argv` param, even though it is unused. + + See: + + + https://abseil.io/docs/python/guides/app + + https://google.github.io/styleguide/pyguide.html#317-main + + go/python-readability-advice#unused_argv + """ + if len(argv) > 1: + raise app.UsageError('Too many command-line arguments.') + + base_config_filepath = FLAGS.base_config + output_dir = FLAGS.output_dir + time_steps = FLAGS.time_steps + num_days = FLAGS.num_days + start_timestamps = FLAGS.start_timestamps + + # Handle both absolute and relative paths: + if not os.path.isabs(base_config_filepath): + logging.info('RELATIVE BASE CONFIG: %s', base_config_filepath) + base_config_filepath = os.path.join(ROOT_DIR, base_config_filepath) + + if not os.path.isabs(output_dir): + logging.info('RELATIVE OUTPUT DIR: %s', output_dir) + output_dir = os.path.join(ROOT_DIR, output_dir) + + base_config_filepath = os.path.abspath(base_config_filepath) + output_dir = os.path.abspath(output_dir) + + logging.info('Base Config Filepath: %s', base_config_filepath) + logging.info('Output Dir: %s', output_dir) + + # Convert dates to datetimes: + # start_timestamps = [f'{t.strip()} 07:00:00+00:00' for t in start_timestamps] + # todo: get this to work without hard-coding in the extra quotes + start_timestamps = [f"'{t.strip()} 07:00:00+00:00'" for t in start_timestamps] + + logging.info('Time Steps: %s', time_steps) + logging.info('Num Days: %s', num_days) + logging.info('Start Timestamps: %s', start_timestamps) + + params_grid = { + 'time_step_sec': time_steps, + 'num_days_in_episode': num_days, + 'start_timestamp': start_timestamps, + } + + generate_configs(base_config_filepath, output_dir, params_grid) + + logger.info( + 'Generated %d configuration files in %s', + len(time_steps) * len(num_days), + output_dir, + ) + + +if __name__ == '__main__': + + app.run(main) diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py b/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py new file mode 100644 index 00000000..823459ed --- /dev/null +++ b/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py @@ -0,0 +1,52 @@ +"""Tests for gin config generation script.""" + +from absl.testing import absltest +from absl.testing import parameterized + +from smart_control.reinforcement_learning.scripts.generate_gin_configs import modify_config + +GIN_CONFIG_EXCERPT = """ + + # Finite difference settings. + time_step_sec = 300 + convergence_threshold = 0.1 + iteration_limit = 100 + iteration_warning = 30 + start_timestamp = '2023-07-06 07:00:00+00:00' + + # Top-level Environment parameters + discount_factor = 0.9 + num_days_in_episode=14 + metrics_reporting_interval=10 + label='tunable_simulator_sb1' + num_hod_features = 1 + num_dow_features = 1 + +""" # this was copied directly from the sb1 gin config file + + +class ConfigGenerationTest(parameterized.TestCase): + + MODIFICATION_PARAMS = [ + ("time_step_sec", 60, "time_step_sec =60"), + ("time_step_sec", 180, "time_step_sec =180"), + ("num_days_in_episode", 7, "num_days_in_episode=7"), + ("num_days_in_episode", 14, "num_days_in_episode=14"), + ( + "start_timestamp", + "'2024-01-01 07:00:00+00:00'", # todo: work without '' + "start_timestamp ='2024-01-01 07:00:00+00:00", + ), + ] + + @parameterized.parameters(MODIFICATION_PARAMS) + def test_modify_config(self, param_name, param_value, expected_content): + + # if param_name == "start_timestamp": + # breakpoint() + modified = modify_config(GIN_CONFIG_EXCERPT, param_name, param_value) + self.assertIn(expected_content, modified) + + +if __name__ == "__main__": + absltest.main() diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py index 87224a3d..98c26e3a 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py @@ -19,7 +19,7 @@ from smart_control.reinforcement_learning.observers.print_status_observer import PrintStatusObserver from smart_control.reinforcement_learning.policies.schedule_policy import create_baseline_schedule_policy from smart_control.reinforcement_learning.replay_buffer.replay_buffer import ReplayBufferManager -from smart_control.reinforcement_learning.utils.config import REPLAY_BUFFER_DATA_PATH +from smart_control.reinforcement_learning.utils.constants import RL_STARTER_BUFFERS_DIR from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment from smart_control.utils.constants import ROOT_DIR from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR @@ -63,7 +63,7 @@ def populate_replay_buffer( 'This buffer path already exists. This would override the existing' ' buffer. Please use another path' ) - raise FileExistsError('Buffer path already exists, would be overriden') from err # pylint: disable=line-too-long + raise FileExistsError('Buffer path already exists, would be overridden') from err # pylint: disable=line-too-long # Load environment logger.info('Loading environment from standard config') @@ -200,7 +200,7 @@ def populate_replay_buffer( buffer_path_ = args.buffer_name if not os.path.isabs(args.buffer_name): - buffer_path_ = os.path.join(REPLAY_BUFFER_DATA_PATH, args.buffer_name) + buffer_path_ = os.path.join(RL_STARTER_BUFFERS_DIR, args.buffer_name) populate_replay_buffer( buffer_path=buffer_path_, diff --git a/smart_control/reinforcement_learning/scripts/train.py b/smart_control/reinforcement_learning/scripts/train.py index 0b223527..d4a8ef60 100644 --- a/smart_control/reinforcement_learning/scripts/train.py +++ b/smart_control/reinforcement_learning/scripts/train.py @@ -499,9 +499,4 @@ def train_agent( checkpoint_interval=args.checkpoint_interval, learner_iterations=args.learner_iterations, scenario_config_path=args.scenario_config_path, - num_eval_episodes=args.num_eval_episodes, - log_interval=args.log_interval, - checkpoint_interval=args.checkpoint_interval, - learner_iterations=args.learner_iterations, - scenario_config_path=args.scenario_config_path, ) diff --git a/smart_control/reinforcement_learning/utils/constants.py b/smart_control/reinforcement_learning/utils/constants.py index 98e7996d..63b996f4 100644 --- a/smart_control/reinforcement_learning/utils/constants.py +++ b/smart_control/reinforcement_learning/utils/constants.py @@ -9,7 +9,7 @@ RL_EXPERIMENT_RESULTS_DIR = os.path.join(RL_DIR, 'experiment_results') RL_EXPERIMENT_METRICS_DIR = os.path.join(RL_EXPERIMENT_RESULTS_DIR, 'metrics') RL_EXPERIMENT_RENDERS_DIR = os.path.join(RL_EXPERIMENT_RESULTS_DIR, 'renders') -# RL_STARTER_BUFFERS_DIR = os.path.join(RL_DIR, 'data', 'starter_buffers') +RL_STARTER_BUFFERS_DIR = os.path.join(RL_DIR, 'data', 'starter_buffers') # Default time zone for plotting and simulations DEFAULT_TIME_ZONE = 'US/Pacific' From 763f60edf46d60009ae56fffc9b0a49929182edf Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Thu, 26 Jun 2025 20:49:12 +0000 Subject: [PATCH 17/34] Update gitignore --- .gitignore | 17 +++++++++-------- .../scripts/generate_gin_configs.py | 12 ++++++------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 2877bc65..0e2dde36 100644 --- a/.gitignore +++ b/.gitignore @@ -21,15 +21,16 @@ data/sb1.zip data/sb1/ # results files: -*/**/output_data/ -*/**/metrics/ -**/videos/ -**/train/ -**/eval/ -smart_control/learning/ +#*/**/output_data/ +#*/**/metrics/ +#**/videos/ +#**/train/ +#**/eval/ + +smart_control/configs/resources/sb1/train_sim_configs/generated/ smart_control/simulator/videos -smart_control/refactor/data/ -smart_control/refactor/experiment_results/ +smart_control/reinforcement_learning/data/ +smart_control/reinforcement_learning/experiment_results/ # jupyter notebook checkpoints: smart_control/notebooks/.ipynb_checkpoints/ diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_configs.py b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py index 184a3546..09a0f061 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_configs.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py @@ -18,16 +18,16 @@ from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR -SB1_GENERATED_CONFIGS_DIR = os.path.join(SB1_TRAIN_CONFIGS_DIR, 'generated_configs') # pylint:disable=line-too-long +SB1_GENERATED_CONFIGS_DIR = os.path.join(SB1_TRAIN_CONFIGS_DIR, 'generated') -# LOGGER +# LOGGING logger = logging.getLogger(__name__) -# logging.basicConfig( -# level=logging.INFO, -# format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', -# ) +logging.basicConfig( + level=logging.WARNING, + format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', +) logging.basicConfig( level=logging.INFO, From 27dae87b9ee230e68b53b96cd1c5e9f5d0c39153 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Thu, 26 Jun 2025 21:06:55 +0000 Subject: [PATCH 18/34] Test config file generation --- .gitignore | 1 + .../scripts/generate_gin_configs.py | 12 +++++-- .../scripts/generate_gin_configs_test.py | 36 +++++++++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 0e2dde36..3503ebdb 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,7 @@ data/sb1/ #**/eval/ smart_control/configs/resources/sb1/train_sim_configs/generated/ +smart_control/configs/resources/sb1/train_sim_configs/generation_test/ smart_control/simulator/videos smart_control/reinforcement_learning/data/ smart_control/reinforcement_learning/experiment_results/ diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_configs.py b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py index 09a0f061..ac90706f 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_configs.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py @@ -113,7 +113,11 @@ def modify_config(config_content, param_name, param_value): # pass -def generate_configs(base_config_path: str, output_dir: str, params_grid: dict): +def generate_configs( + params_grid: dict, + base_config_path: str = SB1_GIN_CONFIG_FILEPATH, + output_dir: str = SB1_GENERATED_CONFIGS_DIR, +): """ Generate multiple config files based on parameter grids. @@ -228,7 +232,11 @@ def main(argv: Sequence[str]): 'start_timestamp': start_timestamps, } - generate_configs(base_config_filepath, output_dir, params_grid) + generate_configs( + base_config_path=base_config_filepath, + output_dir=output_dir, + params_grid=params_grid, + ) logger.info( 'Generated %d configuration files in %s', diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py b/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py index 823459ed..a7b7f919 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py @@ -1,9 +1,14 @@ """Tests for gin config generation script.""" +import os +import shutil + from absl.testing import absltest from absl.testing import parameterized +from smart_control.reinforcement_learning.scripts.generate_gin_configs import generate_configs from smart_control.reinforcement_learning.scripts.generate_gin_configs import modify_config +from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR GIN_CONFIG_EXCERPT = """ @@ -14,6 +19,8 @@ iteration_warning = 30 start_timestamp = '2023-07-06 07:00:00+00:00' + ... + # Top-level Environment parameters discount_factor = 0.9 num_days_in_episode=14 @@ -47,6 +54,35 @@ def test_modify_config(self, param_name, param_value, expected_content): modified = modify_config(GIN_CONFIG_EXCERPT, param_name, param_value) self.assertIn(expected_content, modified) + def test_generate_configs(self): + # setup, using separate temporary directory for generating test files: + test_output_dir = os.path.join(SB1_TRAIN_CONFIGS_DIR, "generation_test") + if os.path.isdir(test_output_dir): + shutil.rmtree(test_output_dir) + self.assertEqual(os.path.isdir(test_output_dir), False) + + grid = { + "time_step_sec": ["300"], + "num_days_in_episode": ["1", "7", "14", "30"], + "start_timestamp": ["2023-07-06 07:00:00+00:00"], + } + generate_configs(output_dir=test_output_dir, params_grid=grid) + + # it creates the output directory: + self.assertEqual(os.path.isdir(test_output_dir), True) + # it generates a number of gin files in there: + generated_file_names = sorted(os.listdir(test_output_dir)) + expected_file_names = [ + "step_300_days_14_start_20230706.gin", + "step_300_days_1_start_20230706.gin", + "step_300_days_30_start_20230706.gin", + "step_300_days_7_start_20230706.gin", + ] + self.assertEqual(generated_file_names, expected_file_names) + + # cleanup: + shutil.rmtree(test_output_dir) + if __name__ == "__main__": absltest.main() From a7a127a37fbfc98e34b79d81ac3f2db0fd9cd3b9 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Thu, 26 Jun 2025 21:23:03 +0000 Subject: [PATCH 19/34] Test read config file --- .../scripts/generate_gin_configs.py | 10 ++++++---- .../scripts/generate_gin_configs_test.py | 15 +++++++++++++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_configs.py b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py index ac90706f..d52b9db6 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_configs.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py @@ -24,10 +24,10 @@ logger = logging.getLogger(__name__) -logging.basicConfig( - level=logging.WARNING, - format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', -) +# logging.basicConfig( +# level=logging.WARNING, +# format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', +# ) logging.basicConfig( level=logging.INFO, @@ -64,6 +64,8 @@ help='Comma-separated list of start_timestamp dates', ) +# FUNCTIONS + def read_config_file(filepath): """Read the base configuration file.""" diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py b/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py index a7b7f919..d267203f 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py @@ -8,6 +8,8 @@ from smart_control.reinforcement_learning.scripts.generate_gin_configs import generate_configs from smart_control.reinforcement_learning.scripts.generate_gin_configs import modify_config +from smart_control.reinforcement_learning.scripts.generate_gin_configs import read_config_file +from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR GIN_CONFIG_EXCERPT = """ @@ -29,11 +31,19 @@ num_hod_features = 1 num_dow_features = 1 -""" # this was copied directly from the sb1 gin config file +""" # content was copied directly from the sb1 gin config file class ConfigGenerationTest(parameterized.TestCase): + def test_read_config(self): + content = read_config_file(SB1_GIN_CONFIG_FILEPATH) + self.assertIsInstance(content, str) + self.assertEqual(len(content), 40805) + self.assertIn("time_step_sec = 300", content) + self.assertIn("num_days_in_episode=14", content) + self.assertIn("start_timestamp = '2023-07-06 07:00:00+00:00'", content) + MODIFICATION_PARAMS = [ ("time_step_sec", 60, "time_step_sec =60"), ("time_step_sec", 180, "time_step_sec =180"), @@ -41,7 +51,8 @@ class ConfigGenerationTest(parameterized.TestCase): ("num_days_in_episode", 14, "num_days_in_episode=14"), ( "start_timestamp", - "'2024-01-01 07:00:00+00:00'", # todo: work without '' + "'2024-01-01 07:00:00+00:00'", # todo: get this to work without '' + # "2024-01-01 07:00:00+00:00", "start_timestamp ='2024-01-01 07:00:00+00:00", ), ] From 5235615babd34199d1f6027d1784289ff4f1c17e Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Thu, 10 Jul 2025 19:25:39 +0000 Subject: [PATCH 20/34] Fix file names - remove quote --- .../reinforcement_learning/scripts/generate_gin_configs.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_configs.py b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py index d52b9db6..13325e6d 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_configs.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py @@ -171,7 +171,8 @@ def generate_configs( clean_name = param_filename_aliases.get(param_name) or param_name.replace('_', '') # pylint:disable=line-too-long if param_name == 'start_timestamp': - filename_part = f'{clean_name}_{param_value[0:11]}'.replace('-', '') + param_value = param_value.replace("'", '') + filename_part = f'{clean_name}_{param_value[0:10]}'.replace('-', '') else: filename_part = f'{clean_name}_{param_value}' filename_parts.append(filename_part.strip()) From 7a8f1d273b604756e6f69623af4495136e6fc471 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Thu, 10 Jul 2025 19:45:20 +0000 Subject: [PATCH 21/34] Describe the config generation script --- docs/guides/reinforcement_learning/scripts.md | 38 +++++++++++++------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/docs/guides/reinforcement_learning/scripts.md b/docs/guides/reinforcement_learning/scripts.md index 30c23b4f..4d70b194 100644 --- a/docs/guides/reinforcement_learning/scripts.md +++ b/docs/guides/reinforcement_learning/scripts.md @@ -2,26 +2,40 @@ ## Configuration Generation +By default, when training an RL agent, it will use configuration options defined +in the base gin config file (see +"smart_control/configs/resources/\/sim_config.gin"). + +However if you would like to use different configuration options, you can use +the configuration generation script to flexibly create alternative config files +with slight modifications to the base config file. + +Generate different configuration files to use during training: + ```sh python -m smart_control.reinforcement_learning.scripts.generate_gin_configs ``` +By default, the script will use the following parameter grid: + +- `time_steps`: `['300']` +- `num_days`: `['1', '7', '14', '30']` +- `start_timestamps`: ['2023-07-06'] + +Optionally pass any of these command line flags to customize the parameter grid: + ```sh python -m smart_control.reinforcement_learning.scripts.generate_gin_configs \ - /home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/sim_config.gin \ - --output-dir /home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs \ - --time-steps 900 \ - --num-days 14 \ - --start-timestamps 2023-07-21,2023-08-21,2023-10-21,2023-11-21 \ + --time_steps 300,600,900 \ + --num_days 1,7,14 \ + --start_timestamps 2023-07-06,2023-08-06,2023-10-06 ``` -```sh -python scripts/generate_gin_config_files.py /home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/sim_config.gin \ - --output-dir /home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs \ - --time-steps 300,600,900 \ - --num-days 1,7,14 \ - --start-timestamps 2023-07-06,2023-08-06,2023-10-06 -``` +This script will generate a different file for each combination of custom +parameter values you specify. The files will be written to the +"smart_control/configs/resources/\/train_sim_configs/generated" +directory. Each file name will contain the parameter values you choose (e.g. +"step_300_days_1_start_20230706.gin"). ## Starter Buffer Population From baa6ed44b8c8dae203e2fbf58b0556a7f997dc6f Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 11 Jul 2025 18:52:22 +0000 Subject: [PATCH 22/34] Flags WIP --- .../scripts/populate_starter_buffer.py | 129 +++++++++++++----- 1 file changed, 96 insertions(+), 33 deletions(-) diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py index 98c26e3a..491f2622 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py @@ -4,10 +4,11 @@ bootstrap the training process. """ -import argparse import logging import os +from absl import app +from absl import flags import tensorflow as tf from tf_agents.environments import tf_py_environment from tf_agents.policies import py_tf_eager_policy @@ -24,14 +25,54 @@ from smart_control.utils.constants import ROOT_DIR from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR -# Configure logging +DEFAULT_CONFIG_FILEPATH = os.path.join( + SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin' +) + +# LOGGING + +# logging.basicConfig( +# level=logging.INFO, +# format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', +# ) logging.basicConfig( level=logging.INFO, - format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', + format='[%(message)s]', ) logger = logging.getLogger(__name__) +# FLAGS + +FLAGS = flags.FLAGS + +BUFFER_NAME = flags.DEFINE_string( + name='buffer_name', + default=None, + help='Name used to identify the replay buffer', + # required=True, +) +CAPACITY = flags.DEFINE_integer( + name='capacity', default=50000, help='Replay buffer capacity' +) +STEPS_PER_RUN = flags.DEFINE_integer( + name='steps_per_run', default=100, help='Number of steps per actor run' +) +NUM_RUNS = flags.DEFINE_integer( + name='num_runs', default=5, help='Number of actor runs to perform' +) +SEQUENCE_LENGTH = flags.DEFINE_integer( + name='sequence_length', + default=2, + help='Sequence length for the replay buffer', +) +ENV_GIN_CONFIG_FILEPATH = flags.DEFINE_string( + name='env_gin_config_filepath', + default=DEFAULT_CONFIG_FILEPATH, + help='Environment config file', +) + + def populate_replay_buffer( buffer_path, buffer_capacity, @@ -175,38 +216,60 @@ def populate_replay_buffer( return replay_buffer +def main(): + config_filepath = FLAGS.env_gin_config_filepath + if not os.path.isabs(config_filepath): + config_filepath = os.path.join(ROOT_DIR, config_filepath) + + buffer_path = FLAGS.buffer_name + if not os.path.isabs(buffer_path): + buffer_path = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_path) + + populate_replay_buffer( + buffer_path=buffer_path, + buffer_capacity=FLAGS.capacity, + steps_per_run=FLAGS.steps_per_run, + num_runs=FLAGS.num_runs, + sequence_length=FLAGS.sequence_length, + env_gin_config_file_path=config_filepath, + ) + + if __name__ == '__main__': - config_filepath = os.path.join(SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin') - - # fmt: off - # pylint: disable=line-too-long - parser = argparse.ArgumentParser(description='Populate a replay buffer with initial exploration data') - parser.add_argument('--buffer-name', type=str, required=True, help='Name used to identify the replay buffer') - parser.add_argument('--capacity', type=int, default=50000, help='Replay buffer capacity') - parser.add_argument('--steps-per-run', type=int, default=100, help='Number of steps per actor run') - parser.add_argument('--num-runs', type=int, default=5, help='Number of actor runs to perform') - parser.add_argument('--sequence-length', type=int, default=2, help='Sequence length for the replay buffer') - parser.add_argument('--env-gin-config-file-path', type=str, default=config_filepath, help='Environment config file') - # pylint: enable=line-too-long - # fmt: on - args = parser.parse_args() + ## fmt: off + ## pylint: disable=line-too-long - # This makes it work for both relative and absolute paths - if not os.path.isabs(args.env_gin_config_file_path): - args.env_gin_config_file_path = os.path.join( - ROOT_DIR, args.env_gin_config_file_path - ) + # config_filepath = os.path.join(SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin') - buffer_path_ = args.buffer_name - if not os.path.isabs(args.buffer_name): - buffer_path_ = os.path.join(RL_STARTER_BUFFERS_DIR, args.buffer_name) + # parser = argparse.ArgumentParser(description='Populate a replay buffer with initial exploration data') + # parser.add_argument('--buffer-name', type=str, required=True, help='Name used to identify the replay buffer') + # parser.add_argument('--capacity', type=int, default=50000, help='Replay buffer capacity') + # parser.add_argument('--steps-per-run', type=int, default=100, help='Number of steps per actor run') + # parser.add_argument('--num-runs', type=int, default=5, help='Number of actor runs to perform') + # parser.add_argument('--sequence-length', type=int, default=2, help='Sequence length for the replay buffer') + # parser.add_argument('--env-gin-config-file-path', type=str, default=config_filepath, help='Environment config file') + ## pylint: enable=line-too-long + ## fmt: on + # args = parser.parse_args() - populate_replay_buffer( - buffer_path=buffer_path_, - buffer_capacity=args.capacity, - steps_per_run=args.steps_per_run, - num_runs=args.num_runs, - sequence_length=args.sequence_length, - env_gin_config_file_path=args.env_gin_config_file_path, - ) + # This makes it work for both relative and absolute paths + # if not os.path.isabs(args.env_gin_config_file_path): + # args.env_gin_config_file_path = os.path.join( + # ROOT_DIR, args.env_gin_config_file_path + # ) + # + # buffer_path_ = args.buffer_name + # if not os.path.isabs(args.buffer_name): + # buffer_path_ = os.path.join(RL_STARTER_BUFFERS_DIR, args.buffer_name) + # + # populate_replay_buffer( + # buffer_path=buffer_path_, + # buffer_capacity=args.capacity, + # steps_per_run=args.steps_per_run, + # num_runs=args.num_runs, + # sequence_length=args.sequence_length, + # env_gin_config_file_path=args.env_gin_config_file_path, + # ) + + app.run(main) From a45f6cd9197bb752b6738dfa6e1ef48be5b02c68 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Mon, 28 Jul 2025 23:33:25 +0000 Subject: [PATCH 23/34] Attempt to reproduce starter buffer script; fix #115 --- .gitignore | 6 +- .../scripts/generate_gin_configs.py | 5 + .../scripts/populate_starter_buffer.py | 143 ++++++++---------- 3 files changed, 76 insertions(+), 78 deletions(-) diff --git a/.gitignore b/.gitignore index 3503ebdb..422765a4 100644 --- a/.gitignore +++ b/.gitignore @@ -29,8 +29,12 @@ data/sb1/ smart_control/configs/resources/sb1/train_sim_configs/generated/ smart_control/configs/resources/sb1/train_sim_configs/generation_test/ + smart_control/simulator/videos -smart_control/reinforcement_learning/data/ + +smart_control/reinforcement_learning/data/* +!smart_control/reinforcement_learning/data/.gitkeep + smart_control/reinforcement_learning/experiment_results/ # jupyter notebook checkpoints: diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_configs.py b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py index 13325e6d..482781a0 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_configs.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_configs.py @@ -79,6 +79,11 @@ def modify_config(config_content, param_name, param_value): Matches parameter assignments with literal values (numbers or quoted strings) but not function calls that start with @ or contain parentheses. Returns the modified config content. + + TODO: instead of doing regex string parsing, which may be brittle and limited, + let's consider using gin.parse_config_file() to get the config values, + then update them as desired, then write the updated config to file. + Or maybe use gin.bind_parameter(). """ # This pattern has several components: # 1. Match line start or after newline diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py index 491f2622..44f9fda3 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py @@ -4,8 +4,10 @@ bootstrap the training process. """ +from datetime import datetime import logging import os +from typing import Sequence from absl import app from absl import flags @@ -25,22 +27,30 @@ from smart_control.utils.constants import ROOT_DIR from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR +# pylint:disable-next=unused-import +from smart_control.reinforcement_learning.utils.config import get_histogram_path # isort:skip + DEFAULT_CONFIG_FILEPATH = os.path.join( SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin' ) # LOGGING -# logging.basicConfig( -# level=logging.INFO, -# format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', -# ) -logging.basicConfig( - level=logging.INFO, - format='[%(message)s]', -) logger = logging.getLogger(__name__) +# VERBOSE_LOGGING = bool(os.getenv('VERBOSE_LOGGING', default='false') == 'true') # pylint:disable=line-too-long +# +# if VERBOSE_LOGGING: +# logging.basicConfig( +# level=logging.INFO, +# format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', +# ) +# else: +# logging.basicConfig( +# level=logging.INFO, +# format='[%(message)s]', +# ) + # FLAGS @@ -49,8 +59,10 @@ BUFFER_NAME = flags.DEFINE_string( name='buffer_name', default=None, - help='Name used to identify the replay buffer', - # required=True, + help=( + 'Name used to identify the replay buffer. If omitted, will use current' + ' timestamp.' + ), ) CAPACITY = flags.DEFINE_integer( name='capacity', default=50000, help='Replay buffer capacity' @@ -66,51 +78,50 @@ default=2, help='Sequence length for the replay buffer', ) -ENV_GIN_CONFIG_FILEPATH = flags.DEFINE_string( - name='env_gin_config_filepath', +CONFIG_FILEPATH = flags.DEFINE_string( + name='config_filepath', default=DEFAULT_CONFIG_FILEPATH, help='Environment config file', ) def populate_replay_buffer( - buffer_path, - buffer_capacity, - steps_per_run, - num_runs, - sequence_length, - env_gin_config_file_path, + buffer_filepath: str, + config_filepath: str, + buffer_capacity: int, + steps_per_run: int, + num_runs: int, + sequence_length: int, ): """Populates a replay buffer with initial exploration data. Args: - buffer_path: Path where the replay buffer will be saved. - buffer_capacity: Maximum size of the replay buffer - steps_per_run: Number of steps per actor run - num_runs: Number of actor runs to perform - sequence_length: Length of sequences to store in the replay buffer - env_gin_config_file_path: Path to the environment configuration file + buffer_filepath: Path where the replay buffer will be saved. + config_filepath: Path to the environment gin configuration file. + buffer_capacity: Maximum size of the replay buffer. + steps_per_run: Number of steps per actor run. + num_runs: Number of actor runs to perform. + sequence_length: Length of sequences to store in the replay buffer. Returns: The replay buffer. """ - logger.info('Buffer path: %s', buffer_path) + logger.info('Buffer filepath: %s', os.path.abspath(buffer_filepath)) # Create directory if it doesn't exist try: - os.makedirs(buffer_path, exist_ok=False) + os.makedirs(buffer_filepath, exist_ok=False) except FileExistsError as err: - logger.exception( - 'This buffer path already exists. This would override the existing' - ' buffer. Please use another path' + error_message = ( + 'Buffer path already exists. This would override the existing buffer.' + ' Please use another path.' ) - raise FileExistsError('Buffer path already exists, would be overridden') from err # pylint: disable=line-too-long + logger.exception(error_message) + raise FileExistsError(error_message) from err # Load environment logger.info('Loading environment from standard config') - collect_env = create_and_setup_environment( - env_gin_config_file_path, metrics_path=None - ) + collect_env = create_and_setup_environment(config_filepath, metrics_path=None) # Wrap in TF environment collect_tf_env = tf_py_environment.TFPyEnvironment(collect_env) @@ -123,7 +134,7 @@ def populate_replay_buffer( collection_policy = create_baseline_schedule_policy(collect_tf_env) # Initialize replay buffer - logger.info('Creating replay buffer at: %s', buffer_path) + logger.info('Creating replay buffer at: %s', buffer_filepath) logger.info( 'Buffer capacity: %d, Sequence length: %d', buffer_capacity, @@ -148,7 +159,7 @@ def populate_replay_buffer( replay_manager = ReplayBufferManager( collect_data_spec, # Use the complete data spec buffer_capacity, - buffer_path, + buffer_filepath, sequence_length=sequence_length, ) @@ -216,60 +227,38 @@ def populate_replay_buffer( return replay_buffer -def main(): - config_filepath = FLAGS.env_gin_config_filepath +def main(argv: Sequence[str]): + """When running absl app, we need the `argv` param, even though it is unused. + + See: + + + https://abseil.io/docs/python/guides/app + + https://google.github.io/styleguide/pyguide.html#317-main + + go/python-readability-advice#unused_argv + """ + if len(argv) > 1: + raise app.UsageError('Too many command-line arguments.') + + config_filepath = FLAGS.config_filepath if not os.path.isabs(config_filepath): config_filepath = os.path.join(ROOT_DIR, config_filepath) - buffer_path = FLAGS.buffer_name - if not os.path.isabs(buffer_path): - buffer_path = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_path) + buffer_filename = FLAGS.buffer_name + if buffer_filename is None: + buffer_filename = 'buffer_' + datetime.now().strftime('%Y%m%d_%H%M%S') + if not os.path.isabs(buffer_filename): + buffer_filepath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_filename) populate_replay_buffer( - buffer_path=buffer_path, + buffer_filepath=buffer_filepath, # pylint:disable=possibly-used-before-assignment + config_filepath=config_filepath, buffer_capacity=FLAGS.capacity, steps_per_run=FLAGS.steps_per_run, num_runs=FLAGS.num_runs, sequence_length=FLAGS.sequence_length, - env_gin_config_file_path=config_filepath, ) if __name__ == '__main__': - ## fmt: off - ## pylint: disable=line-too-long - - # config_filepath = os.path.join(SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin') - - # parser = argparse.ArgumentParser(description='Populate a replay buffer with initial exploration data') - # parser.add_argument('--buffer-name', type=str, required=True, help='Name used to identify the replay buffer') - # parser.add_argument('--capacity', type=int, default=50000, help='Replay buffer capacity') - # parser.add_argument('--steps-per-run', type=int, default=100, help='Number of steps per actor run') - # parser.add_argument('--num-runs', type=int, default=5, help='Number of actor runs to perform') - # parser.add_argument('--sequence-length', type=int, default=2, help='Sequence length for the replay buffer') - # parser.add_argument('--env-gin-config-file-path', type=str, default=config_filepath, help='Environment config file') - ## pylint: enable=line-too-long - ## fmt: on - # args = parser.parse_args() - - # This makes it work for both relative and absolute paths - # if not os.path.isabs(args.env_gin_config_file_path): - # args.env_gin_config_file_path = os.path.join( - # ROOT_DIR, args.env_gin_config_file_path - # ) - # - # buffer_path_ = args.buffer_name - # if not os.path.isabs(args.buffer_name): - # buffer_path_ = os.path.join(RL_STARTER_BUFFERS_DIR, args.buffer_name) - # - # populate_replay_buffer( - # buffer_path=buffer_path_, - # buffer_capacity=args.capacity, - # steps_per_run=args.steps_per_run, - # num_runs=args.num_runs, - # sequence_length=args.sequence_length, - # env_gin_config_file_path=args.env_gin_config_file_path, - # ) - app.run(main) From adeacfc8bfd549dec3cdb28c116ce4635e57ff54 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 29 Jul 2025 14:44:17 +0000 Subject: [PATCH 24/34] Test starter buffer population --- .gitignore | 4 +- docs/guides/reinforcement_learning/scripts.md | 5 +- .../data/starter_buffers/.gitkeep | 0 .../scripts/populate_starter_buffer.py | 92 +++++++++++-------- .../scripts/populate_starter_buffer_test.py | 86 +++++++++++++++++ .../reinforcement_learning/utils/constants.py | 4 + 6 files changed, 150 insertions(+), 41 deletions(-) create mode 100644 smart_control/reinforcement_learning/data/starter_buffers/.gitkeep create mode 100644 smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py diff --git a/.gitignore b/.gitignore index 422765a4..5eabd54b 100644 --- a/.gitignore +++ b/.gitignore @@ -32,8 +32,8 @@ smart_control/configs/resources/sb1/train_sim_configs/generation_test/ smart_control/simulator/videos -smart_control/reinforcement_learning/data/* -!smart_control/reinforcement_learning/data/.gitkeep +smart_control/reinforcement_learning/data/starter_buffers/* +!smart_control/reinforcement_learning/data/starter_buffers/.gitkeep smart_control/reinforcement_learning/experiment_results/ diff --git a/docs/guides/reinforcement_learning/scripts.md b/docs/guides/reinforcement_learning/scripts.md index 4d70b194..3cd1f13e 100644 --- a/docs/guides/reinforcement_learning/scripts.md +++ b/docs/guides/reinforcement_learning/scripts.md @@ -39,13 +39,16 @@ directory. Each file name will contain the parameter values you choose (e.g. ## Starter Buffer Population +Populate an initial replay buffer with initial exploration data, to provide a +starting point when training RL agents: + ```sh python -m smart_control.reinforcement_learning.scripts.populate_starter_buffer ``` ```sh python -m smart_control.reinforcement_learning.scripts.populate_starter_buffer \ - --buffer-name default-starter-buffer + --buffer_name example-1 --num_runs 1 --steps_per_run 10 ``` ## Training diff --git a/smart_control/reinforcement_learning/data/starter_buffers/.gitkeep b/smart_control/reinforcement_learning/data/starter_buffers/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py index 44f9fda3..046f0909 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py @@ -4,7 +4,7 @@ bootstrap the training process. """ -from datetime import datetime +# from datetime import datetime import logging import os from typing import Sequence @@ -14,6 +14,7 @@ import tensorflow as tf from tf_agents.environments import tf_py_environment from tf_agents.policies import py_tf_eager_policy +from tf_agents.replay_buffers.reverb_replay_buffer import ReverbReplayBuffer from tf_agents.train import actor from tf_agents.train.utils import spec_utils from tf_agents.trajectories import trajectory @@ -22,17 +23,15 @@ from smart_control.reinforcement_learning.observers.print_status_observer import PrintStatusObserver from smart_control.reinforcement_learning.policies.schedule_policy import create_baseline_schedule_policy from smart_control.reinforcement_learning.replay_buffer.replay_buffer import ReplayBufferManager +from smart_control.reinforcement_learning.utils.constants import DEFAULT_CONFIG_FILEPATH from smart_control.reinforcement_learning.utils.constants import RL_STARTER_BUFFERS_DIR from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment from smart_control.utils.constants import ROOT_DIR -from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR +# this is used by the gin config (see "") # pylint:disable-next=unused-import from smart_control.reinforcement_learning.utils.config import get_histogram_path # isort:skip -DEFAULT_CONFIG_FILEPATH = os.path.join( - SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin' -) # LOGGING @@ -51,6 +50,16 @@ # format='[%(message)s]', # ) +# logging.basicConfig( +# level=logging.INFO, +# format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', +# ) + +logging.basicConfig( + level=logging.INFO, + format='[%(message)s]', +) + # FLAGS @@ -58,12 +67,17 @@ BUFFER_NAME = flags.DEFINE_string( name='buffer_name', - default=None, + default='default', help=( - 'Name used to identify the replay buffer. If omitted, will use current' - ' timestamp.' + 'Name used to identify the replay buffer. Corresponds with directory' + ' name where files will be saved.' ), ) +CONFIG_FILEPATH = flags.DEFINE_string( + name='config_filepath', + default=DEFAULT_CONFIG_FILEPATH, + help='Environment config file', +) CAPACITY = flags.DEFINE_integer( name='capacity', default=50000, help='Replay buffer capacity' ) @@ -78,25 +92,20 @@ default=2, help='Sequence length for the replay buffer', ) -CONFIG_FILEPATH = flags.DEFINE_string( - name='config_filepath', - default=DEFAULT_CONFIG_FILEPATH, - help='Environment config file', -) def populate_replay_buffer( - buffer_filepath: str, + buffer_dirpath: str, config_filepath: str, buffer_capacity: int, steps_per_run: int, num_runs: int, sequence_length: int, -): +) -> ReverbReplayBuffer: """Populates a replay buffer with initial exploration data. Args: - buffer_filepath: Path where the replay buffer will be saved. + buffer_dirpath: Path where the replay buffer will be saved. config_filepath: Path to the environment gin configuration file. buffer_capacity: Maximum size of the replay buffer. steps_per_run: Number of steps per actor run. @@ -106,18 +115,25 @@ def populate_replay_buffer( Returns: The replay buffer. """ - logger.info('Buffer filepath: %s', os.path.abspath(buffer_filepath)) + logger.info('Buffer dirpath: %s', os.path.abspath(buffer_dirpath)) # Create directory if it doesn't exist - try: - os.makedirs(buffer_filepath, exist_ok=False) - except FileExistsError as err: - error_message = ( - 'Buffer path already exists. This would override the existing buffer.' - ' Please use another path.' - ) - logger.exception(error_message) - raise FileExistsError(error_message) from err + # try: + # os.makedirs(buffer_dirpath, exist_ok=False) + # except FileExistsError as err: + # error_message = ( + # 'Buffer path already exists. This would override the existing buffer.' + # ' Please use another path.' + # ) + # logger.exception(error_message) + # raise FileExistsError(error_message) from err + + # UPDATE: only stop if there is a "DONE" file inside this dir + os.makedirs(buffer_dirpath, exist_ok=True) + done_filepath = os.path.join(buffer_dirpath, 'DONE') + if os.path.isfile(done_filepath): + raise FileExistsError('Starter buffer already exists, would be overwritten') + # todo: consider using a flag or user input to override # Load environment logger.info('Loading environment from standard config') @@ -134,7 +150,7 @@ def populate_replay_buffer( collection_policy = create_baseline_schedule_policy(collect_tf_env) # Initialize replay buffer - logger.info('Creating replay buffer at: %s', buffer_filepath) + logger.info('Creating replay buffer at: %s', os.path.abspath(buffer_dirpath)) logger.info( 'Buffer capacity: %d, Sequence length: %d', buffer_capacity, @@ -157,9 +173,9 @@ def populate_replay_buffer( # Use this data spec when creating the replay buffer replay_manager = ReplayBufferManager( - collect_data_spec, # Use the complete data spec - buffer_capacity, - buffer_filepath, + data_spec=collect_data_spec, # Use the complete data spec + capacity=buffer_capacity, + checkpoint_dir=buffer_dirpath, sequence_length=sequence_length, ) @@ -178,8 +194,8 @@ def populate_replay_buffer( # Create collect actor logger.info('Setting up collect actor') collect_actor = actor.Actor( - collect_tf_env.pyenv.envs[0], # Use underlying PyEnv - py_tf_eager_policy.PyTFEagerPolicy(collection_policy), + env=collect_tf_env.pyenv.envs[0], # Use underlying PyEnv + policy=py_tf_eager_policy.PyTFEagerPolicy(collection_policy), steps_per_run=steps_per_run, train_step=train_step, observers=[observers], @@ -243,14 +259,14 @@ def main(argv: Sequence[str]): if not os.path.isabs(config_filepath): config_filepath = os.path.join(ROOT_DIR, config_filepath) - buffer_filename = FLAGS.buffer_name - if buffer_filename is None: - buffer_filename = 'buffer_' + datetime.now().strftime('%Y%m%d_%H%M%S') - if not os.path.isabs(buffer_filename): - buffer_filepath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_filename) + buffer_name = FLAGS.buffer_name + # if buffer_filename is None: + # buffer_filename = 'buffer_' + datetime.now().strftime('%Y%m%d_%H%M%S') + if not os.path.isabs(buffer_name): + buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_name) populate_replay_buffer( - buffer_filepath=buffer_filepath, # pylint:disable=possibly-used-before-assignment + buffer_dirpath=buffer_dirpath, # pylint:disable=possibly-used-before-assignment config_filepath=config_filepath, buffer_capacity=FLAGS.capacity, steps_per_run=FLAGS.steps_per_run, diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py new file mode 100644 index 00000000..11283075 --- /dev/null +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py @@ -0,0 +1,86 @@ +"""Test for RL starter buffer population script.""" + +from datetime import datetime +import os +import shutil + +from absl.testing import absltest +from tf_agents.replay_buffers.reverb_replay_buffer import ReverbReplayBuffer +from tf_agents.specs import BoundedTensorSpec +from tf_agents.specs import TensorSpec +from tf_agents.trajectories.trajectory import Trajectory + +from smart_control.reinforcement_learning.scripts.populate_starter_buffer import populate_replay_buffer +from smart_control.reinforcement_learning.utils.constants import DEFAULT_CONFIG_FILEPATH +from smart_control.reinforcement_learning.utils.constants import RL_STARTER_BUFFERS_DIR + +TEST_BUFFER_DIRPATH = os.path.join(RL_STARTER_BUFFERS_DIR, "test") + + +class StarterBufferPopulationTest(absltest.TestCase): + + def test_starter_buffer_population(self): + # setup: + if os.path.isdir(TEST_BUFFER_DIRPATH): + shutil.rmtree(TEST_BUFFER_DIRPATH) + + # using small arbitrary values for faster completion: + capacity = 100 # default:50_000 + steps_per_run = 5 # default:100 + replay_buffer = populate_replay_buffer( + buffer_dirpath=TEST_BUFFER_DIRPATH, + config_filepath=DEFAULT_CONFIG_FILEPATH, + buffer_capacity=capacity, + steps_per_run=steps_per_run, + num_runs=1, # default:5 + sequence_length=2, # default:2 + ) + + with self.subTest("returns a replay buffer"): + self.assertIsInstance(replay_buffer, ReverbReplayBuffer) + self.assertEqual(replay_buffer.name, "reverb_replay_buffer") + self.assertEqual(replay_buffer.capacity, capacity) + self.assertEqual(replay_buffer.num_frames(), steps_per_run - 1) + + trajectory = replay_buffer.data_spec + self.assertIsInstance(trajectory, Trajectory) + # action: + self.assertIsInstance(trajectory.action, BoundedTensorSpec) + self.assertEqual(trajectory.action.shape[0], 2) + self.assertEqual(trajectory.action.minimum.item(), -1) + self.assertEqual(trajectory.action.maximum.item(), 1) + # discount: + self.assertIsInstance(trajectory.discount, BoundedTensorSpec) + self.assertEqual(trajectory.discount.minimum.item(), 0) + self.assertEqual(trajectory.discount.maximum.item(), 1) + # observations: + self.assertIsInstance(trajectory.observation, TensorSpec) + self.assertEqual(trajectory.observation.shape[0], 53) + # reward: + self.assertIsInstance(trajectory.reward, TensorSpec) + + with self.subTest("stores checkpoints in the specified directory"): + self.assertTrue(os.path.isdir(TEST_BUFFER_DIRPATH)) + + # creates a timestamped sub-directory: + timestamp_subdir = os.listdir(TEST_BUFFER_DIRPATH)[0] # dir name + today = datetime.now().strftime("%Y-%m-%d") + self.assertTrue(timestamp_subdir.startswith(today)) + + # saves files, including "DONE" when complete: + filenames = [ + "DONE", + "chunks.tfrecord", + "items.tfrecord", + "tables.tfrecord", + ] + for filename in filenames: + filepath = os.path.join(TEST_BUFFER_DIRPATH, timestamp_subdir, filename) + self.assertTrue(os.path.isfile(filepath)) + + # clean up: + shutil.rmtree(TEST_BUFFER_DIRPATH) + + +if __name__ == "__main__": + absltest.main() diff --git a/smart_control/reinforcement_learning/utils/constants.py b/smart_control/reinforcement_learning/utils/constants.py index 63b996f4..e1f54cc4 100644 --- a/smart_control/reinforcement_learning/utils/constants.py +++ b/smart_control/reinforcement_learning/utils/constants.py @@ -3,6 +3,7 @@ import os from smart_control.utils.constants import ROOT_DIR +from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR # Relative filepaths: RL_DIR = os.path.join(ROOT_DIR, 'smart_control', 'reinforcement_learning') @@ -10,6 +11,9 @@ RL_EXPERIMENT_METRICS_DIR = os.path.join(RL_EXPERIMENT_RESULTS_DIR, 'metrics') RL_EXPERIMENT_RENDERS_DIR = os.path.join(RL_EXPERIMENT_RESULTS_DIR, 'renders') RL_STARTER_BUFFERS_DIR = os.path.join(RL_DIR, 'data', 'starter_buffers') +DEFAULT_CONFIG_FILEPATH = os.path.join( + SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin' +) # Default time zone for plotting and simulations DEFAULT_TIME_ZONE = 'US/Pacific' From 3224585b41f3846d6518cad0b40aac902d16d135 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 29 Jul 2025 14:53:14 +0000 Subject: [PATCH 25/34] Refactor test: use setup, teardown, and temp dir --- .../scripts/populate_starter_buffer_test.py | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py index 11283075..c84beca9 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py @@ -3,6 +3,7 @@ from datetime import datetime import os import shutil +import tempfile from absl.testing import absltest from tf_agents.replay_buffers.reverb_replay_buffer import ReverbReplayBuffer @@ -12,23 +13,27 @@ from smart_control.reinforcement_learning.scripts.populate_starter_buffer import populate_replay_buffer from smart_control.reinforcement_learning.utils.constants import DEFAULT_CONFIG_FILEPATH -from smart_control.reinforcement_learning.utils.constants import RL_STARTER_BUFFERS_DIR - -TEST_BUFFER_DIRPATH = os.path.join(RL_STARTER_BUFFERS_DIR, "test") class StarterBufferPopulationTest(absltest.TestCase): - def test_starter_buffer_population(self): - # setup: - if os.path.isdir(TEST_BUFFER_DIRPATH): - shutil.rmtree(TEST_BUFFER_DIRPATH) + def setUp(self): + """Sets up a temporary directory for each test.""" + super().setUp() + self.buffer_dirpath = tempfile.mkdtemp() + + def tearDown(self): + """Cleans up the temporary directory after each test.""" + super().tearDown() + if os.path.isdir(self.buffer_dirpath): + shutil.rmtree(self.buffer_dirpath) + def test_starter_buffer_population(self): # using small arbitrary values for faster completion: capacity = 100 # default:50_000 steps_per_run = 5 # default:100 replay_buffer = populate_replay_buffer( - buffer_dirpath=TEST_BUFFER_DIRPATH, + buffer_dirpath=self.buffer_dirpath, config_filepath=DEFAULT_CONFIG_FILEPATH, buffer_capacity=capacity, steps_per_run=steps_per_run, @@ -60,12 +65,12 @@ def test_starter_buffer_population(self): self.assertIsInstance(trajectory.reward, TensorSpec) with self.subTest("stores checkpoints in the specified directory"): - self.assertTrue(os.path.isdir(TEST_BUFFER_DIRPATH)) + self.assertTrue(os.path.isdir(self.buffer_dirpath)) # creates a timestamped sub-directory: - timestamp_subdir = os.listdir(TEST_BUFFER_DIRPATH)[0] # dir name + timestamp_dirname = os.listdir(self.buffer_dirpath)[0] today = datetime.now().strftime("%Y-%m-%d") - self.assertTrue(timestamp_subdir.startswith(today)) + self.assertTrue(timestamp_dirname.startswith(today)) # saves files, including "DONE" when complete: filenames = [ @@ -74,13 +79,11 @@ def test_starter_buffer_population(self): "items.tfrecord", "tables.tfrecord", ] + timestamp_dirpath = os.path.join(self.buffer_dirpath, timestamp_dirname) for filename in filenames: - filepath = os.path.join(TEST_BUFFER_DIRPATH, timestamp_subdir, filename) + filepath = os.path.join(timestamp_dirpath, filename) self.assertTrue(os.path.isfile(filepath)) - # clean up: - shutil.rmtree(TEST_BUFFER_DIRPATH) - if __name__ == "__main__": absltest.main() From 3b6f3a8c5ecac6d4f51c2dd254b0ede8036d4028 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Mon, 11 Aug 2025 19:08:15 +0000 Subject: [PATCH 26/34] WIP - reproduce train script, run into known issue --- .gitignore | 5 +- docs/guides/reinforcement_learning/scripts.md | 8 + .../scripts/populate_starter_buffer.py | 13 +- .../scripts/populate_starter_buffer_test.py | 4 +- .../reinforcement_learning/scripts/train.py | 335 ++++++++++-------- .../reinforcement_learning/utils/constants.py | 8 +- 6 files changed, 211 insertions(+), 162 deletions(-) diff --git a/.gitignore b/.gitignore index 5eabd54b..9403fd63 100644 --- a/.gitignore +++ b/.gitignore @@ -35,7 +35,10 @@ smart_control/simulator/videos smart_control/reinforcement_learning/data/starter_buffers/* !smart_control/reinforcement_learning/data/starter_buffers/.gitkeep -smart_control/reinforcement_learning/experiment_results/ +smart_control/reinforcement_learning/experiment_results/* + +smart_control/reinforcement_learning/data/experiment_results/* +!smart_control/reinforcement_learning/data/experiment_results/.gitkeep # jupyter notebook checkpoints: smart_control/notebooks/.ipynb_checkpoints/ diff --git a/docs/guides/reinforcement_learning/scripts.md b/docs/guides/reinforcement_learning/scripts.md index 3cd1f13e..6352acc1 100644 --- a/docs/guides/reinforcement_learning/scripts.md +++ b/docs/guides/reinforcement_learning/scripts.md @@ -53,6 +53,14 @@ python -m smart_control.reinforcement_learning.scripts.populate_starter_buffer \ ## Training +Train a reinforcement learning agent. + +Using default configuration: + +```sh +python -m smart_control.reinforcement_learning.scripts.train --experiment_name my-experiment-1 +``` + ```sh python -m smart_control.reinforcement_learning.scripts.train \ --starter-buffer-path path/to/the/starter/buffer diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py index 046f0909..2de89845 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py @@ -4,7 +4,7 @@ bootstrap the training process. """ -# from datetime import datetime +from datetime import datetime import logging import os from typing import Sequence @@ -23,7 +23,7 @@ from smart_control.reinforcement_learning.observers.print_status_observer import PrintStatusObserver from smart_control.reinforcement_learning.policies.schedule_policy import create_baseline_schedule_policy from smart_control.reinforcement_learning.replay_buffer.replay_buffer import ReplayBufferManager -from smart_control.reinforcement_learning.utils.constants import DEFAULT_CONFIG_FILEPATH +from smart_control.reinforcement_learning.utils.constants import ONE_DAY_CONFIG_FILEPATH from smart_control.reinforcement_learning.utils.constants import RL_STARTER_BUFFERS_DIR from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment from smart_control.utils.constants import ROOT_DIR @@ -75,7 +75,7 @@ ) CONFIG_FILEPATH = flags.DEFINE_string( name='config_filepath', - default=DEFAULT_CONFIG_FILEPATH, + default=ONE_DAY_CONFIG_FILEPATH, help='Environment config file', ) CAPACITY = flags.DEFINE_integer( @@ -260,10 +260,9 @@ def main(argv: Sequence[str]): config_filepath = os.path.join(ROOT_DIR, config_filepath) buffer_name = FLAGS.buffer_name - # if buffer_filename is None: - # buffer_filename = 'buffer_' + datetime.now().strftime('%Y%m%d_%H%M%S') - if not os.path.isabs(buffer_name): - buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_name) + if buffer_name is None: + buffer_name = 'buffer_' + datetime.now().strftime('%Y%m%d_%H%M%S') + buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_name) populate_replay_buffer( buffer_dirpath=buffer_dirpath, # pylint:disable=possibly-used-before-assignment diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py index c84beca9..cb96aeec 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py @@ -12,7 +12,7 @@ from tf_agents.trajectories.trajectory import Trajectory from smart_control.reinforcement_learning.scripts.populate_starter_buffer import populate_replay_buffer -from smart_control.reinforcement_learning.utils.constants import DEFAULT_CONFIG_FILEPATH +from smart_control.reinforcement_learning.utils.constants import ONE_DAY_CONFIG_FILEPATH class StarterBufferPopulationTest(absltest.TestCase): @@ -34,7 +34,7 @@ def test_starter_buffer_population(self): steps_per_run = 5 # default:100 replay_buffer = populate_replay_buffer( buffer_dirpath=self.buffer_dirpath, - config_filepath=DEFAULT_CONFIG_FILEPATH, + config_filepath=ONE_DAY_CONFIG_FILEPATH, buffer_capacity=capacity, steps_per_run=steps_per_run, num_runs=1, # default:5 diff --git a/smart_control/reinforcement_learning/scripts/train.py b/smart_control/reinforcement_learning/scripts/train.py index d4a8ef60..2a3f6f2e 100644 --- a/smart_control/reinforcement_learning/scripts/train.py +++ b/smart_control/reinforcement_learning/scripts/train.py @@ -11,7 +11,10 @@ import logging import os import shutil +from typing import Sequence +from absl import app +from absl import flags import tensorflow as tf from tf_agents.environments import tf_py_environment from tf_agents.metrics import tf_metrics @@ -28,21 +31,112 @@ from smart_control.reinforcement_learning.observers.composite_observer import CompositeObserver from smart_control.reinforcement_learning.observers.print_status_observer import PrintStatusObserver from smart_control.reinforcement_learning.replay_buffer.replay_buffer import ReplayBufferManager +from smart_control.reinforcement_learning.utils.constants import ONE_DAY_CONFIG_FILEPATH from smart_control.reinforcement_learning.utils.constants import RL_EXPERIMENT_RESULTS_DIR +from smart_control.reinforcement_learning.utils.constants import RL_STARTER_BUFFERS_DIR from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment -from smart_control.utils.constants import ROOT_DIR -from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH -from smart_control.utils.constants import SB1_TRAIN_CONFIGS_DIR + +# from smart_control.utils.constants import ROOT_DIR +# from smart_control.utils.constants import DEFAULT_CONFIG_FILEPATH + +# this is used by the gin config (see "sim_config_day1.gin") +# pylint:disable-next=unused-import +from smart_control.reinforcement_learning.utils.config import get_histogram_path # isort:skip + os.environ['WRAPT_DISABLE_EXTENSIONS'] = 'true' -# Configure logging +# LOGGING + logging.basicConfig( level=logging.INFO, - format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', + # format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', + format='[%(message)s]', ) logger = logging.getLogger(__name__) +# FLAGS + +flags.DEFINE_string( + name='experiment_name', + default=None, + help='Name of the experiment. This is used to save TensorBoard summaries', + required=True, +) +flags.DEFINE_string( + name='starter_buffer_path', + default=None, + help=( + 'Path to the starter replay buffer (e.g. "/path/to/my_buffer"). If not' + ' supplied, will check the "starter_buffers" dir and use the most' + ' recently generated buffer. Use the starter buffer generation script' + ' to generate a starter buffer.' + ), + # required=True, +) +flags.DEFINE_string( + name='scenario_config_path', + default=ONE_DAY_CONFIG_FILEPATH, # DEFAULT_CONFIG_FILEPATH, + help='Path to the scenario config file (e.g. "/path/to/sim_config.gin")', +) +flags.DEFINE_enum( + name='agent_type', + default='sac', + enum_values=['sac', 'td3', 'ddpg'], + help='Type of agent to train (sac, td3, or ddpg)', +) +flags.DEFINE_integer( + name='train_iterations', + default=300, + help='Number of training iterations', +) +flags.DEFINE_integer( + name='collect_steps_per_training_iteration', + default=50, + help='Number of collection steps per iteration', +) +flags.DEFINE_integer( + name='batch_size', + default=256, + help=( + 'Batch size for training (each gradient update uses this many ' + 'elements from the replay buffer batched)' + ), +) +flags.DEFINE_integer( + name='eval_interval', + default=10, + help='Interval for evaluating the agent', +) +flags.DEFINE_integer( + name='num_eval_episodes', + default=1, + help='Number of episodes for evaluation', +) +flags.DEFINE_integer( + name='log_interval', + default=1, + help='Interval for logging training metrics', +) +flags.DEFINE_integer( + name='checkpoint_interval', + default=10, + help='Interval for checkpointing the replay buffer', +) +flags.DEFINE_integer( + name='learner_iterations', + default=200, + help=( + 'Number of iterations (gradient updates) to run the agent ' + 'learner per training loop' + ), +) + + +FLAGS = flags.FLAGS + +# SCRIPT + def save_experiment_parameters(params, save_path): """ @@ -77,50 +171,48 @@ def save_experiment_parameters(params, save_path): def train_agent( - starter_buffer_path, - experiment_name, - agent_type='sac', - train_iterations=100000, - collect_steps_per_iteration=1, - batch_size=256, - log_interval=100, - eval_interval=1000, - num_eval_episodes=5, - checkpoint_interval=1000, - learner_iterations=200, - scenario_config_path=None, + experiment_name: str, + starter_buffer_path: str, + scenario_config_path: str = ONE_DAY_CONFIG_FILEPATH, + agent_type: str = 'sac', + train_iterations: int = 100000, + collect_steps_per_iteration: int = 1, + batch_size: int = 256, + log_interval: int = 100, + eval_interval: int = 1000, + num_eval_episodes: int = 5, + checkpoint_interval: int = 1000, + learner_iterations: int = 200, ): """ Trains a reinforcement learning agent using a pre-populated replay buffer. Args: - starter_buffer_path: Path to the pre-populated replay buffer experiment_name: Name of the experiment + starter_buffer_path: Path to the pre-populated replay buffer + scenario_config_path: Path to the scenario configuration file agent_type: Type of agent to train ('sac' or 'td3') train_iterations: Number of training iterations collect_steps_per_iteration: Number of collection steps per training - iteration + iteration batch_size: Batch size for training log_interval: Interval for logging training metrics eval_interval: Interval for evaluating the agent num_eval_episodes: Number of episodes for evaluation checkpoint_interval: Interval for checkpointing the replay buffer learner_iterations: Number of iterations to run the agent learner per - training loop - scenario_config_path: Path to the scenario configuration file (optional) + training loop """ - # Set up scenario config path if not provided - if scenario_config_path is None: - scenario_config_path = os.path.join( - SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin' - ) + + # SETUP # Generate timestamp for summary directory - current_time = datetime.now().strftime('%Y_%m_%d-%H:%M:%S') - summary_dir = os.path.join( - RL_EXPERIMENT_RESULTS_DIR, f'{experiment_name}_{current_time}' + current_time = datetime.now().strftime('%Y%m%d_%H%M%S') + experiment_dirname = f'{experiment_name}_{current_time}' + summary_dir = os.path.join(RL_EXPERIMENT_RESULTS_DIR, experiment_dirname) + logger.info( + 'Experiment results will be saved to %s', os.path.abspath(summary_dir) ) - logger.info('Experiment results will be saved to %s', summary_dir) try: os.makedirs(summary_dir, exist_ok=False) @@ -147,13 +239,16 @@ def train_agent( } save_experiment_parameters(experiment_params, summary_dir) + # ENVIRONMENTS + # Create train and eval environments logger.info( 'Creating train and eval environments with scenario config path: %s', scenario_config_path, ) + metrics_dirpath = os.path.join(summary_dir, 'metrics') train_env = create_and_setup_environment( - scenario_config_path, metrics_path=os.path.join(summary_dir, 'metrics') + scenario_config_path, metrics_path=metrics_dirpath ) eval_env = create_and_setup_environment( scenario_config_path, metrics_path=None @@ -169,6 +264,8 @@ def train_agent( # Get specs _, action_spec, time_step_spec = spec_utils.get_tensor_specs(train_tf_env) + # AGENT + # Create agent based on type logger.info('Creating %s agent', agent_type) if agent_type.lower() == 'sac': @@ -202,6 +299,8 @@ def train_agent( tf_metrics.AverageEpisodeLengthMetric(buffer_size=num_eval_episodes), ] + # REPLAY BUFFER + # Create a new buffer path in the experiment directory new_buffer_path = os.path.join(summary_dir, 'replay_buffer') os.makedirs(new_buffer_path, exist_ok=True) @@ -209,8 +308,8 @@ def train_agent( # Copy the original buffer to the new location logger.info( 'Creating a copy of replay buffer from %s to %s', - starter_buffer_path, - new_buffer_path, + os.path.abspath(starter_buffer_path), + os.path.abspath(new_buffer_path), ) # First check if starter_buffer_path is a file or directory @@ -255,6 +354,8 @@ def train_agent( sample_batch_size=batch_size, num_steps=2, num_parallel_calls=3 ).prefetch(3) + # OBSERVERS + # Create print observer for collection print_observer = PrintStatusObserver( status_interval_steps=1, # Print status every step @@ -273,6 +374,8 @@ def train_agent( [print_observer, replay_buffer_observer] ) + # ACTORS + # Create collect actor logger.info('Creating collect and eval actors') collect_actor = actor.Actor( @@ -299,7 +402,19 @@ def train_agent( summary_interval=1, ) + # LEARNER + # Create learner + saved_model_dirpath = os.path.join(summary_dir, 'policies') + saved_model_trigger = triggers.PolicySavedModelTrigger( + saved_model_dir=saved_model_dirpath, + agent=agent, + train_step=train_step, + interval=eval_interval, + ) + log_trigger = triggers.StepPerSecondLogTrigger( + train_step=train_step, interval=log_interval + ) logger.info('Creating learner') agent_learner = learner.Learner( root_dir=summary_dir, @@ -307,16 +422,9 @@ def train_agent( agent=agent, experience_dataset_fn=lambda: dataset, summary_interval=1, - triggers=[ - triggers.PolicySavedModelTrigger( - os.path.join(summary_dir, 'policies'), - agent, - train_step, - interval=eval_interval, - ), - triggers.StepPerSecondLogTrigger(train_step, interval=log_interval), - ], + triggers=[saved_model_trigger, log_trigger], ) + # > https://github.com/tensorflow/tensorflow/issues/59869 # Main training loop logger.info('Starting training for %d iterations', train_iterations) @@ -387,116 +495,45 @@ def train_agent( return agent -if __name__ == '__main__': - import argparse - - parser = argparse.ArgumentParser( - description=( - 'Train a reinforcement learning agent using a pre-populated replay' - ' buffer' +def main(argv: Sequence[str]): + if len(argv) > 1: + raise app.UsageError('Too many command-line arguments.') + + experiment_name = FLAGS.experiment_name + experiment_name = experiment_name.replace(' ', '_') + + # STARTER BUFFER DIRPATH: + buffer_dirpath = FLAGS.starter_buffer_path + if not buffer_dirpath: + buffer_names = [d for d in os.listdir(RL_STARTER_BUFFERS_DIR) if 'buffer' in d] # pylint:disable=line-too-long + if any(buffer_names): + buffer_name = buffer_names[-1] + print('USING MOST RECENTLY GENERATED STARTER BUFFER:', buffer_name) + buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_name) + else: + raise ValueError( + 'There are no starter buffer files available. Please generate one' + ' using the starter buffer generation script.' ) - ) - parser.add_argument( - '--starter-buffer-path', - type=str, - required=True, - help='Path to the starter replay buffer', - ) - parser.add_argument( - '--agent-type', - type=str, - default='sac', - choices=['sac', 'td3', 'ddpg'], - help='Type of agent to train (sac or td3)', - ) - parser.add_argument( - '--train-iterations', - type=int, - default=300, - help='Number of training iterations', - ) - parser.add_argument( - '--collect-steps-per-training-iteration', - type=int, - default=50, - help='Number of collection steps per iteration', - ) - parser.add_argument( - '--batch-size', - type=int, - default=256, - help=( - 'Batch size for training (each gradient update uses this many' - ' elements from the replay buffer batched)' - ), - ) + if not os.path.isabs(buffer_dirpath): + buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_dirpath) - parser.add_argument( - '--eval-interval', - type=int, - default=10, - help='Interval for evaluating the agent', - ) - parser.add_argument( - '--num-eval-episodes', - type=int, - default=1, - help='Number of episodes for evaluation', - ) - parser.add_argument( - '--log-interval', - type=int, - default=1, - help='Interval for logging training metrics', - ) - parser.add_argument( - '--experiment-name', - type=str, - required=True, - help='Name of the experiment. This is used to save TensorBoard summaries', - ) - parser.add_argument( - '--checkpoint-interval', - type=int, - default=10, - help='Interval for checkpointing the replay buffer', - ) - parser.add_argument( - '--learner-iterations', - type=int, - default=200, - help=( - 'Number of iterations (gradient updates) to run the agent' - ' learner per training loop' - ), - ) - parser.add_argument( - '--scenario-config-path', - type=str, - default=SB1_GIN_CONFIG_FILEPATH, - help='Path to the scenario config file (sim_config.gin)', + train_agent( + starter_buffer_path=buffer_dirpath, + scenario_config_path=FLAGS.scenario_config_path, + experiment_name=experiment_name, + agent_type=FLAGS.agent_type, + train_iterations=FLAGS.train_iterations, + collect_steps_per_iteration=FLAGS.collect_steps_per_training_iteration, + batch_size=FLAGS.batch_size, + eval_interval=FLAGS.eval_interval, + num_eval_episodes=FLAGS.num_eval_episodes, + log_interval=FLAGS.log_interval, + checkpoint_interval=FLAGS.checkpoint_interval, + learner_iterations=FLAGS.learner_iterations, ) - args = parser.parse_args() - - # Make it work for both relative and absolute paths - if not os.path.isabs(args.starter_buffer_path): - args.starter_buffer_path = os.path.join(ROOT_DIR, args.starter_buffer_path) - if not os.path.isabs(args.scenario_config_path): - args.scenario_config_path = os.path.join(ROOT_DIR, args.scenario_config_path) # pylint: disable=line-too-long +if __name__ == '__main__': - train_agent( - starter_buffer_path=args.starter_buffer_path, - experiment_name=args.experiment_name, - agent_type=args.agent_type, - train_iterations=args.train_iterations, - collect_steps_per_iteration=args.collect_steps_per_training_iteration, - batch_size=args.batch_size, - eval_interval=args.eval_interval, - num_eval_episodes=args.num_eval_episodes, - log_interval=args.log_interval, - checkpoint_interval=args.checkpoint_interval, - learner_iterations=args.learner_iterations, - scenario_config_path=args.scenario_config_path, - ) + app.run(main) diff --git a/smart_control/reinforcement_learning/utils/constants.py b/smart_control/reinforcement_learning/utils/constants.py index e1f54cc4..a9b99937 100644 --- a/smart_control/reinforcement_learning/utils/constants.py +++ b/smart_control/reinforcement_learning/utils/constants.py @@ -7,11 +7,13 @@ # Relative filepaths: RL_DIR = os.path.join(ROOT_DIR, 'smart_control', 'reinforcement_learning') -RL_EXPERIMENT_RESULTS_DIR = os.path.join(RL_DIR, 'experiment_results') +RL_STARTER_BUFFERS_DIR = os.path.join(RL_DIR, 'data', 'starter_buffers') + +RL_EXPERIMENT_RESULTS_DIR = os.path.join(RL_DIR, 'data', 'experiment_results') RL_EXPERIMENT_METRICS_DIR = os.path.join(RL_EXPERIMENT_RESULTS_DIR, 'metrics') RL_EXPERIMENT_RENDERS_DIR = os.path.join(RL_EXPERIMENT_RESULTS_DIR, 'renders') -RL_STARTER_BUFFERS_DIR = os.path.join(RL_DIR, 'data', 'starter_buffers') -DEFAULT_CONFIG_FILEPATH = os.path.join( + +ONE_DAY_CONFIG_FILEPATH = os.path.join( SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin' ) From 1503fce23a96efb2a88cecb59a020ad42c1c1a71 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Mon, 11 Aug 2025 19:34:10 +0000 Subject: [PATCH 27/34] Hotfix known issue --- .../reinforcement_learning/scripts/train.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/smart_control/reinforcement_learning/scripts/train.py b/smart_control/reinforcement_learning/scripts/train.py index 2a3f6f2e..82ed1dec 100644 --- a/smart_control/reinforcement_learning/scripts/train.py +++ b/smart_control/reinforcement_learning/scripts/train.py @@ -6,10 +6,20 @@ components. """ +# OK so we are running into an error +# TypeError: this __dict__ descriptor does not support '_DictWrapper' objects +# https://github.com/tensorflow/tensorflow/issues/59869 +# As a workaround, we need to set this env var before loading tensorflow +# https://github.com/GrahamDumpleton/wrapt/issues/231#issuecomment-1455800902 +# fmt: off +import os # isort:skip +os.environ['WRAPT_DISABLE_EXTENSIONS'] = 'true' +# fmt: on + +# pylint:disable=wrong-import-position from datetime import datetime import json import logging -import os import shutil from typing import Sequence @@ -43,8 +53,8 @@ # pylint:disable-next=unused-import from smart_control.reinforcement_learning.utils.config import get_histogram_path # isort:skip +# pylint:enable=wrong-import-position -os.environ['WRAPT_DISABLE_EXTENSIONS'] = 'true' # LOGGING From 0b36870315ce36515296ba02ae42703bf2aa272c Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 12 Aug 2025 15:46:21 +0000 Subject: [PATCH 28/34] Generate example starter buffers for training and testing --- .gitignore | 5 +- docs/guides/reinforcement_learning/scripts.md | 58 +++- .../2025-08-12T14:51:22.794391896+00:00/DONE | 0 .../chunks.tfrecord | Bin 0 -> 33214 bytes .../items.tfrecord | Bin 0 -> 35990 bytes .../tables.tfrecord | Bin 0 -> 70 bytes .../2025-08-12T15:22:13.274393482+00:00/DONE | 0 .../chunks.tfrecord | Bin 0 -> 765 bytes .../items.tfrecord | Bin 0 -> 365 bytes .../tables.tfrecord | 1 + .../scripts/generate_gin_configs_test.py | 1 + .../scripts/populate_starter_buffer.py | 295 +++++++++--------- .../scripts/populate_starter_buffer_test.py | 8 +- 13 files changed, 197 insertions(+), 171 deletions(-) create mode 100644 smart_control/reinforcement_learning/data/starter_buffers/default/2025-08-12T14:51:22.794391896+00:00/DONE create mode 100644 smart_control/reinforcement_learning/data/starter_buffers/default/2025-08-12T14:51:22.794391896+00:00/chunks.tfrecord create mode 100644 smart_control/reinforcement_learning/data/starter_buffers/default/2025-08-12T14:51:22.794391896+00:00/items.tfrecord create mode 100644 smart_control/reinforcement_learning/data/starter_buffers/default/2025-08-12T14:51:22.794391896+00:00/tables.tfrecord create mode 100644 smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/DONE create mode 100644 smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/chunks.tfrecord create mode 100644 smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/items.tfrecord create mode 100644 smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/tables.tfrecord diff --git a/.gitignore b/.gitignore index 9403fd63..5e6bdafb 100644 --- a/.gitignore +++ b/.gitignore @@ -28,14 +28,15 @@ data/sb1/ #**/eval/ smart_control/configs/resources/sb1/train_sim_configs/generated/ +# todo: use temp dir instead: smart_control/configs/resources/sb1/train_sim_configs/generation_test/ smart_control/simulator/videos smart_control/reinforcement_learning/data/starter_buffers/* !smart_control/reinforcement_learning/data/starter_buffers/.gitkeep - -smart_control/reinforcement_learning/experiment_results/* +!smart_control/reinforcement_learning/data/starter_buffers/default +!smart_control/reinforcement_learning/data/starter_buffers/test smart_control/reinforcement_learning/data/experiment_results/* !smart_control/reinforcement_learning/data/experiment_results/.gitkeep diff --git a/docs/guides/reinforcement_learning/scripts.md b/docs/guides/reinforcement_learning/scripts.md index 6352acc1..c1e2c448 100644 --- a/docs/guides/reinforcement_learning/scripts.md +++ b/docs/guides/reinforcement_learning/scripts.md @@ -48,36 +48,64 @@ python -m smart_control.reinforcement_learning.scripts.populate_starter_buffer ```sh python -m smart_control.reinforcement_learning.scripts.populate_starter_buffer \ - --buffer_name example-1 --num_runs 1 --steps_per_run 10 + --buffer_name buffer_xyz + --config_path smart_control/configs/resources/sb1/sim_config.gin ``` -## Training +This creates a directory corresponding with the buffer name in +"smart_control/reinforcement_learning/data/starter_buffers". -Train a reinforcement learning agent. +A "default" starter buffer has been created for example purposes: + +```sh +python -m smart_control.reinforcement_learning.scripts.populate_starter_buffer \ + --buffer_name default \ + --num_runs 5 \ + --capacity 50000 \ + --steps_per_run 100 \ + --sequence_length 2 +``` -Using default configuration: +A "test" starter buffer has been created for testing purposes: ```sh -python -m smart_control.reinforcement_learning.scripts.train --experiment_name my-experiment-1 +python -m smart_control.reinforcement_learning.scripts.populate_starter_buffer \ + --buffer_name test \ + --num_runs 1 \ + --steps_per_run 3 \ + --capacity 100 \ + --sequence_length 2 ``` +## RL Agent Training + +Train a reinforcement learning agent. + ```sh python -m smart_control.reinforcement_learning.scripts.train \ - --starter-buffer-path path/to/the/starter/buffer - --experiment-name my-experiment-1 + --experiment_name my-experiment-1 ``` ```sh -python scripts/train.py \ - --starter-buffer-path data/starter_buffers/default_starter_buffer_seqlen2_exp6720/2025-04-04T06\:30\:49.808661634-04\:00/ \ - --experiment-name sac_multiple_episodes \ - --scenario-config-path "/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-14_starttimestamp-2023-07-06.gin" \ - "/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-14_starttimestamp-2023-08-06.gin" \ - "/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-14_starttimestamp-2023-10-06.gin" \ - "/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-14_starttimestamp-2023-11-06.gin" \ - --eval-scenario-config-path "/home/gabriel-user/projects/sbsim/smart_control/configs/resources/sb1/generated_configs/config_timestepsec-900_numdaysinepisode-14_starttimestamp-2023-10-21.gin" +python -m smart_control.reinforcement_learning.scripts.train \ + --experiment_name my-experiment-1 \ + --agent_type="sac" + --learner_iterations=3 \ + --train_iterations=10 \ + --collect_steps_per_training_iteration=5 ``` +This will generate a new experiment results directory under +"smart_control/reinforcement_learning/data/experiment_results/`experiment_name`". +In the experiment results directory will be the following files and directories: + +- "collect" directory +- "eval" directory +- "metrics" directory +- "replay_buffer" directory +- "experiment_parameters.json" file +- "experiment_parameters.txt" file + ## Evaluation ```sh diff --git a/smart_control/reinforcement_learning/data/starter_buffers/default/2025-08-12T14:51:22.794391896+00:00/DONE b/smart_control/reinforcement_learning/data/starter_buffers/default/2025-08-12T14:51:22.794391896+00:00/DONE new file mode 100644 index 00000000..e69de29b diff --git a/smart_control/reinforcement_learning/data/starter_buffers/default/2025-08-12T14:51:22.794391896+00:00/chunks.tfrecord b/smart_control/reinforcement_learning/data/starter_buffers/default/2025-08-12T14:51:22.794391896+00:00/chunks.tfrecord new file mode 100644 index 0000000000000000000000000000000000000000..cb7dbc007e0b263373d88d7b40f73668e11f65c0 GIT binary patch literal 33214 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 G*RdWk-4wIvjMz+Zk#}l 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 GO5RyQM82P2YU zrb<;;7;mJdEptd?pLy_pc!2H8(+>L=c#H1m%AM_S@YF*){0W!F?Lf@n#ROzTNiZy9WbjesV6s`BDP;!~wtrDM&ko49jk9COIpEsA@5<3q`=?9O z_A{y7vxB;m;r{npkmIi~)+F)InFbZ~;VkpzSo(d}t(QmVonC+%gcV$6DDKVxx|@Mv z!9kF_L3%~Pg5d53@&A}fADFZj;%+%f6^9j{_oKU8kCCBIg<%>aL(aSAmVK|>%5l5W zYd(*P5mZn`GVBeF{41)8F5i z_-xAkv;G(<1xYspRJZMx#mi9a|1ojO?`4}V9L_|spGkrVm;FpPD|Jvz*tBid*54o3 zelf%91Ekc-*fM_)$b_vDH~ICE6Z@{ViMK9&UfpsMZ(@gOpT@w^X$93TH1*XZj_nKo zzF&6Y$wM{_FAzxZLe?4^)<8}AK8?kQ&HHyT49V~QWqmvJ8F8bBr&}&__hm6 zdba?jcU4azP&x;tcSa5daB`RVHgn%;wG!M3DacGa%o-{vrMxDFk!jUL0o)P+pk|^(Pe|hHS>K%JD@g+)_ z?lu0Ol~EjU|MkwL3m-qYa*+{hs>D(PHp>g#Mls?{$N4LZPTk!5ouCo0bj9rLRfLkT vZ=OH9`Sjn5-Lk}H4d2zqOeiMwE?IGKYSZ}_VT7^<%o|TmC0qgkR9ef2<~fK9 literal 0 HcmV?d00001 diff --git a/smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/items.tfrecord b/smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/items.tfrecord new file mode 100644 index 0000000000000000000000000000000000000000..cd44537c2575755b82ccbc1895b8ac0973307e0c GIT binary patch literal 365 zcmV-z0h0cBoO{av0d`+?+c+LSz2Cp~$<^Dx8HIRD^D@)&i*n;j5|eULH6e;V*jsUP zEZ*_<2%Er*t#e|Xb}@3vaPe?Ve}7}*vnlt_`b#hZdAF~h{dZ#B-{vwPPmYV1W9j!@ zw_YBdcX|OMP=J@?>95|IkGHM6FcHL+1*-pb?#cbhyLSD}0!x3raB<)11^1utgh}7s z{_@Pt)jRfRf~DUb=sDLiea6o=h%_(9uC|G{E`46za*`2j`KE2Nw*LOO_KO)*x^vTu z_L&P`d|d;P?p?Ct;MAt`FTx}kXSF~3@D|zg`_6yf`FzWs&&zRpo`+*8*z;Y_4mL14 z?S%Lq*}ps-KPFE3y=>Ek!*u&HHyT44;8M)58W$M%JP-!D7yIO-F*7*#co+>*dY6sm*Y&w`74V~-Q4>f7Ia9y1xnw4y>scp#}BSt1WJoO Ld%6q&^}gD>Q*Fx$ literal 0 HcmV?d00001 diff --git a/smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/tables.tfrecord b/smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/tables.tfrecord new file mode 100644 index 00000000..c704999d --- /dev/null +++ b/smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/tables.tfrecord @@ -0,0 +1 @@ +xœ³a€€Ûqñ–æe¦å寗$&å¤JÉ Bä>ØKþƒ÷ÿ¡Œz F &%&F-F Fƒ”/’;ŒiÆ \ No newline at end of file diff --git a/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py b/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py index d267203f..9007f3d2 100644 --- a/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py +++ b/smart_control/reinforcement_learning/scripts/generate_gin_configs_test.py @@ -66,6 +66,7 @@ def test_modify_config(self, param_name, param_value, expected_content): self.assertIn(expected_content, modified) def test_generate_configs(self): + # TODO: use temp dir instead!!! # setup, using separate temporary directory for generating test files: test_output_dir = os.path.join(SB1_TRAIN_CONFIGS_DIR, "generation_test") if os.path.isdir(test_output_dir): diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py index 2de89845..b9943bb1 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer.py @@ -4,7 +4,6 @@ bootstrap the training process. """ -from datetime import datetime import logging import os from typing import Sequence @@ -28,7 +27,7 @@ from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment from smart_control.utils.constants import ROOT_DIR -# this is used by the gin config (see "") +# this is used by the gin config (see "sim_config_1_day.gin") # pylint:disable-next=unused-import from smart_control.reinforcement_learning.utils.config import get_histogram_path # isort:skip @@ -37,19 +36,6 @@ logger = logging.getLogger(__name__) -# VERBOSE_LOGGING = bool(os.getenv('VERBOSE_LOGGING', default='false') == 'true') # pylint:disable=line-too-long -# -# if VERBOSE_LOGGING: -# logging.basicConfig( -# level=logging.INFO, -# format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', -# ) -# else: -# logging.basicConfig( -# level=logging.INFO, -# format='[%(message)s]', -# ) - # logging.basicConfig( # level=logging.INFO, # format='[%(levelname)s] [%(filename)s:%(lineno)d] [%(message)s]', @@ -65,7 +51,7 @@ FLAGS = flags.FLAGS -BUFFER_NAME = flags.DEFINE_string( +flags.DEFINE_string( name='buffer_name', default='default', help=( @@ -73,174 +59,185 @@ ' name where files will be saved.' ), ) -CONFIG_FILEPATH = flags.DEFINE_string( +flags.DEFINE_string( name='config_filepath', default=ONE_DAY_CONFIG_FILEPATH, help='Environment config file', ) -CAPACITY = flags.DEFINE_integer( +flags.DEFINE_integer( name='capacity', default=50000, help='Replay buffer capacity' ) -STEPS_PER_RUN = flags.DEFINE_integer( +flags.DEFINE_integer( name='steps_per_run', default=100, help='Number of steps per actor run' ) -NUM_RUNS = flags.DEFINE_integer( +flags.DEFINE_integer( name='num_runs', default=5, help='Number of actor runs to perform' ) -SEQUENCE_LENGTH = flags.DEFINE_integer( +flags.DEFINE_integer( name='sequence_length', default=2, help='Sequence length for the replay buffer', ) -def populate_replay_buffer( - buffer_dirpath: str, - config_filepath: str, - buffer_capacity: int, - steps_per_run: int, - num_runs: int, - sequence_length: int, -) -> ReverbReplayBuffer: +class StarterBufferGenerator: """Populates a replay buffer with initial exploration data. Args: - buffer_dirpath: Path where the replay buffer will be saved. + buffer_name: Name of directory where the replay buffer will be saved. config_filepath: Path to the environment gin configuration file. buffer_capacity: Maximum size of the replay buffer. steps_per_run: Number of steps per actor run. num_runs: Number of actor runs to perform. sequence_length: Length of sequences to store in the replay buffer. - - Returns: - The replay buffer. """ - logger.info('Buffer dirpath: %s', os.path.abspath(buffer_dirpath)) - - # Create directory if it doesn't exist - # try: - # os.makedirs(buffer_dirpath, exist_ok=False) - # except FileExistsError as err: - # error_message = ( - # 'Buffer path already exists. This would override the existing buffer.' - # ' Please use another path.' - # ) - # logger.exception(error_message) - # raise FileExistsError(error_message) from err - - # UPDATE: only stop if there is a "DONE" file inside this dir - os.makedirs(buffer_dirpath, exist_ok=True) - done_filepath = os.path.join(buffer_dirpath, 'DONE') - if os.path.isfile(done_filepath): - raise FileExistsError('Starter buffer already exists, would be overwritten') - # todo: consider using a flag or user input to override - - # Load environment - logger.info('Loading environment from standard config') - collect_env = create_and_setup_environment(config_filepath, metrics_path=None) - - # Wrap in TF environment - collect_tf_env = tf_py_environment.TFPyEnvironment(collect_env) - - # Create policy for collection - train_step = tf.Variable(0, trainable=False, dtype=tf.int64) - - _, action_spec, time_step_spec = spec_utils.get_tensor_specs(collect_tf_env) - - collection_policy = create_baseline_schedule_policy(collect_tf_env) - - # Initialize replay buffer - logger.info('Creating replay buffer at: %s', os.path.abspath(buffer_dirpath)) - logger.info( - 'Buffer capacity: %d, Sequence length: %d', - buffer_capacity, - sequence_length, - ) - # Get the policy's info spec - policy_info_spec = collection_policy.info_spec - - # Create a trajectory spec properly - collect_data_spec = trajectory.Trajectory( - step_type=time_step_spec.step_type, - observation=time_step_spec.observation, - action=action_spec, - policy_info=policy_info_spec, - next_step_type=time_step_spec.step_type, - reward=time_step_spec.reward, - discount=time_step_spec.discount, - ) + def __init__( + self, + buffer_name: str = 'default', + config_filepath: str = ONE_DAY_CONFIG_FILEPATH, + buffer_capacity: int = 50000, + steps_per_run: int = 100, + num_runs: int = 5, + sequence_length: int = 2, + ): + self.buffer_name = buffer_name + self.config_filepath = config_filepath + self.buffer_capacity = int(buffer_capacity) + self.steps_per_run = int(steps_per_run) + self.num_runs = int(num_runs) + self.sequence_length = int(sequence_length) + + self.buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, self.buffer_name) + + def populate(self) -> ReverbReplayBuffer: + """Returns: The replay buffer.""" + logger.info('Buffer dirpath: %s', os.path.abspath(self.buffer_dirpath)) + + os.makedirs(self.buffer_dirpath, exist_ok=True) + done_filepath = os.path.join(self.buffer_dirpath, 'DONE') + if os.path.isfile(done_filepath): + raise FileExistsError( + 'Starter buffer already exists, would be overwritten' + ) + + # Load environment + logger.info( + 'Loading environment from config: %s', + os.path.abspath(self.config_filepath), + ) + collect_env = create_and_setup_environment( + self.config_filepath, metrics_path=None + ) - # Use this data spec when creating the replay buffer - replay_manager = ReplayBufferManager( - data_spec=collect_data_spec, # Use the complete data spec - capacity=buffer_capacity, - checkpoint_dir=buffer_dirpath, - sequence_length=sequence_length, - ) + # Wrap in TF environment + collect_tf_env = tf_py_environment.TFPyEnvironment(collect_env) - replay_buffer, replay_buffer_observer = replay_manager.create_replay_buffer() + # Create policy for collection + train_step = tf.Variable(0, trainable=False, dtype=tf.int64) - # Create observers - print_observer = PrintStatusObserver( - status_interval_steps=1, # Print status every step - environment=collect_tf_env, - replay_buffer=replay_buffer, - ) + _, action_spec, time_step_spec = spec_utils.get_tensor_specs(collect_tf_env) - # Combine observers - observers = CompositeObserver([print_observer, replay_buffer_observer]) - - # Create collect actor - logger.info('Setting up collect actor') - collect_actor = actor.Actor( - env=collect_tf_env.pyenv.envs[0], # Use underlying PyEnv - policy=py_tf_eager_policy.PyTFEagerPolicy(collection_policy), - steps_per_run=steps_per_run, - train_step=train_step, - observers=[observers], - ) + collection_policy = create_baseline_schedule_policy(collect_tf_env) - # Run collection - logger.info( - 'Starting collection for %d runs of %d steps each', - num_runs, - steps_per_run, - ) - total_steps = 0 + # Initialize replay buffer + logger.info( + 'Creating replay buffer at: %s', os.path.abspath(self.buffer_dirpath) + ) + logger.info( + 'Buffer capacity: %d, Sequence length: %d', + self.buffer_capacity, + self.sequence_length, + ) + + # Get the policy's info spec + policy_info_spec = collection_policy.info_spec + + # Create a trajectory spec properly + collect_data_spec = trajectory.Trajectory( + step_type=time_step_spec.step_type, + observation=time_step_spec.observation, + action=action_spec, + policy_info=policy_info_spec, + next_step_type=time_step_spec.step_type, + reward=time_step_spec.reward, + discount=time_step_spec.discount, + ) + + # Use this data spec when creating the replay buffer + replay_manager = ReplayBufferManager( + data_spec=collect_data_spec, # Use the complete data spec + capacity=self.buffer_capacity, + checkpoint_dir=self.buffer_dirpath, + sequence_length=self.sequence_length, + ) + + replay_buffer, replay_buffer_observer = ( + replay_manager.create_replay_buffer() + ) + + # Create observers + print_observer = PrintStatusObserver( + status_interval_steps=1, # Print status every step + environment=collect_tf_env, + replay_buffer=replay_buffer, + ) + + # Combine observers + observers = CompositeObserver([print_observer, replay_buffer_observer]) + + # Create collect actor + logger.info('Setting up collect actor') + collect_actor = actor.Actor( + env=collect_tf_env.pyenv.envs[0], # Use underlying PyEnv + policy=py_tf_eager_policy.PyTFEagerPolicy(collection_policy), + steps_per_run=self.steps_per_run, + train_step=train_step, + observers=[observers], + ) - for current_run in range(num_runs): # Run collection logger.info( - 'Run %d/%d (total steps so far: %d)', - current_run + 1, - num_runs, + 'Starting collection for %d runs of %d steps each', + self.num_runs, + self.steps_per_run, + ) + total_steps = 0 + + for current_run in range(self.num_runs): + # Run collection + logger.info( + 'Run %d/%d (total steps so far: %d)', + current_run + 1, + self.num_runs, + total_steps, + ) + collect_actor.run() + + # Update total steps + total_steps += self.steps_per_run + + # Checkpoint buffer periodically + logger.info( + 'Completed run %d/%d. Checkpointing buffer...', + current_run + 1, + self.num_runs, + ) + replay_buffer.py_client.checkpoint() + + # Final checkpoint and stats + logger.info( + 'Completed all runs, total steps: %d. ' + 'Checkpointing buffer one last time...', total_steps, ) - collect_actor.run() - - # Update total steps - total_steps += steps_per_run - # Checkpoint buffer periodically + replay_buffer.py_client.checkpoint() logger.info( - 'Completed run %d/%d. Checkpointing buffer...', - current_run + 1, - num_runs, + 'Final replay buffer size: %d frames', replay_buffer.num_frames() ) - replay_buffer.py_client.checkpoint() - # Final checkpoint and stats - logger.info( - 'Completed all runs, total steps: %d. ' - 'Checkpointing buffer one last time...', - total_steps, - ) - - replay_buffer.py_client.checkpoint() - logger.info('Final replay buffer size: %d frames', replay_buffer.num_frames()) - - return replay_buffer + return replay_buffer def main(argv: Sequence[str]): @@ -259,19 +256,15 @@ def main(argv: Sequence[str]): if not os.path.isabs(config_filepath): config_filepath = os.path.join(ROOT_DIR, config_filepath) - buffer_name = FLAGS.buffer_name - if buffer_name is None: - buffer_name = 'buffer_' + datetime.now().strftime('%Y%m%d_%H%M%S') - buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_name) - - populate_replay_buffer( - buffer_dirpath=buffer_dirpath, # pylint:disable=possibly-used-before-assignment + buffer_generator = StarterBufferGenerator( + buffer_name=FLAGS.buffer_name, config_filepath=config_filepath, buffer_capacity=FLAGS.capacity, steps_per_run=FLAGS.steps_per_run, num_runs=FLAGS.num_runs, sequence_length=FLAGS.sequence_length, ) + buffer_generator.populate() if __name__ == '__main__': diff --git a/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py b/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py index cb96aeec..408f2fd3 100644 --- a/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py +++ b/smart_control/reinforcement_learning/scripts/populate_starter_buffer_test.py @@ -11,7 +11,7 @@ from tf_agents.specs import TensorSpec from tf_agents.trajectories.trajectory import Trajectory -from smart_control.reinforcement_learning.scripts.populate_starter_buffer import populate_replay_buffer +from smart_control.reinforcement_learning.scripts.populate_starter_buffer import StarterBufferGenerator from smart_control.reinforcement_learning.utils.constants import ONE_DAY_CONFIG_FILEPATH @@ -32,14 +32,16 @@ def test_starter_buffer_population(self): # using small arbitrary values for faster completion: capacity = 100 # default:50_000 steps_per_run = 5 # default:100 - replay_buffer = populate_replay_buffer( - buffer_dirpath=self.buffer_dirpath, + buffer_generator = StarterBufferGenerator( + buffer_name="testing-123", config_filepath=ONE_DAY_CONFIG_FILEPATH, buffer_capacity=capacity, steps_per_run=steps_per_run, num_runs=1, # default:5 sequence_length=2, # default:2 ) + buffer_generator.buffer_dirpath = self.buffer_dirpath # use temp dir + replay_buffer = buffer_generator.populate() with self.subTest("returns a replay buffer"): self.assertIsInstance(replay_buffer, ReverbReplayBuffer) From 034af1f5eb19c0881595bbdbc08aeb74f840d7ab Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Tue, 12 Aug 2025 22:26:52 +0000 Subject: [PATCH 29/34] WIP - refactor and test RL agent trainer --- .../reinforcement_learning/scripts/train.py | 743 ++++++++++-------- .../scripts/train_test.py | 75 ++ 2 files changed, 489 insertions(+), 329 deletions(-) create mode 100644 smart_control/reinforcement_learning/scripts/train_test.py diff --git a/smart_control/reinforcement_learning/scripts/train.py b/smart_control/reinforcement_learning/scripts/train.py index 82ed1dec..4c478f36 100644 --- a/smart_control/reinforcement_learning/scripts/train.py +++ b/smart_control/reinforcement_learning/scripts/train.py @@ -26,6 +26,7 @@ from absl import app from absl import flags import tensorflow as tf +from tf_agents.agents import tf_agent from tf_agents.environments import tf_py_environment from tf_agents.metrics import tf_metrics from tf_agents.policies import greedy_policy @@ -55,6 +56,7 @@ # pylint:enable=wrong-import-position +DEFAULT_STARTER_BUFFER_DIRPATH = os.path.join(RL_STARTER_BUFFERS_DIR, 'default') # LOGGING @@ -67,6 +69,8 @@ # FLAGS +FLAGS = flags.FLAGS + flags.DEFINE_string( name='experiment_name', default=None, @@ -75,17 +79,12 @@ ) flags.DEFINE_string( name='starter_buffer_path', - default=None, - help=( - 'Path to the starter replay buffer (e.g. "/path/to/my_buffer"). If not' - ' supplied, will check the "starter_buffers" dir and use the most' - ' recently generated buffer. Use the starter buffer generation script' - ' to generate a starter buffer.' - ), + default=DEFAULT_STARTER_BUFFER_DIRPATH, + help='Path to the starter replay buffer (e.g. "/path/to/my_buffer").', # required=True, ) flags.DEFINE_string( - name='scenario_config_path', + name='config_filepath', default=ONE_DAY_CONFIG_FILEPATH, # DEFAULT_CONFIG_FILEPATH, help='Path to the scenario config file (e.g. "/path/to/sim_config.gin")', ) @@ -143,366 +142,451 @@ ) -FLAGS = flags.FLAGS - -# SCRIPT - - -def save_experiment_parameters(params, save_path): - """ - Save experiment parameters to a JSON file. - - Args: - params: Dictionary containing experiment parameters - save_path: Path to save the parameters file - """ - # Create a parameters file path - params_file = os.path.join(save_path, 'experiment_parameters.json') - - # Add timestamp to parameters - params['timestamp'] = datetime.now().strftime('%Y_%m_%d-%H:%M:%S') - - # Save parameters to file - logger.info('Saving experiment parameters to %s', params_file) - with open(params_file, 'w', encoding='utf-8') as f: - json.dump(params, f, indent=4) - - # Also save as a readable text file for quick reference - params_txt = os.path.join(save_path, 'experiment_parameters.txt') - with open(params_txt, 'w', encoding='utf-8') as f: - f.write('Experiment Parameters:\n') - f.write('=====================\n\n') - for key, value in params.items(): - f.write(f'{key}: {value}\n') - - logger.info( - 'Experiment parameters saved to %s and %s', params_file, params_txt - ) - - -def train_agent( - experiment_name: str, - starter_buffer_path: str, - scenario_config_path: str = ONE_DAY_CONFIG_FILEPATH, - agent_type: str = 'sac', - train_iterations: int = 100000, - collect_steps_per_iteration: int = 1, - batch_size: int = 256, - log_interval: int = 100, - eval_interval: int = 1000, - num_eval_episodes: int = 5, - checkpoint_interval: int = 1000, - learner_iterations: int = 200, -): - """ - Trains a reinforcement learning agent using a pre-populated replay buffer. +class RLAgentTrainer: + """Trains a reinforcement learning agent using a pre-populated replay buffer. Args: - experiment_name: Name of the experiment - starter_buffer_path: Path to the pre-populated replay buffer - scenario_config_path: Path to the scenario configuration file - agent_type: Type of agent to train ('sac' or 'td3') - train_iterations: Number of training iterations + experiment_name: Name of the experiment. Corresponds with the name of a + directory where results will be saved. + starter_buffer_path: Path to the pre-populated replay buffer directory. + config_filepath: Path to the scenario configuration file. + agent_type: Type of agent to train ('sac', 'td3', 'ddpg'). + train_iterations: Number of training iterations. collect_steps_per_iteration: Number of collection steps per training - iteration - batch_size: Batch size for training - log_interval: Interval for logging training metrics - eval_interval: Interval for evaluating the agent - num_eval_episodes: Number of episodes for evaluation - checkpoint_interval: Interval for checkpointing the replay buffer + iteration. + batch_size: Batch size for training. + log_interval: Interval for logging training metrics. + eval_interval: Interval for evaluating the agent. + num_eval_episodes: Number of episodes for evaluation. + checkpoint_interval: Interval for checkpointing the replay buffer. learner_iterations: Number of iterations to run the agent learner per - training loop + training loop. """ - # SETUP + def __init__( + self, + experiment_name: str, + starter_buffer_path: str = DEFAULT_STARTER_BUFFER_DIRPATH, + config_filepath: str = ONE_DAY_CONFIG_FILEPATH, + agent_type: str = 'sac', + train_iterations: int = 100000, + collect_steps_per_iteration: int = 1, + batch_size: int = 256, + log_interval: int = 100, + eval_interval: int = 1000, + num_eval_episodes: int = 5, + checkpoint_interval: int = 1000, + learner_iterations: int = 200, + ): + self.experiment_name = experiment_name + self.starter_buffer_dirpath = starter_buffer_path + self.config_filepath = config_filepath + self.agent_type = agent_type + self.train_iterations = int(train_iterations) + self.collect_steps_per_iteration = int(collect_steps_per_iteration) + self.batch_size = int(batch_size) + self.log_interval = int(log_interval) + self.eval_interval = int(eval_interval) + self.num_eval_episodes = int(num_eval_episodes) + self.checkpoint_interval = int(checkpoint_interval) + self.learner_iterations = int(learner_iterations) + + if self.agent_type not in ['sac', 'ddpg']: + raise ValueError( + 'Agent {self.agent_type} has not (yet) been implemented. Please' + " choose one of: ['sac', 'ddpg']." + ) - # Generate timestamp for summary directory - current_time = datetime.now().strftime('%Y%m%d_%H%M%S') - experiment_dirname = f'{experiment_name}_{current_time}' - summary_dir = os.path.join(RL_EXPERIMENT_RESULTS_DIR, experiment_dirname) - logger.info( - 'Experiment results will be saved to %s', os.path.abspath(summary_dir) - ) + # todo: validate all integers are greater than zero - try: - os.makedirs(summary_dir, exist_ok=False) - except FileExistsError as exc: - logger.exception('Directory %s already exists. Exiting.', summary_dir) - raise FileExistsError( - f'Directory {summary_dir} already exists. Exiting.' - ) from exc - - # Save experiment parameters - experiment_params = { - 'starter_buffer_path': starter_buffer_path, - 'experiment_name': experiment_name, - 'agent_type': agent_type, - 'train_iterations': train_iterations, - 'collect_steps_per_iteration': collect_steps_per_iteration, - 'batch_size': batch_size, - 'log_interval': log_interval, - 'eval_interval': eval_interval, - 'num_eval_episodes': num_eval_episodes, - 'checkpoint_interval': checkpoint_interval, - 'learner_iterations': learner_iterations, - 'scenario_config_path': scenario_config_path, - } - save_experiment_parameters(experiment_params, summary_dir) - - # ENVIRONMENTS - - # Create train and eval environments - logger.info( - 'Creating train and eval environments with scenario config path: %s', - scenario_config_path, - ) - metrics_dirpath = os.path.join(summary_dir, 'metrics') - train_env = create_and_setup_environment( - scenario_config_path, metrics_path=metrics_dirpath - ) - eval_env = create_and_setup_environment( - scenario_config_path, metrics_path=None - ) + self.experiment_dirname = self.experiment_name.replace(' ', '') + self.results_dirpath = os.path.join( + RL_EXPERIMENT_RESULTS_DIR, self.experiment_dirname + ) + + # these will be set later during training: + self.train_env = None + self.eval_env = None + self.agent = None - # Wrap in TF environments - train_tf_env = tf_py_environment.TFPyEnvironment(train_env) - eval_tf_env = tf_py_environment.TFPyEnvironment(eval_env) + @property + def done_filepath(self): + """The DONE file is a convention for replay buffers. We are borrowing it. + After the agent is trained we will create this file. + """ + return os.path.join(self.results_dirpath, 'DONE') - # Create global step for training - train_step = tf.Variable(0, trainable=False, dtype=tf.int64) + def mark_as_complete(self): + """Create the DONE file to indicate the agent has completed its training.""" + with open(self.done_filepath, 'w', encoding='utf-8') as f: + f.write('Training Complete!') - # Get specs - _, action_spec, time_step_spec = spec_utils.get_tensor_specs(train_tf_env) + def setup_results_dir(self): + logger.info( + 'Experiment results will be saved to %s', + os.path.abspath(self.results_dirpath), + ) - # AGENT + # try: + # os.makedirs(self.results_dirpath, exist_ok=False) + # except FileExistsError as exc: + # logger.exception( + # 'Directory %s already exists. Exiting.', self.results_dirpath + # ) + # raise FileExistsError( + # f'Directory {self.results_dirpath} already exists. Exiting.' + # ) from exc + os.makedirs(self.results_dirpath, exist_ok=True) + # when testing we are creating the dir beforehand, check for results instead + if os.path.isfile(self.done_filepath): + raise FileExistsError('Results directory already exists') + + @property + def experiment_params(self): + return { + 'experiment_name': self.experiment_name, + 'config_filepath': os.path.abspath(self.config_filepath), + 'starter_buffer_path': os.path.abspath(self.starter_buffer_dirpath), + 'agent_type': self.agent_type, + 'train_iterations': self.train_iterations, + 'collect_steps_per_iteration': self.collect_steps_per_iteration, + 'batch_size': self.batch_size, + 'log_interval': self.log_interval, + 'eval_interval': self.eval_interval, + 'num_eval_episodes': self.num_eval_episodes, + 'checkpoint_interval': self.checkpoint_interval, + 'learner_iterations': self.learner_iterations, + } + + @property + def params_json_filepath(self): + return os.path.join(self.results_dirpath, 'experiment_parameters.json') + + @property + def params_txt_filepath(self): + return os.path.join(self.results_dirpath, 'experiment_parameters.txt') + + def save_experiment_params(self, params: dict = None, save_path: str = None): + """ + Save experiment parameters to a JSON file, as well as to a TXT file. + + Args: + params: Dictionary containing experiment parameters. + save_path: Path to save the parameters file. + """ + params = params or self.experiment_params + params['timestamp'] = datetime.now().strftime('%Y_%m_%d-%H:%M:%S') + + save_path = save_path or self.results_dirpath - # Create agent based on type - logger.info('Creating %s agent', agent_type) - if agent_type.lower() == 'sac': - logger.info('Creating SAC agent') - agent = create_sac_agent( - time_step_spec=time_step_spec, action_spec=action_spec + logger.info( + 'Saving experiment parameters to %s', + os.path.abspath(self.params_json_filepath), ) - elif agent_type.lower() == 'ddpg': - logger.info('Creating DDPG agent') - agent = create_ddpg_agent( - time_step_spec=time_step_spec, action_spec=action_spec + with open(self.params_json_filepath, 'w', encoding='utf-8') as f: + json.dump(params, f, indent=4) + + logger.info( + 'Saving experiment parameters to %s', + os.path.abspath(self.params_txt_filepath), + ) + with open(self.params_txt_filepath, 'w', encoding='utf-8') as f: + f.write('Experiment Parameters:\n') + f.write('=====================\n\n') + for key, value in params.items(): + f.write(f'{key}: {value}\n') + + def copy_replay_buffer(self): + # Create a new buffer path in the experiment directory + new_buffer_path = os.path.join(self.results_dirpath, 'replay_buffer') + os.makedirs(new_buffer_path, exist_ok=True) + + # Copy the original buffer to the new location + logger.info( + 'Creating a copy of replay buffer from %s to %s', + os.path.abspath(self.starter_buffer_dirpath), + os.path.abspath(new_buffer_path), ) - else: - logger.exception('Unsupported agent type: %s', agent_type) - raise ValueError(f'Unsupported agent type: {agent_type}') - - # Create policies - collect_policy = agent.collect_policy - eval_policy = greedy_policy.GreedyPolicy(agent.policy) - - # Set up metrics - train_metrics = [ - tf_metrics.NumberOfEpisodes(), - tf_metrics.EnvironmentSteps(), - tf_metrics.AverageReturnMetric(), - tf_metrics.AverageEpisodeLengthMetric(), - ] - - eval_metrics = [ - tf_metrics.AverageReturnMetric(buffer_size=num_eval_episodes), - tf_metrics.AverageEpisodeLengthMetric(buffer_size=num_eval_episodes), - ] - - # REPLAY BUFFER - - # Create a new buffer path in the experiment directory - new_buffer_path = os.path.join(summary_dir, 'replay_buffer') - os.makedirs(new_buffer_path, exist_ok=True) - - # Copy the original buffer to the new location - logger.info( - 'Creating a copy of replay buffer from %s to %s', - os.path.abspath(starter_buffer_path), - os.path.abspath(new_buffer_path), - ) - # First check if starter_buffer_path is a file or directory - if os.path.isfile(starter_buffer_path): - # If it's a file, copy it directly - shutil.copy2(starter_buffer_path, new_buffer_path) - else: - # If it's a directory, copy all contents - for item in os.listdir(starter_buffer_path): - source_item = os.path.join(starter_buffer_path, item) - dest_item = os.path.join(new_buffer_path, item) - if os.path.isfile(source_item): - shutil.copy2(source_item, dest_item) - else: - shutil.copytree(source_item, dest_item) - - logger.info('Replay buffer copied to %s', new_buffer_path) - - # Initialize replay buffer manager with the copied buffer path - logger.info('Instantiating replay buffer manager with copied buffer') - replay_manager = ReplayBufferManager( - agent.collect_data_spec, - 50000, # Use default capacity - new_buffer_path, # Use the copied buffer path - sequence_length=2, - ) - logger.info( - 'Replay buffer size before loading: %d frames', - replay_manager.num_frames(), - ) + # First check if starter_buffer_path is a file or directory + if os.path.isfile(self.starter_buffer_dirpath): + # If it's a file, copy it directly + shutil.copy2(self.starter_buffer_dirpath, new_buffer_path) + else: + # If it's a directory, copy all contents + for item in os.listdir(self.starter_buffer_path): + source_item = os.path.join(self.starter_buffer_path, item) + dest_item = os.path.join(new_buffer_path, item) + if os.path.isfile(source_item): + shutil.copy2(source_item, dest_item) + else: + shutil.copytree(source_item, dest_item) + + logger.info('Replay buffer copied to %s', new_buffer_path) + return new_buffer_path + + def create_agent(self, action_spec, time_step_spec): + logger.info('Creating %s agent', self.agent_type) + if self.agent_type.lower() == 'sac': + logger.info('Creating SAC agent') + agent = create_sac_agent( + time_step_spec=time_step_spec, action_spec=action_spec + ) + elif self.agent_type.lower() == 'ddpg': + logger.info('Creating DDPG agent') + agent = create_ddpg_agent( + time_step_spec=time_step_spec, action_spec=action_spec + ) + else: + logger.exception('Unsupported agent type: %s', self.agent_type) + raise ValueError(f'Unsupported agent type: {self.agent_type}') - # Load the copied replay buffer - logger.info('Loading replay buffer from %s', new_buffer_path) - replay_buffer, replay_buffer_observer = replay_manager.load_replay_buffer() - logger.info( - 'Replay buffer size after loading: %d frames', replay_manager.num_frames() - ) + return agent - # Create dataset for sampling from the buffer - logger.info('Creating dataset for sampling from replay buffer') - dataset = replay_buffer.as_dataset( - sample_batch_size=batch_size, num_steps=2, num_parallel_calls=3 - ).prefetch(3) + @property + def metrics_dirpath(self): + return os.path.join(self.results_dirpath, 'metrics') - # OBSERVERS + @property + def collect_dirpath(self): + return os.path.join(self.results_dirpath, 'collect') - # Create print observer for collection - print_observer = PrintStatusObserver( - status_interval_steps=1, # Print status every step - environment=train_tf_env, - replay_buffer=replay_buffer, - ) + @property + def eval_dirpath(self): + return os.path.join(self.results_dirpath, 'eval') - eval_print_observer = PrintStatusObserver( - status_interval_steps=1, - environment=eval_tf_env, - replay_buffer=replay_buffer, - ) + @property + def saved_model_dirpath(self): + return os.path.join(self.results_dirpath, 'policies') - # Combine observers - collect_observers = CompositeObserver( - [print_observer, replay_buffer_observer] - ) + def train_agent(self) -> tf_agent.TFAgent: + self.setup_results_dir() + self.save_experiment_parameters() - # ACTORS - - # Create collect actor - logger.info('Creating collect and eval actors') - collect_actor = actor.Actor( - train_env, - py_tf_eager_policy.PyTFEagerPolicy(collect_policy), - train_step, - steps_per_run=collect_steps_per_iteration, - metrics=actor.collect_metrics(1), - observers=[collect_observers], - summary_dir=os.path.join(summary_dir, 'collect'), - summary_interval=1, - ) + # ENVIRONMENTS - # Create eval actor - logger.info('Creating eval actor') - eval_actor = actor.Actor( - eval_env, - py_tf_eager_policy.PyTFEagerPolicy(eval_policy), - train_step, - episodes_per_run=num_eval_episodes, - metrics=actor.eval_metrics(num_eval_episodes), - observers=[eval_print_observer], - summary_dir=os.path.join(summary_dir, 'eval'), - summary_interval=1, - ) + logger.info( + 'Creating train and eval environments with scenario config path: %s', + self.config_filepath, + ) + # metrics_dirpath = os.path.join(self.results_dirpath, 'metrics') + train_env = create_and_setup_environment( + self.config_filepath, metrics_path=self.metrics_dirpath + ) + eval_env = create_and_setup_environment( + self.config_filepath, metrics_path=None + ) - # LEARNER + # Wrap in TF environments + train_tf_env = tf_py_environment.TFPyEnvironment(train_env) + eval_tf_env = tf_py_environment.TFPyEnvironment(eval_env) + + # AGENT + + # Create global step for training + train_step = tf.Variable(0, trainable=False, dtype=tf.int64) + + # Get specs + _, action_spec, time_step_spec = spec_utils.get_tensor_specs(train_tf_env) + + # Create agent based on type + self.agent = self.create_agent(action_spec, time_step_spec) + + # Create policies + collect_policy = self.agent.collect_policy + eval_policy = greedy_policy.GreedyPolicy(self.agent.policy) + + # Set up metrics + train_metrics = [ + tf_metrics.NumberOfEpisodes(), + tf_metrics.EnvironmentSteps(), + tf_metrics.AverageReturnMetric(), + tf_metrics.AverageEpisodeLengthMetric(), + ] + + eval_metrics = [ + tf_metrics.AverageReturnMetric(buffer_size=self.num_eval_episodes), + tf_metrics.AverageEpisodeLengthMetric( + buffer_size=self.num_eval_episodes + ), + ] + + # REPLAY BUFFER + + # Create a new buffer path in the experiment directory + new_buffer_path = self.copy_starter_buffer() + + # Initialize replay buffer manager with the copied buffer path + logger.info('Instantiating replay buffer manager with copied buffer') + replay_manager = ReplayBufferManager( + data_spec=self.agent.collect_data_spec, + capacity=50000, # Use default capacity + checkpoint_dir=new_buffer_path, # Use the copied buffer path + sequence_length=2, + # should we keep these defaults, or use the dynamic parameter values? + ) + logger.info( + 'Replay buffer size before loading: %d frames', + replay_manager.num_frames(), + ) - # Create learner - saved_model_dirpath = os.path.join(summary_dir, 'policies') - saved_model_trigger = triggers.PolicySavedModelTrigger( - saved_model_dir=saved_model_dirpath, - agent=agent, - train_step=train_step, - interval=eval_interval, - ) - log_trigger = triggers.StepPerSecondLogTrigger( - train_step=train_step, interval=log_interval - ) - logger.info('Creating learner') - agent_learner = learner.Learner( - root_dir=summary_dir, - train_step=train_step, - agent=agent, - experience_dataset_fn=lambda: dataset, - summary_interval=1, - triggers=[saved_model_trigger, log_trigger], - ) - # > https://github.com/tensorflow/tensorflow/issues/59869 + # Load the copied replay buffer + logger.info('Loading replay buffer from %s', new_buffer_path) + replay_buffer, replay_buffer_observer = replay_manager.load_replay_buffer() + logger.info( + 'Replay buffer size after loading: %d frames', + replay_manager.num_frames(), + ) - # Main training loop - logger.info('Starting training for %d iterations', train_iterations) + # Create dataset for sampling from the buffer + logger.info('Creating dataset for sampling from replay buffer') + dataset = replay_buffer.as_dataset( + sample_batch_size=self.batch_size, num_steps=2, num_parallel_calls=3 + ).prefetch(3) - # Reset metrics - for m in train_metrics: - m.reset() + # OBSERVERS - # Main training loop - for i in tqdm(range(train_iterations)): - # Get current training step value before operations - current_step = train_step.numpy() - logger.info( - 'Starting training loop iteration %d (step %d)', i, current_step + print_observer = PrintStatusObserver( + status_interval_steps=1, # Print status every step + environment=train_tf_env, + replay_buffer=replay_buffer, ) - # Evaluate periodically - if i % eval_interval == 0: - logger.info('Evaluating at iteration %d (step %d)', i, current_step) - eval_actor.run() + eval_print_observer = PrintStatusObserver( + status_interval_steps=1, + environment=eval_tf_env, + replay_buffer=replay_buffer, + ) - # Write eval summaries with the current global step - with eval_actor.summary_writer.as_default(): - for m in eval_metrics: - tf.summary.scalar(m.name, m.result(), step=current_step) - eval_actor.summary_writer.flush() + collect_observers = CompositeObserver( + [print_observer, replay_buffer_observer] + ) - # Collect experience - logger.info( - 'Starting collection for loop iteration %d (step %d)', i, current_step + # ACTORS + + # Create collect actor + logger.info('Creating collect actor...') + # collect_dirpath = os.path.join(self.results_dirpath, 'collect') + collect_actor = actor.Actor( + train_env, + py_tf_eager_policy.PyTFEagerPolicy(collect_policy), + train_step, + steps_per_run=self.collect_steps_per_iteration, + metrics=actor.collect_metrics(1), + observers=[collect_observers], + summary_dir=self.collect_dirpath, + summary_interval=1, ) - collect_actor.run() - # Write collect summaries with the current global step - with collect_actor.summary_writer.as_default(): - for m in train_metrics: - tf.summary.scalar(m.name, m.result(), step=current_step) - collect_actor.summary_writer.flush() + # Create eval actor + logger.info('Creating eval actor...') + # eval_dirpath = os.path.join(self.results_dirpath, 'eval') + eval_actor = actor.Actor( + env=eval_env, + policy=py_tf_eager_policy.PyTFEagerPolicy(eval_policy), + train_step=train_step, + episodes_per_run=self.num_eval_episodes, + metrics=actor.eval_metrics(self.num_eval_episodes), + observers=[eval_print_observer], + summary_dir=self.eval_dirpath, + summary_interval=1, + ) - # Train the agent using the specified learner iterations - # This will internally increment the train_step - logger.info('Training agent for loop iteration %d', i) - agent_learner.run(iterations=learner_iterations) + # LEARNER - # Checkpoint replay buffer periodically based on the new argument - if i % checkpoint_interval == 0: - logger.info('Checkpointing replay buffer') - replay_buffer.py_client.checkpoint() + # Create learner + # https://github.com/tensorflow/tensorflow/issues/59869 + # saved_model_dirpath = os.path.join(self.results_dirpath, 'policies') + saved_model_trigger = triggers.PolicySavedModelTrigger( + saved_model_dir=self.saved_model_dirpath, + agent=self.agent, + train_step=train_step, + interval=self.eval_interval, + ) + log_trigger = triggers.StepPerSecondLogTrigger( + train_step=train_step, interval=self.log_interval + ) + logger.info('Creating learner') + agent_learner = learner.Learner( + root_dir=self.results_dirpath, + train_step=train_step, + agent=self.agent, + experience_dataset_fn=lambda: dataset, + summary_interval=1, + triggers=[saved_model_trigger, log_trigger], + ) - train_step.assign_add(1) + # Main training loop + logger.info('Starting training for %d iterations', self.train_iterations) - # Final checkpoint and evaluation - logger.info( - 'Training complete. Performing final evaluation and checkpointing.' - ) - replay_buffer.py_client.checkpoint() - eval_actor.run() + # Reset metrics + for m in train_metrics: + m.reset() + + # Main training loop + for i in tqdm(range(self.train_iterations)): + # Get current training step value before operations + current_step = train_step.numpy() + logger.info( + 'Starting training loop iteration %d (step %d)', i, current_step + ) - # Write final evaluation metrics with the final step - with eval_actor.summary_writer.as_default(): - current_step = train_step.numpy() - for m in eval_metrics: - tf.summary.scalar(m.name, m.result(), step=current_step) - logger.info('Final Eval %s: %s', m.name, m.result()) - eval_actor.summary_writer.flush() + # Evaluate periodically + if i % self.eval_interval == 0: + logger.info('Evaluating at iteration %d (step %d)', i, current_step) + eval_actor.run() + + # Write eval summaries with the current global step + with eval_actor.summary_writer.as_default(): + for m in eval_metrics: + tf.summary.scalar(m.name, m.result(), step=current_step) + eval_actor.summary_writer.flush() + + # Collect experience + logger.info( + 'Starting collection for loop iteration %d (step %d)', i, current_step + ) + collect_actor.run() + + # Write collect summaries with the current global step + with collect_actor.summary_writer.as_default(): + for m in train_metrics: + tf.summary.scalar(m.name, m.result(), step=current_step) + collect_actor.summary_writer.flush() - logger.info('Agent training completed. Saved models in %s', summary_dir) - return agent + # Train the agent using the specified learner iterations + # This will internally increment the train_step + logger.info('Training agent for loop iteration %d', i) + agent_learner.run(iterations=self.learner_iterations) + + # Checkpoint replay buffer periodically based on the new argument + if i % self.checkpoint_interval == 0: + logger.info('Checkpointing replay buffer') + replay_buffer.py_client.checkpoint() + + train_step.assign_add(1) + + # Final checkpoint and evaluation + logger.info( + 'Training complete. Performing final evaluation and checkpointing.' + ) + replay_buffer.py_client.checkpoint() + eval_actor.run() + + # Write final evaluation metrics with the final step + with eval_actor.summary_writer.as_default(): + current_step = train_step.numpy() + for m in eval_metrics: + tf.summary.scalar(m.name, m.result(), step=current_step) + logger.info('Final Eval %s: %s', m.name, m.result()) + eval_actor.summary_writer.flush() + + self.mark_as_complete() + logger.info( + 'Agent training completed. Saved models in %s', + os.path.abspath(self.results_dirpath), + ) + return self.agent def main(argv: Sequence[str]): @@ -528,9 +612,9 @@ def main(argv: Sequence[str]): if not os.path.isabs(buffer_dirpath): buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_dirpath) - train_agent( + trainer = RLAgentTrainer( starter_buffer_path=buffer_dirpath, - scenario_config_path=FLAGS.scenario_config_path, + config_filepath=FLAGS.config_filepath, experiment_name=experiment_name, agent_type=FLAGS.agent_type, train_iterations=FLAGS.train_iterations, @@ -542,6 +626,7 @@ def main(argv: Sequence[str]): checkpoint_interval=FLAGS.checkpoint_interval, learner_iterations=FLAGS.learner_iterations, ) + trainer.train_agent() if __name__ == '__main__': diff --git a/smart_control/reinforcement_learning/scripts/train_test.py b/smart_control/reinforcement_learning/scripts/train_test.py new file mode 100644 index 00000000..15a728e5 --- /dev/null +++ b/smart_control/reinforcement_learning/scripts/train_test.py @@ -0,0 +1,75 @@ +"""Tests for gin config generation script.""" + +import json +import os +import tempfile + +from absl.testing import absltest +from absl.testing import parameterized +from tf_agents.agents.tf_agent import TFAgent + +from smart_control.reinforcement_learning.scripts.train import RLAgentTrainer +from smart_control.reinforcement_learning.utils.constants import RL_STARTER_BUFFERS_DIR +from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH + +TEST_STARTER_BUFFER_DIRPATH = os.path.join(RL_STARTER_BUFFERS_DIR, "default") + + +class RLAgentTrainerTest(parameterized.TestCase): + + def setUp(self): + super().setUp() + self.temp_dir = tempfile.TemporaryDirectory() + self.temp_dirpath = self.enter_context(self.temp_dir) # handles teardown + + self.trainer = RLAgentTrainer( + experiment_name="testing-123", + config_filepath=SB1_GIN_CONFIG_FILEPATH, + starter_buffer_path=TEST_STARTER_BUFFER_DIRPATH, + # minimal param values to decrease training time: + train_iterations=1, + collect_steps_per_iteration=1, + batch_size=256, + log_interval=1, + eval_interval=1, + num_eval_episodes=1, + checkpoint_interval=1, + learner_iterations=1, + ) + # override results dir to use the temporary directory (will get cleaned up) + self.trainer.results_dirpath = self.temp_dirpath + + def test_save_experiment_params(self): + self.assertFalse(os.path.isfile(self.trainer.params_json_filepath)) + self.assertFalse(os.path.isfile(self.trainer.params_txt_filepath)) + + self.trainer.save_experiment_parameters() + + with self.subTest("saves experiment parameters to file"): + self.assertTrue(os.path.isfile(self.trainer.params_json_filepath)) + self.assertTrue(os.path.isfile(self.trainer.params_txt_filepath)) + + with self.subTest("saved param values are as expected"): + params = json.loads(self.trainer.params_json_filepath) + self.assertEqual(params, self.trainer.experiment_params) + + @parameterized.parameters([{"agent_type": "sac"}, {"agent_type": "ddpg"}]) + def test_train_agent(self, agent_type): + self.trainer.agent_type = agent_type # overwrite the agent type + + self.assertFalse(os.path.isfile(self.trainer.done_filepath)) + + trained_agent = self.trainer.train_agent() + with self.subTest("it trains an RL agent"): + self.assertIsInstance(trained_agent, TFAgent) + + with self.subTest("it saves artifacts to the results directory"): + self.assertTrue(os.path.isdir(self.trainer.metrics_dirpath)) + self.assertTrue(os.path.isdir(self.trainer.collect_dirpath)) + self.assertTrue(os.path.isdir(self.trainer.eval_dirpath)) + self.assertTrue(os.path.isdir(self.trainer.saved_model_dirpath)) + self.assertTrue(os.path.isfile(self.trainer.done_filepath)) + + +if __name__ == "__main__": + absltest.main() From 00072d7b2433b0e50f3c460202c5c7399c62acda Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Wed, 13 Aug 2025 16:46:01 +0000 Subject: [PATCH 30/34] Regenerate starter buffer for testing --- docs/guides/reinforcement_learning/scripts.md | 2 +- .../chunks.tfrecord | Bin 765 -> 0 bytes .../DONE | 0 .../chunks.tfrecord | Bin 0 -> 759 bytes .../items.tfrecord | Bin .../tables.tfrecord | 0 6 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/chunks.tfrecord rename smart_control/reinforcement_learning/data/starter_buffers/test/{2025-08-12T15:22:13.274393482+00:00 => 2025-08-13T16:43:08.591497344+00:00}/DONE (100%) create mode 100644 smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-13T16:43:08.591497344+00:00/chunks.tfrecord rename smart_control/reinforcement_learning/data/starter_buffers/test/{2025-08-12T15:22:13.274393482+00:00 => 2025-08-13T16:43:08.591497344+00:00}/items.tfrecord (100%) rename smart_control/reinforcement_learning/data/starter_buffers/test/{2025-08-12T15:22:13.274393482+00:00 => 2025-08-13T16:43:08.591497344+00:00}/tables.tfrecord (100%) diff --git a/docs/guides/reinforcement_learning/scripts.md b/docs/guides/reinforcement_learning/scripts.md index c1e2c448..d6cab944 100644 --- a/docs/guides/reinforcement_learning/scripts.md +++ b/docs/guides/reinforcement_learning/scripts.md @@ -72,7 +72,7 @@ A "test" starter buffer has been created for testing purposes: python -m smart_control.reinforcement_learning.scripts.populate_starter_buffer \ --buffer_name test \ --num_runs 1 \ - --steps_per_run 3 \ + --steps_per_run 1 \ --capacity 100 \ --sequence_length 2 ``` diff --git a/smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/chunks.tfrecord b/smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/chunks.tfrecord deleted file mode 100644 index 4ed1e2b66c834eb2f5e9cb53b4a295cc017454a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 765 zcmV5RyQM82P2YU zrb<;;7;mJdEptd?pLy_pc!2H8(+>L=c#H1m%AM_S@YF*){0W!F?Lf@n#ROzTNiZy9WbjesV6s`BDP;!~wtrDM&ko49jk9COIpEsA@5<3q`=?9O z_A{y7vxB;m;r{npkmIi~)+F)InFbZ~;VkpzSo(d}t(QmVonC+%gcV$6DDKVxx|@Mv z!9kF_L3%~Pg5d53@&A}fADFZj;%+%f6^9j{_oKU8kCCBIg<%>aL(aSAmVK|>%5l5W zYd(*P5mZn`GVBeF{41)8F5i z_-xAkv;G(<1xYspRJZMx#mi9a|1ojO?`4}V9L_|spGkrVm;FpPD|Jvz*tBid*54o3 zelf%91Ekc-*fM_)$b_vDH~ICE6Z@{ViMK9&UfpsMZ(@gOpT@w^X$93TH1*XZj_nKo zzF&6Y$wM{_FAzxZLe?4^)<8}AK8?kQ&HHyT49V~QWqmvJ8F8bBr&}&__hm6 zdba?jcU4azP&x;tcSa5daB`RVHgn%;wG!M3DacGa%o-{vrMxDFk!jUL0o)P+pk|^(Pe|hHS>K%JD@g+)_ z?lu0Ol~EjU|MkwL3m-qYa*+{hs>D(PHp>g#Mls?{$N4LZPTk!5ouCo0bj9rLRfLkT vZ=OH9`Sjn5-Lk}H4d2zqOeiMwE?IGKYSZ}_VT7^<%o|TmC0qgkR9ef2<~fK9 diff --git a/smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/DONE b/smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-13T16:43:08.591497344+00:00/DONE similarity index 100% rename from smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-12T15:22:13.274393482+00:00/DONE rename to smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-13T16:43:08.591497344+00:00/DONE diff --git a/smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-13T16:43:08.591497344+00:00/chunks.tfrecord b/smart_control/reinforcement_learning/data/starter_buffers/test/2025-08-13T16:43:08.591497344+00:00/chunks.tfrecord new file mode 100644 index 0000000000000000000000000000000000000000..84acc7b5e85ca8757dec64bf8b6886bf99a01eff GIT binary patch literal 759 zcmV1L(Q8mI~1r?D7ueBal1{n+PID~vHr=wjq*XXIcM;sBWe z#HLD>R~T=kr7d$vW1o5Oet3ZG%hL|~7kG>A=gOV!aPZVaJN~!(_6uh8?gttErBQSL zf^WO*85kOXn8Aw)$cU0)SjNa;p~%5xqv|PS2c+#^RL*1MV6cs|W5|*DHgn%;wG#WM zOVjo&e{tO1{_@Pt)jRfR3UMJ!z!i9F{68xjAqW5M>u3L+SogQN48?v% z2}WEdByM|Bvkq#)vEuo%98Z7s&V0OW-Gzya7)Eq6a&@4Fe-(-0uTr`fOZfYM!hd|U^ffRO3N?aT= zz!2D9B;yY93x|-k#s-wA>|L_r;MAt`FT$`!B^I|lIhAk;#XIi~^qgy%KI3N_W>n%x z4HwS{eKdm_;UC`fp5xcKC-*1s+VwXJB|Hgu#kY0Jp=nT4d^pQ|IhKCkb?fEPd8ZdJ zq8L-bRfdw9GJvUxfnmWxP-+6{6$uN1rzQ~pkD2s=NoyggNlsG5Va4bD=&4DMk)cn8 zVHzVt&b#K8eXrcgai<-x`8+E6P{G_-*#M4RZ4+-@`nrLEXz$$g zqJ8GV7hl)l)eeiSZ}Q7mqeS Date: Wed, 13 Aug 2025 19:42:55 +0000 Subject: [PATCH 31/34] Decrease number of training steps when testing --- docs/contributing.md | 4 + docs/guides/reinforcement_learning/scripts.md | 17 +- .../scripts/conftest.py | 34 ++++ .../reinforcement_learning/scripts/train.py | 151 +++++++++--------- .../scripts/train_test.py | 43 +++-- .../reinforcement_learning/tf_import_fix.py | 19 +++ .../simulator_flexible_floor_plan.py | 4 +- 7 files changed, 182 insertions(+), 90 deletions(-) create mode 100644 smart_control/reinforcement_learning/scripts/conftest.py create mode 100644 smart_control/reinforcement_learning/tf_import_fix.py diff --git a/docs/contributing.md b/docs/contributing.md index 727de7ad..f172f4d3 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -97,6 +97,10 @@ pytest --disable-pytest-warnings -k your_test_name_here # ignore specific test files and directories: pytest --ignore=path/to/your/test.py --ignore=path/to/other/ +# display more logs: +pytest --disable-pytest-warnings -s --log-cli-level=INFO path/to/your/test.py +# display all logs: +pytest --disable-pytest-warnings -s --log-cli-level=DEBUG path/to/your/test.py ``` ## Linting diff --git a/docs/guides/reinforcement_learning/scripts.md b/docs/guides/reinforcement_learning/scripts.md index d6cab944..f32e3393 100644 --- a/docs/guides/reinforcement_learning/scripts.md +++ b/docs/guides/reinforcement_learning/scripts.md @@ -83,18 +83,29 @@ Train a reinforcement learning agent. ```sh python -m smart_control.reinforcement_learning.scripts.train \ - --experiment_name my-experiment-1 + --experiment_name="my-experiment-1" ``` ```sh python -m smart_control.reinforcement_learning.scripts.train \ - --experiment_name my-experiment-1 \ - --agent_type="sac" + --experiment_name=my-experiment-1 \ + --starter_buffer_name="default" \ + --agent_type="sac" \ --learner_iterations=3 \ --train_iterations=10 \ --collect_steps_per_training_iteration=5 ``` +```sh +python -m smart_control.reinforcement_learning.scripts.train \ + --experiment_name="experiment-test-2" \ + --starter_buffer_name="test" \ + --agent_type="sac" \ + --learner_iterations=1 \ + --train_iterations=1 \ + --collect_steps_per_training_iteration=1 +``` + This will generate a new experiment results directory under "smart_control/reinforcement_learning/data/experiment_results/`experiment_name`". In the experiment results directory will be the following files and directories: diff --git a/smart_control/reinforcement_learning/scripts/conftest.py b/smart_control/reinforcement_learning/scripts/conftest.py new file mode 100644 index 00000000..405e3ec3 --- /dev/null +++ b/smart_control/reinforcement_learning/scripts/conftest.py @@ -0,0 +1,34 @@ +"""Setup environment for fast testing.""" + +import gin + +from smart_control.environment.environment import Environment +from smart_control.reinforcement_learning.utils.constants import DEFAULT_OCCUPANCY_NORMALIZATION_CONSTANT + + +def create_and_setup_test_environment( + gin_config_file: str, + metrics_path: str = None, + occupancy_normalization_constant: float = DEFAULT_OCCUPANCY_NORMALIZATION_CONSTANT, # pylint: disable=line-too-long +): + """Creates and sets up the environment.""" + with gin.unlock_config(): + gin.clear_config() + gin.parse_config_file(gin_config_file) + + # start to end is one day long ? + # update time step interval to be longer, to decrease number of steps + seconds_in_a_day = 60 * 60 * 24 + time_step_sec = seconds_in_a_day / 2 # produces 28 steps? + time_step_sec = time_step_sec * 10 # produces 2 steps? + time_step_sec = time_step_sec * 2 # produces 1 step + gin.bind_parameter("sim_building/TFSimulator.time_step_sec", time_step_sec) + + env = Environment() # pylint: disable=no-value-for-parameter + + # print(env._num_timesteps_in_episode) # updated from 4032 to 1 + # breakpoint() + env.metrics_path = metrics_path + env.occupancy_normalization_constant = occupancy_normalization_constant + + return env diff --git a/smart_control/reinforcement_learning/scripts/train.py b/smart_control/reinforcement_learning/scripts/train.py index 4c478f36..3f29633d 100644 --- a/smart_control/reinforcement_learning/scripts/train.py +++ b/smart_control/reinforcement_learning/scripts/train.py @@ -6,20 +6,12 @@ components. """ -# OK so we are running into an error -# TypeError: this __dict__ descriptor does not support '_DictWrapper' objects -# https://github.com/tensorflow/tensorflow/issues/59869 -# As a workaround, we need to set this env var before loading tensorflow -# https://github.com/GrahamDumpleton/wrapt/issues/231#issuecomment-1455800902 -# fmt: off -import os # isort:skip -os.environ['WRAPT_DISABLE_EXTENSIONS'] = 'true' -# fmt: on - -# pylint:disable=wrong-import-position +import smart_control.reinforcement_learning.tf_import_fix # isort:skip # pylint:disable=bad-import-order,unused-import + from datetime import datetime import json import logging +import os import shutil from typing import Sequence @@ -47,16 +39,9 @@ from smart_control.reinforcement_learning.utils.constants import RL_STARTER_BUFFERS_DIR from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment -# from smart_control.utils.constants import ROOT_DIR -# from smart_control.utils.constants import DEFAULT_CONFIG_FILEPATH - -# this is used by the gin config (see "sim_config_day1.gin") -# pylint:disable-next=unused-import -from smart_control.reinforcement_learning.utils.config import get_histogram_path # isort:skip - -# pylint:enable=wrong-import-position +# this is used by the gin config (see "sim_config_day1.gin"): +from smart_control.reinforcement_learning.utils.config import get_histogram_path # isort:skip # pylint:disable=unused-import -DEFAULT_STARTER_BUFFER_DIRPATH = os.path.join(RL_STARTER_BUFFERS_DIR, 'default') # LOGGING @@ -75,16 +60,18 @@ name='experiment_name', default=None, help='Name of the experiment. This is used to save TensorBoard summaries', - required=True, + # required=True, ) flags.DEFINE_string( - name='starter_buffer_path', - default=DEFAULT_STARTER_BUFFER_DIRPATH, - help='Path to the starter replay buffer (e.g. "/path/to/my_buffer").', - # required=True, + name='starter_buffer_name', + default='default', + help=( + 'Name used to identify the replay buffer. Corresponds with directory' + ' name where the files have been saved.' + ), ) flags.DEFINE_string( - name='config_filepath', + name='train_config_filepath', default=ONE_DAY_CONFIG_FILEPATH, # DEFAULT_CONFIG_FILEPATH, help='Path to the scenario config file (e.g. "/path/to/sim_config.gin")', ) @@ -166,7 +153,7 @@ class RLAgentTrainer: def __init__( self, experiment_name: str, - starter_buffer_path: str = DEFAULT_STARTER_BUFFER_DIRPATH, + starter_buffer_name: str = 'default', # DEFAULT_STARTER_BUFFER_DIRPATH, config_filepath: str = ONE_DAY_CONFIG_FILEPATH, agent_type: str = 'sac', train_iterations: int = 100000, @@ -179,7 +166,8 @@ def __init__( learner_iterations: int = 200, ): self.experiment_name = experiment_name - self.starter_buffer_dirpath = starter_buffer_path + self.starter_buffer_name = starter_buffer_name + # self.starter_buffer_dirpath = starter_buffer_path self.config_filepath = config_filepath self.agent_type = agent_type self.train_iterations = int(train_iterations) @@ -191,6 +179,10 @@ def __init__( self.checkpoint_interval = int(checkpoint_interval) self.learner_iterations = int(learner_iterations) + self.starter_buffer_dirpath = os.path.join( + RL_STARTER_BUFFERS_DIR, self.starter_buffer_name + ) + if self.agent_type not in ['sac', 'ddpg']: raise ValueError( 'Agent {self.agent_type} has not (yet) been implemented. Please' @@ -199,27 +191,31 @@ def __init__( # todo: validate all integers are greater than zero - self.experiment_dirname = self.experiment_name.replace(' ', '') + experiment_dirname = self.experiment_name.replace(' ', '') self.results_dirpath = os.path.join( - RL_EXPERIMENT_RESULTS_DIR, self.experiment_dirname + RL_EXPERIMENT_RESULTS_DIR, experiment_dirname ) + # allow customization of this env setup during testing: + self.create_and_setup_environment = create_and_setup_environment + # these will be set later during training: - self.train_env = None - self.eval_env = None + # self.train_env = None + # self.eval_env = None self.agent = None - @property - def done_filepath(self): - """The DONE file is a convention for replay buffers. We are borrowing it. - After the agent is trained we will create this file. - """ - return os.path.join(self.results_dirpath, 'DONE') + # @property + # def done_filepath(self): + # """The DONE file is a convention for replay buffers. We are borrowing it. + # After the agent is trained we will create this file. + # """ + # return os.path.join(self.results_dirpath, 'DONE') - def mark_as_complete(self): - """Create the DONE file to indicate the agent has completed its training.""" - with open(self.done_filepath, 'w', encoding='utf-8') as f: - f.write('Training Complete!') + # def mark_as_complete(self): + # """Create the DONE file to indicate the agent has completed its training. + # """ + # with open(self.done_filepath, 'w', encoding='utf-8') as f: + # f.write('Training Complete!') def setup_results_dir(self): logger.info( @@ -227,6 +223,10 @@ def setup_results_dir(self): os.path.abspath(self.results_dirpath), ) + ## clear previous results if they exist + # if os.path.isdir(self.saved_model_dirpath): + # shutil.rmtree(self.saved_model_dirpath) + # try: # os.makedirs(self.results_dirpath, exist_ok=False) # except FileExistsError as exc: @@ -238,7 +238,9 @@ def setup_results_dir(self): # ) from exc os.makedirs(self.results_dirpath, exist_ok=True) # when testing we are creating the dir beforehand, check for results instead - if os.path.isfile(self.done_filepath): + # if os.path.isfile(self.done_filepath): + + if os.path.isdir(self.saved_model_dirpath): raise FileExistsError('Results directory already exists') @property @@ -275,7 +277,7 @@ def save_experiment_params(self, params: dict = None, save_path: str = None): save_path: Path to save the parameters file. """ params = params or self.experiment_params - params['timestamp'] = datetime.now().strftime('%Y_%m_%d-%H:%M:%S') + params['timestamp'] = datetime.now().strftime('%Y%m%d_%H%M%S') save_path = save_path or self.results_dirpath @@ -296,7 +298,7 @@ def save_experiment_params(self, params: dict = None, save_path: str = None): for key, value in params.items(): f.write(f'{key}: {value}\n') - def copy_replay_buffer(self): + def copy_starter_buffer(self): # Create a new buffer path in the experiment directory new_buffer_path = os.path.join(self.results_dirpath, 'replay_buffer') os.makedirs(new_buffer_path, exist_ok=True) @@ -314,8 +316,8 @@ def copy_replay_buffer(self): shutil.copy2(self.starter_buffer_dirpath, new_buffer_path) else: # If it's a directory, copy all contents - for item in os.listdir(self.starter_buffer_path): - source_item = os.path.join(self.starter_buffer_path, item) + for item in os.listdir(self.starter_buffer_dirpath): + source_item = os.path.join(self.starter_buffer_dirpath, item) dest_item = os.path.join(new_buffer_path, item) if os.path.isfile(source_item): shutil.copy2(source_item, dest_item) @@ -361,7 +363,7 @@ def saved_model_dirpath(self): def train_agent(self) -> tf_agent.TFAgent: self.setup_results_dir() - self.save_experiment_parameters() + self.save_experiment_params() # ENVIRONMENTS @@ -369,11 +371,10 @@ def train_agent(self) -> tf_agent.TFAgent: 'Creating train and eval environments with scenario config path: %s', self.config_filepath, ) - # metrics_dirpath = os.path.join(self.results_dirpath, 'metrics') - train_env = create_and_setup_environment( + train_env = self.create_and_setup_environment( self.config_filepath, metrics_path=self.metrics_dirpath ) - eval_env = create_and_setup_environment( + eval_env = self.create_and_setup_environment( self.config_filepath, metrics_path=None ) @@ -466,11 +467,10 @@ def train_agent(self) -> tf_agent.TFAgent: # Create collect actor logger.info('Creating collect actor...') - # collect_dirpath = os.path.join(self.results_dirpath, 'collect') collect_actor = actor.Actor( - train_env, - py_tf_eager_policy.PyTFEagerPolicy(collect_policy), - train_step, + env=train_env, + policy=py_tf_eager_policy.PyTFEagerPolicy(collect_policy), + train_step=train_step, steps_per_run=self.collect_steps_per_iteration, metrics=actor.collect_metrics(1), observers=[collect_observers], @@ -480,7 +480,6 @@ def train_agent(self) -> tf_agent.TFAgent: # Create eval actor logger.info('Creating eval actor...') - # eval_dirpath = os.path.join(self.results_dirpath, 'eval') eval_actor = actor.Actor( env=eval_env, policy=py_tf_eager_policy.PyTFEagerPolicy(eval_policy), @@ -581,7 +580,7 @@ def train_agent(self) -> tf_agent.TFAgent: logger.info('Final Eval %s: %s', m.name, m.result()) eval_actor.summary_writer.flush() - self.mark_as_complete() + # self.mark_as_complete() logger.info( 'Agent training completed. Saved models in %s', os.path.abspath(self.results_dirpath), @@ -593,29 +592,29 @@ def main(argv: Sequence[str]): if len(argv) > 1: raise app.UsageError('Too many command-line arguments.') - experiment_name = FLAGS.experiment_name - experiment_name = experiment_name.replace(' ', '_') + # experiment_name = FLAGS.experiment_name + # experiment_name = experiment_name.replace(' ', '_') # STARTER BUFFER DIRPATH: - buffer_dirpath = FLAGS.starter_buffer_path - if not buffer_dirpath: - buffer_names = [d for d in os.listdir(RL_STARTER_BUFFERS_DIR) if 'buffer' in d] # pylint:disable=line-too-long - if any(buffer_names): - buffer_name = buffer_names[-1] - print('USING MOST RECENTLY GENERATED STARTER BUFFER:', buffer_name) - buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_name) - else: - raise ValueError( - 'There are no starter buffer files available. Please generate one' - ' using the starter buffer generation script.' - ) - if not os.path.isabs(buffer_dirpath): - buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_dirpath) + # buffer_dirpath = FLAGS.starter_buffer_path + # if not buffer_dirpath: + # buffer_names = os.listdir(RL_STARTER_BUFFERS_DIR) + # if any(buffer_names): + # buffer_name = buffer_names[-1] + # print('USING MOST RECENTLY GENERATED STARTER BUFFER:', buffer_name) + # buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_name) + # else: + # raise ValueError( + # 'There are no starter buffer files available. Please generate one' + # ' using the starter buffer generation script.' + # ) + # if not os.path.isabs(buffer_dirpath): + # buffer_dirpath = os.path.join(RL_STARTER_BUFFERS_DIR, buffer_dirpath) trainer = RLAgentTrainer( - starter_buffer_path=buffer_dirpath, - config_filepath=FLAGS.config_filepath, - experiment_name=experiment_name, + starter_buffer_name=FLAGS.starter_buffer_name, + config_filepath=FLAGS.train_config_filepath, + experiment_name=FLAGS.experiment_name, agent_type=FLAGS.agent_type, train_iterations=FLAGS.train_iterations, collect_steps_per_iteration=FLAGS.collect_steps_per_training_iteration, diff --git a/smart_control/reinforcement_learning/scripts/train_test.py b/smart_control/reinforcement_learning/scripts/train_test.py index 15a728e5..80a35e8b 100644 --- a/smart_control/reinforcement_learning/scripts/train_test.py +++ b/smart_control/reinforcement_learning/scripts/train_test.py @@ -1,18 +1,32 @@ -"""Tests for gin config generation script.""" +"""Tests for training RL agents. + +FYI: training an agent with the minimal config takes around two minutes. +We are skipping training tests by default, to decrease the build time. +However you can enable training tests by setting the `TEST_RL_TRAINING` +environment variable to "true". +""" + +import smart_control.reinforcement_learning.tf_import_fix # isort:skip # pylint:disable=bad-import-order,unused-import import json import os import tempfile +import unittest from absl.testing import absltest from absl.testing import parameterized from tf_agents.agents.tf_agent import TFAgent +from smart_control.reinforcement_learning.scripts.conftest import create_and_setup_test_environment from smart_control.reinforcement_learning.scripts.train import RLAgentTrainer -from smart_control.reinforcement_learning.utils.constants import RL_STARTER_BUFFERS_DIR from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH -TEST_STARTER_BUFFER_DIRPATH = os.path.join(RL_STARTER_BUFFERS_DIR, "default") +TEST_RL_TRAINING = bool( + os.getenv("TEST_RL_TRAINING", default="false") == "true" +) +SKIP_REASON = "It takes a long time to train the RL agent." + +# TEST_STARTER_BUFFER_DIRPATH = os.path.join(RL_STARTER_BUFFERS_DIR, "default") class RLAgentTrainerTest(parameterized.TestCase): @@ -25,7 +39,8 @@ def setUp(self): self.trainer = RLAgentTrainer( experiment_name="testing-123", config_filepath=SB1_GIN_CONFIG_FILEPATH, - starter_buffer_path=TEST_STARTER_BUFFER_DIRPATH, + # starter_buffer_path=TEST_STARTER_BUFFER_DIRPATH, + starter_buffer_name="test", # minimal param values to decrease training time: train_iterations=1, collect_steps_per_iteration=1, @@ -36,30 +51,38 @@ def setUp(self): checkpoint_interval=1, learner_iterations=1, ) - # override results dir to use the temporary directory (will get cleaned up) + # override results dir to use the temporary directory (will get cleaned up): self.trainer.results_dirpath = self.temp_dirpath + # override environment config to decrease number of training steps: + self.trainer.create_and_setup_environment = create_and_setup_test_environment # pylint:disable=line-too-long def test_save_experiment_params(self): self.assertFalse(os.path.isfile(self.trainer.params_json_filepath)) self.assertFalse(os.path.isfile(self.trainer.params_txt_filepath)) - self.trainer.save_experiment_parameters() + self.trainer.save_experiment_params() with self.subTest("saves experiment parameters to file"): self.assertTrue(os.path.isfile(self.trainer.params_json_filepath)) self.assertTrue(os.path.isfile(self.trainer.params_txt_filepath)) with self.subTest("saved param values are as expected"): - params = json.loads(self.trainer.params_json_filepath) + with open( + self.trainer.params_json_filepath, "r", encoding="utf-8" + ) as json_file: + params = json.load(json_file) + + self.assertIsInstance(params["timestamp"], str) + del params["timestamp"] self.assertEqual(params, self.trainer.experiment_params) + @unittest.skipUnless(TEST_RL_TRAINING, SKIP_REASON) @parameterized.parameters([{"agent_type": "sac"}, {"agent_type": "ddpg"}]) def test_train_agent(self, agent_type): self.trainer.agent_type = agent_type # overwrite the agent type - self.assertFalse(os.path.isfile(self.trainer.done_filepath)) - trained_agent = self.trainer.train_agent() + with self.subTest("it trains an RL agent"): self.assertIsInstance(trained_agent, TFAgent) @@ -68,7 +91,7 @@ def test_train_agent(self, agent_type): self.assertTrue(os.path.isdir(self.trainer.collect_dirpath)) self.assertTrue(os.path.isdir(self.trainer.eval_dirpath)) self.assertTrue(os.path.isdir(self.trainer.saved_model_dirpath)) - self.assertTrue(os.path.isfile(self.trainer.done_filepath)) + # self.assertTrue(os.path.isfile(self.trainer.done_filepath)) if __name__ == "__main__": diff --git a/smart_control/reinforcement_learning/tf_import_fix.py b/smart_control/reinforcement_learning/tf_import_fix.py new file mode 100644 index 00000000..27d6dcfc --- /dev/null +++ b/smart_control/reinforcement_learning/tf_import_fix.py @@ -0,0 +1,19 @@ +"""Fixes known issue when importing tensorflow. + +Import this before importing tensorflow: + + import smart_control.reinforcement_learning.tf_import_fix +""" + +# ISSUE: +# OK so we are running into an error when using tf_agents: +# TypeError: this __dict__ descriptor does not support '_DictWrapper' objects +# https://github.com/tensorflow/tensorflow/issues/59869 + +# SOLUTION: +# As a workaround, we need to set this env var before loading tensorflow +# https://github.com/GrahamDumpleton/wrapt/issues/231#issuecomment-1455800902 + +import os + +os.environ['WRAPT_DISABLE_EXTENSIONS'] = 'true' diff --git a/smart_control/simulator/simulator_flexible_floor_plan.py b/smart_control/simulator/simulator_flexible_floor_plan.py index 4195382b..462eb07c 100644 --- a/smart_control/simulator/simulator_flexible_floor_plan.py +++ b/smart_control/simulator/simulator_flexible_floor_plan.py @@ -1,5 +1,6 @@ """Simulator of a simplified thermodynamic system for flexible geometries.""" +import os from typing import Mapping, Optional, Tuple from absl import logging @@ -176,7 +177,8 @@ def execute_step_sim( self._log_and_plotter.log(self.building.temp) if self.current_timestamp == self._start_timestamp + pd.Timedelta(days=4): - self.get_video(path=constants.SIM_VIDEOS_DIR + video_filename) + video_filepath = os.path.join(constants.SIM_VIDEOS_DIR, video_filename) + self.get_video(path=video_filepath) def _get_zone_reward_info( self, From 3d22490211feab466c050b3fe380d0c3eb297d7f Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 15 Aug 2025 17:20:04 +0000 Subject: [PATCH 32/34] WIP - reproducing eval script - encounter env config errors --- docs/guides/reinforcement_learning/scripts.md | 5 + .../reinforcement_learning/scripts/eval.py | 214 +++++++++++------- .../reinforcement_learning/utils/constants.py | 2 + 3 files changed, 133 insertions(+), 88 deletions(-) diff --git a/docs/guides/reinforcement_learning/scripts.md b/docs/guides/reinforcement_learning/scripts.md index f32e3393..1392b3f8 100644 --- a/docs/guides/reinforcement_learning/scripts.md +++ b/docs/guides/reinforcement_learning/scripts.md @@ -119,8 +119,13 @@ In the experiment results directory will be the following files and directories: ## Evaluation +Evaluate a previously trained agent: + ```sh python -m smart_control.reinforcement_learning.scripts.eval + +python -m smart_control.reinforcement_learning.scripts.eval \ + --eval_experiment_name my-experiment-1 ``` ```sh diff --git a/smart_control/reinforcement_learning/scripts/eval.py b/smart_control/reinforcement_learning/scripts/eval.py index e3f056ae..024bcb07 100644 --- a/smart_control/reinforcement_learning/scripts/eval.py +++ b/smart_control/reinforcement_learning/scripts/eval.py @@ -3,13 +3,15 @@ This script loads a saved policy and evaluates it on a configured environment. """ -import argparse -from datetime import datetime +# from datetime import datetime import logging import os import shutil import tempfile +from typing import Sequence +from absl import app +from absl import flags import tensorflow as tf from tf_agents.environments import tf_py_environment from tf_agents.metrics import tf_metrics @@ -21,10 +23,15 @@ from smart_control.reinforcement_learning.observers.trajectory_recorder_observer import TrajectoryRecorderObserver from smart_control.reinforcement_learning.policies.saved_model_policy import SavedModelPolicy from smart_control.reinforcement_learning.policies.schedule_policy import create_baseline_schedule_policy +from smart_control.reinforcement_learning.utils.constants import ONE_DAY_CONFIG_FILEPATH +from smart_control.reinforcement_learning.utils.constants import RL_EXPERIMENT_EVAL_DIR from smart_control.reinforcement_learning.utils.constants import RL_EXPERIMENT_RESULTS_DIR from smart_control.reinforcement_learning.utils.environment import create_and_setup_environment from smart_control.utils.constants import ROOT_DIR -from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH + +# from smart_control.utils.constants import SB1_GIN_CONFIG_FILEPATH + +# LOGGING logging.basicConfig( level=logging.INFO, @@ -32,6 +39,39 @@ ) logger = logging.getLogger(__name__) +# FLAGS + +FLAGS = flags.FLAGS + +flags.DEFINE_string( + name="eval_experiment_name", + default=None, + help="Name of the evaluation experiment", + # required=True, +) + +flags.DEFINE_string( + name="eval_policy_dirpath", + default=None, + help=( + "Path to the directory containing the saved policy. To use schedule" + " policy, use: 'schedule'" + ), + # required=True, +) + +flags.DEFINE_string( + name="eval_config_filepath", + default=ONE_DAY_CONFIG_FILEPATH, # SB1_GIN_CONFIG_FILEPATH, + help="Path to the .gin config file", +) + +flags.DEFINE_integer( + name="num_eval_episodes", + default=1, + help="Number of episodes for evaluation", +) + def find_latest_checkpoint(policy_dir): """ @@ -123,34 +163,40 @@ def create_merged_saved_model(policy_dir): def evaluate_policy( - policy_dir, - gin_config_path, - experiment_name, - num_eval_episodes=10, - save_trajectory=True, + experiment_name: str, + config_filepath: str, + policy_dirpath: str = None, + num_eval_episodes: int = 10, + save_trajectory: bool = True, ): """ Evaluates a trained policy on a configured environment. Args: - policy_dir: Path to the directory containing the saved policy - gin_config_path: Path to the .gin config file - experiment_name: Name of the evaluation experiment + experiment_name: Name of the experiment to evaluate. Corresponds with an + existing directory in the "experiment_results" directory. + policy_dirpath: Path to the directory containing the saved policy or + "schedule". + config_filepath: Path to the .gin config file num_eval_episodes: Number of episodes to evaluate save_trajectory: Whether to save detailed trajectory data for each episode """ # Get base directory for evaluation results - base_dir = os.path.dirname(RL_EXPERIMENT_RESULTS_DIR) - eval_results_path = os.path.join(base_dir, "eval_results") - os.makedirs(eval_results_path, exist_ok=True) - - # Generate timestamp for results directory - current_time = datetime.now().strftime("%Y_%m_%d-%H:%M:%S") - results_dir = os.path.join( - eval_results_path, f"{experiment_name}_{current_time}" - ) + # base_dir = os.path.dirname(RL_EXPERIMENT_RESULTS_DIR) + # eval_results_path = os.path.join(base_dir, "experiment_eval") + # eval_results_path = os.path.join(RL_EXPERIMENT_RESULTS_DIR, + # "experiment_eval") + # os.makedirs(eval_results_path, exist_ok=True) + os.makedirs(RL_EXPERIMENT_EVAL_DIR, exist_ok=True) + + # results directory + # current_time = datetime.now().strftime("%Y_%m_%d-%H:%M:%S") + # results_dir = os.path.join( + # eval_results_path, f"{experiment_name}_{current_time}" + # ) + experiment_dirname = experiment_name.replace(" ", "") + results_dir = os.path.join(RL_EXPERIMENT_EVAL_DIR, experiment_dirname) logger.info("Evaluation results will be saved to %s", results_dir) - try: os.makedirs(results_dir, exist_ok=False) except FileExistsError as exc: @@ -159,6 +205,8 @@ def evaluate_policy( f"Directory {results_dir} already exists. Exiting." ) from exc + # ENV + # Create metrics directory metrics_dir = os.path.join(results_dir, "metrics") os.makedirs(metrics_dir, exist_ok=True) @@ -166,7 +214,7 @@ def evaluate_policy( # Create eval environment logger.info("Creating evaluation environment") eval_env = create_and_setup_environment( - gin_config_path, metrics_path=metrics_dir + gin_config_file=config_filepath, metrics_path=metrics_dir ) # Wrap in TF environment @@ -176,39 +224,37 @@ def evaluate_policy( eval_step = tf.Variable(0, trainable=False, dtype=tf.int64) # Create policy based on the type - temp_dir = None + temp_policy_dirpath = None try: - if policy_dir == "schedule": + if policy_dirpath == "schedule": logger.info("Using schedule policy") policy = create_baseline_schedule_policy(eval_tf_env) else: + experiment_results_dirpath = os.path.join( + RL_EXPERIMENT_RESULTS_DIR, experiment_dirname + ) + policy_dirpath = os.path.join(experiment_results_dirpath, "policies") + # Create a merged saved model with structure from policy dir and variables # from latest checkpoint - temp_dir = create_merged_saved_model(policy_dir) + temp_policy_dirpath = create_merged_saved_model(policy_dirpath) # Use SavedModelPolicy for saved model - logger.info("Loading saved model from %s", temp_dir) + logger.info("Loading saved model from %s", temp_policy_dirpath) policy = SavedModelPolicy( - temp_dir, eval_tf_env.time_step_spec(), eval_tf_env.action_spec() + saved_model_path=temp_policy_dirpath, + time_step_spec=eval_tf_env.time_step_spec(), + action_spec=eval_tf_env.action_spec(), ) logger.info("Saved model policy created") - # Set up metrics - eval_metrics = [ - tf_metrics.AverageReturnMetric(buffer_size=num_eval_episodes), - tf_metrics.AverageEpisodeLengthMetric(buffer_size=num_eval_episodes), - tf_metrics.MaxReturnMetric(buffer_size=num_eval_episodes), - tf_metrics.MinReturnMetric(buffer_size=num_eval_episodes), - tf_metrics.NumberOfEpisodes(), - tf_metrics.EnvironmentSteps(), - ] + # OBSERVERS observers_list = [] print_observer = PrintStatusObserver( status_interval_steps=1, environment=eval_tf_env, replay_buffer=None ) - observers_list.append(print_observer) # Record trajectory observer @@ -225,23 +271,36 @@ def evaluate_policy( observers = CompositeObserver(observers_list) + # ACTOR + # Create eval actor with observers logger.info("Creating evaluation actor") + eval_dirpath = os.path.join(results_dir, "eval") eval_actor = actor.Actor( - eval_env, - py_tf_eager_policy.PyTFEagerPolicy(policy), - eval_step, + env=eval_env, + policy=py_tf_eager_policy.PyTFEagerPolicy(policy), + train_step=eval_step, episodes_per_run=num_eval_episodes, metrics=actor.eval_metrics(num_eval_episodes), observers=[observers], - summary_dir=os.path.join(results_dir, "eval"), + summary_dir=eval_dirpath, summary_interval=1, ) + # EVAL + # Run evaluation logger.info("Starting evaluation for %d episodes", num_eval_episodes) eval_actor.run() + eval_metrics = [ + tf_metrics.AverageReturnMetric(buffer_size=num_eval_episodes), + tf_metrics.AverageEpisodeLengthMetric(buffer_size=num_eval_episodes), + tf_metrics.MaxReturnMetric(buffer_size=num_eval_episodes), + tf_metrics.MinReturnMetric(buffer_size=num_eval_episodes), + tf_metrics.NumberOfEpisodes(), + tf_metrics.EnvironmentSteps(), + ] # Write evaluation summaries with eval_actor.summary_writer.as_default(): for m in eval_metrics: @@ -254,57 +313,36 @@ def evaluate_policy( finally: # Clean up temporary directory if created - if temp_dir and os.path.exists(temp_dir): - logger.info("Cleaning up temporary directory: %s", temp_dir) - shutil.rmtree(temp_dir) + if temp_policy_dirpath and os.path.exists(temp_policy_dirpath): + logger.info("Cleaning up temporary directory: %s", temp_policy_dirpath) + shutil.rmtree(temp_policy_dirpath) -if __name__ == "__main__": - - parser = argparse.ArgumentParser( - description="Evaluate a trained reinforcement learning policy" - ) - parser.add_argument( - "--policy-dir", - type=str, - required=True, - help=( - "Path to the directory containing the saved policy. To use schedule" - " policy, just type `schedule`" - ), - ) - parser.add_argument( - "--gin-config", - type=str, - default=SB1_GIN_CONFIG_FILEPATH, - help="Path to the .gin config file", - ) - parser.add_argument( - "--num-eval-episodes", - type=int, - default=1, - help="Number of episodes for evaluation", - ) - parser.add_argument( - "--experiment-name", - type=str, - required=True, - help="Name of the evaluation experiment", - ) - - args = parser.parse_args() +def main(argv: Sequence[str]): + if len(argv) > 1: + raise app.UsageError("Too many command-line arguments.") - # Make it work for both relative and absolute paths - gin_config_path_ = args.gin_config - if not os.path.isabs(args.gin_config): - gin_config_path_ = os.path.join(ROOT_DIR, args.gin_config) + # handle relative and absolute filepaths: + config_filepath = FLAGS.eval_config_filepath + if not os.path.isabs(config_filepath): + config_filepath = os.path.join(ROOT_DIR, config_filepath) - if not os.path.isabs(args.policy_dir) and args.policy_dir != "schedule": - args.policy_dir = os.path.join(ROOT_DIR, args.policy_dir) + policy_dirpath = FLAGS.eval_policy_dirpath + if ( + policy_dirpath is not None + and not os.path.isabs(policy_dirpath) + and policy_dirpath != "schedule" + ): + policy_dirpath = os.path.join(ROOT_DIR, policy_dirpath) evaluate_policy( - policy_dir=args.policy_dir, - gin_config_path=gin_config_path_, - experiment_name=args.experiment_name, - num_eval_episodes=args.num_eval_episodes, + experiment_name=FLAGS.eval_experiment_name, + policy_dirpath=policy_dirpath, + config_filepath=config_filepath, + num_eval_episodes=FLAGS.num_eval_episodes, ) + + +if __name__ == "__main__": + + app.run(main) diff --git a/smart_control/reinforcement_learning/utils/constants.py b/smart_control/reinforcement_learning/utils/constants.py index a9b99937..35cfe537 100644 --- a/smart_control/reinforcement_learning/utils/constants.py +++ b/smart_control/reinforcement_learning/utils/constants.py @@ -13,6 +13,8 @@ RL_EXPERIMENT_METRICS_DIR = os.path.join(RL_EXPERIMENT_RESULTS_DIR, 'metrics') RL_EXPERIMENT_RENDERS_DIR = os.path.join(RL_EXPERIMENT_RESULTS_DIR, 'renders') +RL_EXPERIMENT_EVAL_DIR = os.path.join(RL_DIR, 'data', 'experiment_eval') + ONE_DAY_CONFIG_FILEPATH = os.path.join( SB1_TRAIN_CONFIGS_DIR, 'sim_config_1_day.gin' ) From ea1d3aaec32154e9b74597660d3e50cd56824289 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 22 Aug 2025 16:00:00 +0000 Subject: [PATCH 33/34] Reproduce eval script --- .gitignore | 3 +++ docs/guides/reinforcement_learning/scripts.md | 19 +++---------- .../data/experiment_eval/.gitkeep | 0 .../data/experiment_results/.gitkeep | 0 .../reinforcement_learning/scripts/eval.py | 27 ++++++++++++------- .../utils/environment.py | 2 ++ 6 files changed, 27 insertions(+), 24 deletions(-) create mode 100644 smart_control/reinforcement_learning/data/experiment_eval/.gitkeep create mode 100644 smart_control/reinforcement_learning/data/experiment_results/.gitkeep diff --git a/.gitignore b/.gitignore index 5e6bdafb..1c4695cf 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,9 @@ smart_control/reinforcement_learning/data/starter_buffers/* smart_control/reinforcement_learning/data/experiment_results/* !smart_control/reinforcement_learning/data/experiment_results/.gitkeep +smart_control/reinforcement_learning/data/experiment_eval/* +!smart_control/reinforcement_learning/data/experiment_eval/.gitkeep + # jupyter notebook checkpoints: smart_control/notebooks/.ipynb_checkpoints/ diff --git a/docs/guides/reinforcement_learning/scripts.md b/docs/guides/reinforcement_learning/scripts.md index 1392b3f8..2a0606ac 100644 --- a/docs/guides/reinforcement_learning/scripts.md +++ b/docs/guides/reinforcement_learning/scripts.md @@ -79,7 +79,7 @@ python -m smart_control.reinforcement_learning.scripts.populate_starter_buffer \ ## RL Agent Training -Train a reinforcement learning agent. +Train a reinforcement learning agent, choosing a unique name for the experiment: ```sh python -m smart_control.reinforcement_learning.scripts.train \ @@ -88,7 +88,7 @@ python -m smart_control.reinforcement_learning.scripts.train \ ```sh python -m smart_control.reinforcement_learning.scripts.train \ - --experiment_name=my-experiment-1 \ + --experiment_name="my-experiment-2" \ --starter_buffer_name="default" \ --agent_type="sac" \ --learner_iterations=3 \ @@ -96,16 +96,6 @@ python -m smart_control.reinforcement_learning.scripts.train \ --collect_steps_per_training_iteration=5 ``` -```sh -python -m smart_control.reinforcement_learning.scripts.train \ - --experiment_name="experiment-test-2" \ - --starter_buffer_name="test" \ - --agent_type="sac" \ - --learner_iterations=1 \ - --train_iterations=1 \ - --collect_steps_per_training_iteration=1 -``` - This will generate a new experiment results directory under "smart_control/reinforcement_learning/data/experiment_results/`experiment_name`". In the experiment results directory will be the following files and directories: @@ -119,11 +109,10 @@ In the experiment results directory will be the following files and directories: ## Evaluation -Evaluate a previously trained agent: +Evaluate a previously trained agent, specifying an experiment name that +references an existing experiment results directory: ```sh -python -m smart_control.reinforcement_learning.scripts.eval - python -m smart_control.reinforcement_learning.scripts.eval \ --eval_experiment_name my-experiment-1 ``` diff --git a/smart_control/reinforcement_learning/data/experiment_eval/.gitkeep b/smart_control/reinforcement_learning/data/experiment_eval/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/smart_control/reinforcement_learning/data/experiment_results/.gitkeep b/smart_control/reinforcement_learning/data/experiment_results/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/smart_control/reinforcement_learning/scripts/eval.py b/smart_control/reinforcement_learning/scripts/eval.py index 024bcb07..603cfc31 100644 --- a/smart_control/reinforcement_learning/scripts/eval.py +++ b/smart_control/reinforcement_learning/scripts/eval.py @@ -123,7 +123,10 @@ def create_merged_saved_model(policy_dir): model_structure_dir = os.path.join(policy_dir, "greedy_policy") logger.info("Using model structure from greedy_policy directory") else: - raise ValueError(f"No policy structure directories found in {policy_dir}") + raise ValueError( + "No policy structure directories found in" + f" {os.path.abspath(policy_dir)}" + ) # Find latest checkpoint for variables latest_checkpoint = find_latest_checkpoint(policy_dir) @@ -197,13 +200,16 @@ def evaluate_policy( experiment_dirname = experiment_name.replace(" ", "") results_dir = os.path.join(RL_EXPERIMENT_EVAL_DIR, experiment_dirname) logger.info("Evaluation results will be saved to %s", results_dir) - try: - os.makedirs(results_dir, exist_ok=False) - except FileExistsError as exc: - logger.exception("Directory %s already exists. Exiting.", results_dir) - raise FileExistsError( - f"Directory {results_dir} already exists. Exiting." - ) from exc + # try: + # os.makedirs(results_dir, exist_ok=False) + # except FileExistsError as exc: + # logger.exception( + # "Directory %s already exists. Exiting.", os.path.abspath(results_dir) + # ) + # raise FileExistsError( + # f"Directory {os.path.abspath(results_dir)} already exists. Exiting." + # ) from exc + os.makedirs(results_dir, exist_ok=True) # ENV @@ -314,7 +320,10 @@ def evaluate_policy( finally: # Clean up temporary directory if created if temp_policy_dirpath and os.path.exists(temp_policy_dirpath): - logger.info("Cleaning up temporary directory: %s", temp_policy_dirpath) + logger.info( + "Cleaning up temporary directory: %s", + os.path.abspath(temp_policy_dirpath), + ) shutil.rmtree(temp_policy_dirpath) diff --git a/smart_control/reinforcement_learning/utils/environment.py b/smart_control/reinforcement_learning/utils/environment.py index 1808b1f6..9a8f4a60 100644 --- a/smart_control/reinforcement_learning/utils/environment.py +++ b/smart_control/reinforcement_learning/utils/environment.py @@ -3,6 +3,8 @@ import gin from smart_control.environment.environment import Environment +# importing the config fixes config errors looking for get_histogram_path, etc.: +import smart_control.reinforcement_learning.utils.config # pylint: disable=unused-import from smart_control.reinforcement_learning.utils.constants import DEFAULT_OCCUPANCY_NORMALIZATION_CONSTANT From 3c53a8c5d37e1a22e6f0587af79014ddad36bfe0 Mon Sep 17 00:00:00 2001 From: Michael Rossetti Date: Fri, 22 Aug 2025 17:10:11 +0000 Subject: [PATCH 34/34] WIP - refactor eval script; need to save schedule policy results charts as well --- .../reinforcement_learning/scripts/eval.py | 211 +++++++++++++++++- 1 file changed, 210 insertions(+), 1 deletion(-) diff --git a/smart_control/reinforcement_learning/scripts/eval.py b/smart_control/reinforcement_learning/scripts/eval.py index 603cfc31..e6ce2106 100644 --- a/smart_control/reinforcement_learning/scripts/eval.py +++ b/smart_control/reinforcement_learning/scripts/eval.py @@ -327,7 +327,199 @@ def evaluate_policy( shutil.rmtree(temp_policy_dirpath) -def main(argv: Sequence[str]): +class ExperimentEvaluator: + """ + Evaluates a trained model policy against a configured environment. + + Also evaluates a schedule policy against the same environment, for comparison. + + Args: + experiment_name: Name of the experiment to evaluate. Corresponds with an + existing directory in the "experiment_results" directory. + config_filepath: Path to the .gin config file to use for evaluation. + num_eval_episodes: Number of episodes to use for evaluation. + save_trajectory: Whether to save trajectory data for each episode. + """ + + def __init__( + self, + experiment_name: str, + config_filepath: str, + num_eval_episodes: int = 10, + save_trajectory: bool = True, + ): + self.experiment_name = experiment_name + self.config_filepath = config_filepath + self.num_eval_episodes = int(num_eval_episodes) + self.save_trajectory = bool(save_trajectory) + + # SET UP DIRECTORIES: + + os.makedirs(RL_EXPERIMENT_EVAL_DIR, exist_ok=True) + + self.experiment_dirname = experiment_name.replace(" ", "") + self.experiment_eval_dirpath = os.path.join( + RL_EXPERIMENT_EVAL_DIR, self.experiment_dirname + ) + os.makedirs(self.experiment_eval_dirpath, exist_ok=True) + + # for environment: + self.metrics_dirpath = os.path.join(self.experiment_eval_dirpath, "metrics") + os.makedirs(self.metrics_dirpath, exist_ok=True) + + # for saved model policy: + self.saved_model_policy_dirpath = os.path.join( + RL_EXPERIMENT_RESULTS_DIR, self.experiment_dirname, "policies" + ) + self.temp_saved_model_policy_dirpath = create_merged_saved_model( + self.saved_model_policy_dirpath + ) + + # for trajectories: + self.trajectory_dirpath = None + if self.save_trajectory: + self.trajectory_dirpath = os.path.join( + self.experiment_eval_dirpath, "trajectories" + ) + os.makedirs(self.trajectory_dirpath, exist_ok=True) + + # SET UP ENVIRONMENT: + + self.eval_env = create_and_setup_environment( + gin_config_file=self.config_filepath, metrics_path=self.metrics_dirpath + ) + self.eval_tf_env = tf_py_environment.TFPyEnvironment(self.eval_env) + self.eval_step = tf.Variable(0, trainable=False, dtype=tf.int64) + + @property + def schedule_policy(self): + return create_baseline_schedule_policy(self.eval_tf_env) + + @property + def saved_model_policy(self): + logger.info( + "Loading saved model from %s", + os.path.abspath(self.temp_saved_model_policy_dirpath), + ) + return SavedModelPolicy( + saved_model_path=self.temp_saved_model_policy_dirpath, + time_step_spec=self.eval_tf_env.time_step_spec(), + action_spec=self.eval_tf_env.action_spec(), + ) + + @property + def observers(self): + observers_list = [] + + print_observer = PrintStatusObserver( + status_interval_steps=1, + environment=self.eval_tf_env, + replay_buffer=None, + ) + observers_list.append(print_observer) + + if self.save_trajectory and self.trajectory_dirpath: + trajectory_observer = TrajectoryRecorderObserver( + save_dir=self.trajectory_dirpath, environment=self.eval_tf_env + ) + observers_list.append(trajectory_observer) + + return CompositeObserver(observers_list) + + def create_actor(self, policy, policy_dirname): + policy_eval_dirpath = os.path.join( + self.experiment_eval_dirpath, policy_dirname, "eval" + ) + return actor.Actor( + env=self.eval_env, + policy=py_tf_eager_policy.PyTFEagerPolicy(policy), + train_step=self.eval_step, + episodes_per_run=self.num_eval_episodes, + metrics=actor.eval_metrics(self.num_eval_episodes), + observers=[self.observers], + summary_dir=policy_eval_dirpath, + summary_interval=1, + ) + + @property + def schedule_policy_actor(self): + return self.create_actor( + policy=self.schedule_policy, policy_dirname="schedule" + ) + + @property + def saved_model_policy_actor(self): + return self.create_actor( + policy=self.saved_model_policy, policy_dirname="saved_model" + ) + + @property + def eval_metrics(self): + buffer_size = self.num_eval_episodes + return [ + tf_metrics.AverageReturnMetric(buffer_size=buffer_size), + tf_metrics.AverageEpisodeLengthMetric(buffer_size=buffer_size), + tf_metrics.MaxReturnMetric(buffer_size=buffer_size), + tf_metrics.MinReturnMetric(buffer_size=buffer_size), + tf_metrics.NumberOfEpisodes(), + tf_metrics.EnvironmentSteps(), + ] + + # def evaluate_policy(self, eval_actor): + # logger.info("-------------------------------") + # logger.info("Starting evaluation for %d episodes", self.num_eval_episodes) + # + # eval_actor.run() + # + # # Write evaluation summaries: + # with eval_actor.summary_writer.as_default(): + # for metric in self.eval_metrics: + # tf.summary.scalar( + # name=metric.name, + # data=metric.result(), + # step=self.eval_step.numpy(), + # ) + # logger.info("Eval %s: %s", metric.name, metric.result()) + # eval_actor.summary_writer.flush() + # + # def evaluate(self): + # # todo: consider running both actors in parallel, instead of sequentially: + # self.evaluate_policy(self.schedule_policy_actor) + # self.evaluate_policy(self.saved_model_policy_actor) + + def evaluate(self): + # todo: consider running both actors in parallel, instead of sequentially: + eval_actors = [self.schedule_policy_actor, self.saved_model_policy_actor] + + for eval_actor in eval_actors: + logger.info("-------------------------------") + logger.info("Starting evaluation for %d episodes", self.num_eval_episodes) + + eval_actor.run() + + # Write evaluation summaries: + with eval_actor.summary_writer.as_default(): + for metric in self.eval_metrics: + tf.summary.scalar( + name=metric.name, + data=metric.result(), + step=self.eval_step.numpy(), + ) + logger.info("Eval %s: %s", metric.name, metric.result()) + eval_actor.summary_writer.flush() + + ## Clean up temporary directory if created + ## todo: use an actual tempdir that will automatically be deleted + # if (self.temp_saved_model_policy_dirpath and + # os.path.exists(self.temp_saved_model_policy_dirpath)): + # logger.info( + # "Cleaning up temporary directory: %s", + # os.path.abspath(self.temp_saved_model_policy_dirpath), + # ) + # shutil.rmtree(self.temp_saved_model_policy_dirpath) + + +def old_main(argv: Sequence[str]): if len(argv) > 1: raise app.UsageError("Too many command-line arguments.") @@ -352,6 +544,23 @@ def main(argv: Sequence[str]): ) +def main(argv: Sequence[str]): + if len(argv) > 1: + raise app.UsageError("Too many command-line arguments.") + + # handle relative and absolute filepaths: + config_filepath = FLAGS.eval_config_filepath + if not os.path.isabs(config_filepath): + config_filepath = os.path.join(ROOT_DIR, config_filepath) + + evaluator = ExperimentEvaluator( + experiment_name=FLAGS.eval_experiment_name, + config_filepath=config_filepath, + num_eval_episodes=FLAGS.num_eval_episodes, + ) + evaluator.evaluate() + + if __name__ == "__main__": app.run(main)