diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 715e562dd7..7d18afb204 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -58,10 +58,9 @@ jobs: if: ${{ !inputs.branch }} - name: Install uv - uses: astral-sh/setup-uv@v3 - - - name: Setup Python - run: uv python install 3.12 + uses: astral-sh/setup-uv@v7 + with: + python-version: "3.12" - name: Install package run: uv sync diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7ce0cd2fff..4b66fde946 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] requirements-version: ["min", "max"] steps: - name: Checkout Push/Workflow Dispatch @@ -29,12 +29,10 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v7 with: - enable-cache: true - - - name: Setup Python - run: uv python install ${{ matrix.python-version }} + python-version: ${{ matrix.python-version }} + enable-cache: trues - name: Install viam-server run: | diff --git a/.github/workflows/update_protos.yml b/.github/workflows/update_protos.yml index 0530aed83a..e8ea682076 100644 --- a/.github/workflows/update_protos.yml +++ b/.github/workflows/update_protos.yml @@ -29,7 +29,7 @@ jobs: - uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - version: "29.2" + version: "33.5" - name: Install uv uses: astral-sh/setup-uv@v7 with: @@ -49,6 +49,12 @@ jobs: - name: prune origin run: git remote prune origin + - name: Create branch + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git checkout -b workflow/update-proto + - name: Setup Python run: uv python install @@ -62,6 +68,11 @@ jobs: env: BUF_TOKEN: ${{ secrets.BUF_TOKEN }} + - name: Commit generated buf files + run: | + git add -A + git diff --cached --quiet || git commit -m "[WORKFLOW] Generate buf from ${{ github.event.client_payload.repo_name }}, commit: ${{ github.event.client_payload.sha }}" + - name: Install OpenCode CLI run: | curl -fsSL https://opencode.ai/install | bash @@ -338,22 +349,34 @@ jobs: opencode run --model anthropic/claude-sonnet-4-5-20250929 --agent build "$(cat /tmp/opencode_prompt.txt)" + - name: Commit Python wrapper updates + run: | + git add -A + git diff --cached --quiet || git commit -m "[WORKFLOW] Update Python wrappers from ${{ github.event.client_payload.repo_name }}, commit: ${{ github.event.client_payload.sha }}" + - name: Format run: uv run make format - - name: Add + Commit + Open PR - id: cpr - uses: peter-evans/create-pull-request@v7 - with: - commit-message: "[WORKFLOW] Updating protos from ${{ github.event.client_payload.repo_name }}, commit: ${{ github.event.client_payload.sha }}" - branch: "workflow/update-proto" - delete-branch: true - base: main - title: Automated Protos Update - body: This is an auto-generated PR to update proto definitions. Check the commits to see which repos and commits are responsible for the changes - assignees: njooma - reviewers: njooma - token: ${{ secrets.GIT_ACCESS_TOKEN }} + - name: Commit formatting changes + run: | + git add -A + git diff --cached --quiet || git commit -m "[WORKFLOW] Apply formatting" + + - name: Push branch and open PR + env: + GH_TOKEN: ${{ secrets.GIT_ACCESS_TOKEN }} + run: | + git push --force origin workflow/update-proto + gh pr create \ + --base main \ + --head workflow/update-proto \ + --title "Automated Protos Update" \ + --body "This is an auto-generated PR to update proto definitions. Check the commits to see which repos and commits are responsible for the changes" \ + --assignee njooma \ + --reviewer njooma \ + || gh pr edit workflow/update-proto \ + --title "Automated Protos Update" \ + --body "This is an auto-generated PR to update proto definitions. Check the commits to see which repos and commits are responsible for the changes" - name: Notify slack of failure uses: slackapi/slack-github-action@v1.24.0 diff --git a/Makefile b/Makefile index 362abd3e2f..1fb2948e25 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ buf: clean rm -rf src/viam/gen chmod +x plugin/main.py uv pip install protoletariat - uv pip install protobuf==5.29.6 + uv pip install protobuf==6.33.5 $(eval API_VERSION := $(shell grep 'API_VERSION' src/viam/version_metadata.py | awk -F '"' '{print $$2}')) buf generate buf.build/viamrobotics/api:${API_VERSION} buf generate buf.build/viamrobotics/goutils diff --git a/docs/examples/example.ipynb b/docs/examples/example.ipynb index 94c38e2efe..a00d2ef07e 100644 --- a/docs/examples/example.ipynb +++ b/docs/examples/example.ipynb @@ -74,55 +74,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "[namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"arm\"\n", - "name: \"arm0\"\n", - ", namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"audio_input\"\n", - "name: \"audio_input0\"\n", - ", namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"base\"\n", - "name: \"base0\"\n", - ", namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"board\"\n", - "name: \"board\"\n", - ", namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"camera\"\n", - "name: \"camera0\"\n", - ", namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"gantry\"\n", - "name: \"gantry0\"\n", - ", namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"gripper\"\n", - "name: \"gripper0\"\n", - ", namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"motor\"\n", - "name: \"motor0\"\n", - ", namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"movement_sensor\"\n", - "name: \"movement_sensor0\"\n", - ", namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"pose_tracker\"\n", - "name: \"pose_tracker0\"\n", - ", namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"sensor\"\n", - "name: \"sensor0\"\n", - ", namespace: \"rdk\"\n", - "type: \"component\"\n", - "subtype: \"servo\"\n", - "name: \"servo0\"\n", - "]\n" + "[, , , , , , , , , , , , , , ]\n" ] } ], @@ -150,7 +102,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": { "tags": [ "hide-output" @@ -170,14 +122,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": { "tags": [ "hide-output", "remove-input" ] }, - "outputs": [], + "outputs": [ + { + "data": { + "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAIkAoIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCnZMu5R2qHWLcPu44Ios8sy47Vo3kBa3yR0oA8Y1i28m8YAd6zwpNdd4nssS7wKwIYAaAKggY9BVq38+CRWB6EGtGOBcDirK24K9KAPRfDl39ptIW6kgVr6hcyQTKETG4YziuS8JXPkyIjdFIrp/EF2YZ0KgMAKAMHUtWl8Nq86/O03Wq1h40utVjYFtoBxisLxBd3+pK0RjCoDxWXolrPa3eSTtPXtQB6A0omiWWTLOG7+lYOuWWZkkRcBq7Hw61hLCUumQ4PA9ad4tgsriy/0Z03L0AoA4GO2SKaJA2c8mquotDNcLGgHufatOz0m6lkBhiklPfA4qG88O6hZO080J2seo5xQBQluTbzxEAeSBg11WmRQXKb15A5FcNqQIAUNn8K6fwPef6QbWfqRlc0AdRpQiS7aJwMjkE96247yHTy0zgFCcVg6nGYpS6nawz09Kp29rcyWkrXVwPKIyuaAO6t9Rju1/dD5eoxVrIZccYYYrk9CnkESR+YpCnHHpXTAsoKEHPUUAcj4gsR+9jI65IrzOeEwzsh4wa9o1m1aeISqOnWuAvvDk17dM0XAoA5PJpQauajpdxp77XUketURmgCQUZFNGadtoAXIozRwOpxTTJGOrCgB9NIzSCaP1p4Kt0NAERT2phiz2qzijFAFNoaheA+laW2kMWe1AGQYKBGRWt5APam/ZhnoKAM0A+lO2sa0hbj0pfJHpQBnCJyOlPWBzWgIR6VIsQoAzhak08Wh71pLGPSpFhLHhaAM1bP1qdLMCtRLJ27VYjsD3FAGdFYg9BVuPTCei1t2en5I+XNb1to7Nj5MUAcnFpBP8NaEOiZx8tdpbaGOMitWHSY1/hFAHFW2gk4+StSPQCF+7XXR2cadBVgQrj7tAHHx+Hst92taDRkVQCK2/KA7U4IaAM+PTo0/hqylsi9BVkJTgtAEPlDGMVk6ja7fnA6VvbaiuIBJGcigDkfM7Um8VNe2pgmPoarhTQArAmo2Xip8UxqAKxWmlTU5FMPrQBFikxmpNuTThHQBCEp3l1OEp2ygCFUp4WpNuBS4oAYBig05uKYWoAaaaRxTutP20AVsE9qUIamwKSgCLbikIqXFLtFAFZgaTaasFRUTYFAER4pmcNUhqNhQA/dRUOD70UAU9MiLrkV0LQq1qQeuKwNJbapFb9uS680AcL4lsQ9uxC9K4ONdshX0Ner+IXgS3lUkZI6V5ZMQLliPWgC9bqD1q9Aqd6zrdulXos78etAGjYy+Rc5XjNdTqUxl0uOdRuIHJrimJSQNXa6Qg1DTDAWxkdaAONm1FpZip4qF2DRExtgitnWNDg0rbKW37zjJpun6lo2nnbdwxSOex7UAZ+lJdySMAxDEd2xXS6HoF5LLJcai7i1T+EHJc+grVW10CTTV1OW2a3UkFFDEeZ+HpTNSu3nVZrLUlQBcCIDAA9KAMvVfEMyXIs7b/QLReAQuGamQC6MX2xriSa0JK5bmue12+1CUBJtsoB6la6rRJPtXgdicKVkIx+FAGj4d+HsGuZ1C4cxwP8AdjHU++a2ZfhfbW19Fd2V08bx/wAJGQam8Ca0ItMW3lYHaSM11N3e/bpBYW02yVxlmXqq+tAHmnidNRsZSkNo0/GC0a7qy7CeW5tjBdQvG2MhHXBr3C206C2t1jRQcDknkn61n6rZ2ewB7USSMcKFXmgDy6LcLHfbgiSNugrrbeZp7KKdxhwMMKtN4cuQuYkRFPJSnfZjbQmFkIOPwoAgdRJG0Z7jIrn0X7PfEHoTXQITsDd14rK1aExv5i/WgCvrGlRXtk7bBuxmvKLu3+z3Lxnsa9ltZhPbYPORg15t4qsfs9+zgcGgDmZJkj61Ulv+y0l0N7Gqe0BeetAEjXLv3phdj3puKUZoAN7ZqWG5ZGGTULCm8igDoYWEiZFS4rM02fnYTWwEJoAjxS4qURGniI54BoAg20oWrSwE9qeLegCmEpRFz3q+lqSeFq0mnu38FAGUsJPapktSe1bMWlSHqK0LbR+RuFAGFDZZ4xmtG30tmxhK6S30qNR0rTgs0TGFoA56DRHbqK07bw+mQWGa34oMDhatxwn0oAzrbSYosfKK04rZEHAqwkJqwkFAECxj0qZU4qdYakEYHagCuI6kEZqcJS7aAIfLFJsqfFIcd6AIttLtFKWFKOaAG4FLtFOxS4oAydSsxJGSBzXMO5jcqeorupEDqQa5XWtPZXMiD60AZwkBppY0kURHWpfKzQBDyaNtTbMdqcq5oAhCin7akKUgHFAAFpcUmcUvJoARiBUefSnlSTRtAoAZtJpfKFOFSqOKAIDHijbU5AFNYgUARGPimsuKeZBUTPQAhpu4Uct0o8knrQBGz1HhjVjycHmnhAKAK3lE9qURAdasEelNK0AReWtFSbfaigDn7RmhUcdat3OqPb2zFeDjisCfVVs2w/bpWPeeIXuGwPu9hQBLdy3F2zM7HmuauYjHK2fWtB9SYis2ecyyEnvQBYtTjFdjo/hLVNWRJ4YtkR6M3euV0O1+3alDaltodsZr6Y0aySx0uCBeioB+lAHntt8M5ZADcT49gK0T4bTQRHsYsh4Oa9ArM1iJHsmLkALzk9qAPI/Fl5Ff6TcRRR4eBsg965jw14ZVo/7b1wYtV+aKJ+sx9fpXod7NpdpE0knlyjrsX7p+vrXFajd3XiIzNG4WGPKhB/hQBHPq8niDUZjnbbW64RBwAfauYnvLtFd4ZHCq2DzV/RLHUV1J7C3geWSYYAUfrXpGi/B6eTT3XVbtUMjbikQyR7ZoA4vSEXVNKMjbmdOD3JNa2km7ttDvLeS2njQSblLoQCMV6lovh3TvCcMFjHCpjY481uSW963bu1t5YGjeNSpGCMUAeCeHNd+xalJDIf3TmvRPD10thqFxdyTealwRtf8AuqO1eZ6/pcGmeN57d/lgxuQD1NS2usXWmsV5eD39KAPfTq8HkmTeNoGc5qXTGM0P2iX78nIHoPSvCn1y5niP2O6KqfvRtyMV3Gh/ESyaFLe6fy5VABPYmgD0ieaKKJnfoBWN9kvNRfzJMQQ/wpjLH6morHVLbVrpTHMrpGN2Ac81viVFX2oAwJtHaEsyNuBHSsS+hM1qylTuTjpXQT3N7qc5i04LHApw87jOfZR3pzaKVibfMzuw5JoA4GwlMM7Qt+FZ3i2x8+281RyK2dZ0+bTblZmHy5xkVJLEl7ZFD0IoA8dtbNJpnV+tZd5bGC5ZAOO1dTqFmLHU3CjHNZ2sQB1WVaAMDyxS7DVkxgAd6cISRnFAFQp2xUTLitFogF4qtJHzzQBDA/lTK3vXa2Vv9ogRgM5FcSwAr0rwGY7y12PjcKAGJpbt0Q/lVqPRZD1FdqljGv8ADUy2oHRaAOQi0EnqKtR6Co6qK6pbUntUi2RPagDmo9HjT+EVZXTkHRK6JNPJ7VYTTR3oA5tbHsFqxHZN2FdKmnKO1WFskHagDAhsW9KvxWB7itZbdV7VKsYFAFGOzA7VZS3AqwFpeAKAIxGBTtuKdvFMaXHSgCTAFJx61VNyc4pRKSKAJ9wpDLg4qAH5utIxxzQBK0pFRsxbmm7s0ueOlACH60+J+1M5PFJja2RQBcopsbZWn0AJVW7t1mjORmrdIRQBx9xB5EhUjioG6V0GqWe9Cy9a55gQcGgBpajPpTtgoAHSgBuSaQKc81MATRsNADAgpcYqQL60FaAIitBHvTzgVEWPSgBMYNP34qIhj0pRGxoAVpPSoyS1SCA1KsQFAFURE0/7Oe9WtuO1JigCARhaU47VJTDigBhHrSMBSs2KjLMaAFIGaYzAc0u0mobn5IWJ7UAQG7G48iiuZfUP3jc9zRQBkeI7UnEg4rm9oArW1TxALtGRVwM1gtcEigCVxxwKgYENk0xpSaYXJHJoA09Pma3uopUJyrA19MeG78aho0EoOSVGa+XLCQGQqfwr2z4ba2BbfYpG5XpmgD001UvrSO9tXgl+4w5qyJARwaQ80AeQ+I9Bispjh5JTniNugrO8IfDvVdS1KS5lna008PnI+9J7AenvXrlz4atdSuRPdZKjog4BqWeFtJiRrXmGPAMftQBDY+E9M0vMlrHsnK7TKeWNXLK9YtJbzH97Eev94etTG7WWBZEPysM1zt3cCLWYpw+MoUK9jQBc1x0ls3DHG35gR1BBpWv1Nshz/DXO61rlrABHcTBPMOAO5rkvEHjGW0U28MLoCOHb+lAGF4zL6j4sa4iwY1wmaZPZGOHDOCcZrn7jWHkViDyTk/WrtjfNeWboWJcDqaANCC/trWaNiFxtw31pst7YSWjoYxv3ZDVyd0bgSkcnBqOM3TfKFY5oA6+x1W70W6iutPkY7jgpng16NpvxBgu1jtr5TBK5Ck9jXmmhW8n2dvPX7uSM1sWyWd66ecmHjPWgD3uzmh+zp5RGzHGOlMudRiWQ28IMtxjIQdvrXnVh4lNjCsIJZFGB613ehtbSWizx4ZpPmZu5NAGTeWOs6jHIl1bWyRN0AYk1iw2VxYHyZ0xjgHsRXok00UUReSRUUdSxwK5rUtS0q6Qot5AW7YYdaAPMfF1gElEyjrXLSRma1ZT1HIr03W7IXenOAMsOleeLGUkZG4wcGgDno41VTk8injLDCin3MYgvGDcA1CZwhwtAClAo5PNVJvmPFOeUk8moXcnpQBCwANdX4AvTBraws2FeuTNXNKuTaapbzg42uMmgD6UhtAyg+tWkswKh0e6S60yGVTnKitAMKAI1tlHapVgWnbxS+YB3oAURAU8KKjM6Cmi5BbFAFjAo4qJ2JXIqBZiGweKALZkAphnGcVCXB96axFAE7SnHFQ+c1Luzx/KkK8ZoAfuLDrmgUg6UCgBpUE5py8UhOPf6U6NWJztNAC4oK1IY2PelEQHJNAEWynCM+lT5UD1o3egoAYsWetIYlB5p53NRsJ60AIuB0p9JtC9aAwNAC0UdKKAGSIHUgiub1G0MUu8Dg109VL23EsZ4oA5baaTbzUsqmJyh7VDvFAEoFOwAKh3n0pMsaAHs4FQtIT0qQRk9acIBQBAFZqeIjmpwgFLwKAGCPFLsFPzSZoATApOlOwTRsNADC1Rkk1PsFG0UAVihJpRHmpmwKARQBD5QpNqipTUTZoAjcgVja1cmK0bHXFazqTVNrQTybZFyD1oA8mkvp/Nf5H+8aK9f/wCEc0487B+VFAHgZJoFOxzShCaAGYpMVIB2Ao2k0ANjYxzKw7V3Pg28MOopNvP3sYFcMyDrXQ+GLl0uTFDG8k0mAqoMnOfSgD6OsZzPEhXkkCr7wSeWSpw3aue8I36G0WK4Ro5+hDjGPauskYBetAGfZX/mM0Ew2yr+oovJV8tgecis3V7s2jxzRQ+Y5cLxxgHvUF9egKTmgCpY3UsFrNFNNvYSNg9MDPSsvTdStdb126sgWEluhKk9CfaquqQXHkmRZcIx3Mo6moLU28Nx9ogAS4YYJFAGZe+CdZ1a4M7usflTblZ2zxmt7xDoVhq+iy2yFPtsMatn8KsNq0rxFN3I61z99O8cryox3kbTjuKAOBPhd4xmZ8etWbWztNPkwWJJrqBb/bYss3Jrl/EOn3FsyGHknrigBJ5bRGYiIH61SS7ikm2gKv0qmml6hc8kNzVy38PTRyK8rhcHnNAG/ZKGt2wcjFRQtskJxgA1O1zY2dtse4XOO1Zcl8h5t/mX1oA2/P3Daox3zW74f8UT6RcpbuS8Mhx9K4VbmdhnNTQvIJAxPIoA+gTpNtqsCPfDz1PzBCflH4VDdeEdFmg8v7BCqjptXBFZng/xEL3SERgXniG1lA5NatxqmqkHytIcoO7SAE/hQBh3OmixHkKSYyMDPJrz/U9JlXUm8pMhjXfy6w15I0NzZy2syngSDg/Q1SuURX81hmgDyrxPpU1rGk7L9a5ZpPSvWvFqxXukOFxlRXjzkozKexoAezkmkL571CWNG6gB+aUcdKjz604HHSgD3D4fa0s+ipEz/MgxXYf2goPFeJ+BdQMF00W7AavTkJbB60AdAt+WGc0humY8frWZE5wOn4VZjIPUc+9AF5JSRy2T7VKjANmq0akj1+lO+YH0+tAGpFIHXGc1HKmCTUNu+D1zVt13LkUAV0+tO280wkrxmnoMn/GgB+044/SnhT1xmpQUUc0pkXtQAxYyaeIhnk0wzYOBRuc9BQBJtRaXco6VBtY9TTxHjnrQA7zcmmMXY8VKqcdKft9TQBEiY6mpRtFIcCkzjpQBLSGoyWNLtJHOaABmGMVGDzUgj9adsAoAaDmlpSMUlABQQCCDRTqAMHVbEt86jmshYeea7GaMSIQa566gMMpx0NAFRYgBQVFSYNIVNADOlHJp+yl20AR4NKEqWgsKAI9opdoFKTmkOaAEzSZoIoxQAhNJTsCjigCMjJo20/AoxQBFjml2DvUmKSgBvlrQIUJzTqUcUAP8pfWikzRQB85KvGAOaeIievFSxqEI75qVkZuSMCgCnjacAZpBESeamCDzQOlIwLNjtQBEVUHHWvoH4YeCItC0lNSu486hdKG5H+qU9F+vrXk3h/wVq+v20t3p0KskJ6s2Nzegr1Xwz49u7W5j0jxNYy2dwMIlwyEIx9/SgDt7+xilG8IBIO44qpHe7Y/Kd/nUdD1xVy6uBsJB4Irm3Bk1BmiXLsu0n2oAlukk1DdFF1yCSe3Nclrd81r4jtbXzWKg4Ye9d/aW4gjx1Y8k+tecfEiw1C31S01HToGlcH5lUZ6UAa+sQubQlc8VzsL5niBjLZPQVTf4l3EEBt73TgJwuCD60vh/U5NfmkLf6M/OFxjIoA1bmWBAcybT6ZrLn1KziXG/JrVk8NxlsuzMT6miPwvE7Y2D8qAOWTWEjlZkVyOwqheeJZjIyx2Lu3+6TXplt4PtxgtGD9RWza+G7KHBaCP/AL5FAHhD61rEx2xw+UPpioTb6pdHMtwRnsK9t8ReDbS+tTLZxrHcoCQAMBvY15ZKJba4kt5YWEoONuOaAOR1axktApMjPnqTVvQZ96GI9R0+ldP/AMIlrerwFY9PkZm+6DgH9elcvBY3Wj6xLZXsLwTxNteNxgigDo49q0rzqvaqrTHpSNOCMBaAPTfhZextc3sLY3YVh7jmvVhgrXz74Fluz4pgjtWVWcENnpivXX0LWpVcjXpUJ6BIgAP8aALmrW8c0RJUbh0NcxdIGtXB7A1bvY/EGmeWWdL63AxIcbXHuKhjZZlJPCnk5oA85vZpnaWLB2nivOdRQw3rg+texawtp5x8sqT3ry3xPAIr3cMc0AYm40ZqPJpcigB26ng1Dmng0Abvhy5+z6tE3rxXsVvN5iKw5yO/SvDLGQx3cTejCvZdKmE1nEQC3FAHRQuNgzjPtVlFwM/zrMifkAkD2FaUDbl5H50AWo3yOT+VTjlen51WXA/i/KrURBXp+dAEkY46/lVyF8jBGKpqQOM/lUseQ3C0AWJUGMmolB7LVkLuGaeEUUAVtjsPT6U8QEDJ5qx8q0pcFaAIUUE9KlCU0MOoAp3zMKAG7BnrUhYAetNWM96ftUdaAGbyTQFYnmpAyjpTGkIOAKAHeX60u0CoyXJ4NPAOOaAAsB0pQc0bRS0AFFIWA70A5oADSGloNACYoFFGKAFqlfWwljzV2kI3DBoA5kqVJU9RTTV+/ttjbx+NUCKAE7U0mn000ANp20U00ZoAcSKbmjrQaACm7acBS0AMx60uKXFHSgBuKKdijaaAG4oxUgSjAFAEePalC5pSQKQtQAuKKbuooA+fxGImbd95Wwamln3KFUdOpq94j046fr91C3ADkj6ZrJ80AHPJoAY6ry3emRB5pUhjGWdgo9yTTZG3Hnj2q5omlapq195Wk27y3EQEnyYG3B65oA+n/DGiw6HoFpp8QH7tBvP95j1P50uu6bb6jZyQyAKzKVDgAlfcVw3h/wAaa/o9v5XivTysKAA3aEZUf7Q7/hXbvqEF3aLPBIHikXcrDoQe9AGElwbaNrDDbYEVY3Y5LLjqal0uRJNzKcnPJrnfEWri0uIoQcNOSufQD/8AXVrwtdBmaLOcc0AdnGOKWWJJF+dQcetLEOKlK5FAHiXxP0JILwX0KABuuBWPpcsiRROuVcY6cGvV/G2l/a9JdtudvP4V5UWMLABcBRigDq9I11Eu1tr9/lbhZP8AGu/t4YVjDJgg8givEriZmtPtAG4DrVuw8XappGxI5g9uwwFk5A+lAHtRlUDAFRNOR0FeT2/xI1ddQkBht5YlGfLwR+Rr0nwnr2meJ9J+2oSkkbbJoG6o3+B7UAXQZ5TiJST7UsPhuAzm6uUj8w9SBz+dXZdTggXbEAMVm3GsM+RuoA2Fe1s02xIo+leW/FbSYb1YdcgQCaD93MR/EueCfp0rrTdtJ1YmmXFtHfWktrOoaOVCrfQ96APE1iMqK6DII7VNFpl5L9y3fB7kYFaOnCXQtTv7CdMtATj3HrWTfePrgM8cEITBxmgDqvBWnz6Z4qtLm4ZVByuM+or3WO4j28uv518nafruo6rr1jA9y0YknRcr1GSOlfSTeFLO8t41kmn3qB84kOT9aANa6dHRsEHivMfGWvf2OjW0QxJIMgit+TwnqelTPNp2rzSRnnyZzkV5x8QZZX1G2E6bZRH8w/GgDGg1CV8u7kk81la/maIOaej7YxUt7EZdPLe1AHI0ChhhiKKAFzTlNMp4GKAJoz8wNeveEZRLpyA5PFeQoOea9T8Ebms15OMUAdnGPm7CrsTAdFJqtEEXqQKvQvF25oAnRXb2+lXIYSBzVL7XsOBirEU7P60AXAqIck1KHRegzVIlj3wKcOfU0AaMcoamSuynjNRxkLjtVoKHGTQBBvdhxxT1jYjmpwiin5UUARIoj61Lv9KjZg3SljJPBoAVi5HFMRHIwTVjimlwO9ADVixT9opjP8uRTVcsuKAJuAaaZADimqhHXNKUBOaAEZzjgU35mqXAFISB1IoAjERzzUgGBSgg8ilxQA00UpooATtRSmkoAKKKKAIbiISRkGuenRoZSp/CunrM1K23oWXqOaAMcsabmgdcGn7aAGZxR1p23NOVAKAGBadtFPwKMUAMAop2M07FAEeKTbUvFIaAGYFKcUlFAATTSc07tRtoAjxmkxUhFRvuHSgBMUUmT6UUAeefFGxIvor1BgOOcV5yWxx2r3Lxvpv2/wAOykDLxfMK8KlyhIPUcUAMZyTxXtnwN09F03Ur8rl5JliB9lGf/Zq8PLV6R8NfiDb+F7aTTb21lkhll8wSQjcVyAOR36UAe66vo2n6vZtbX1tHNG3UGuevbKSxnD28m22ChfJxwAPStTTPFGk67AZLC7WQDhl5BU+hBqDVHDRN9KAPDvHOuCTxVDFE+UtflbHTcetdH4X1dYL9HY5Vh0FeYeIF8rxBfLnOJm/nW34W1UxahAz8qpGQaAPpOydZ7dJF6EVbIrmdJ8T6Zhbdp1Q9s10cdzDOuY5FbPoaAK1/bC4tZYiMhlIrxfVdMaC4lx1Vjx+Ne5sua4DxPYpFqJ3EKkgzQB5hNdC3tri1W8hSCXkjGWFZFxqGnLbiEl5cd+lSnwlf3uq3PkECMSEZNacXgCCEB76+RfUZAoA5Z9VW3G62iVGbv1Ndb4U1UaDqNldB2W21FfKuAegbPDfgf5mklsfDGmREeYJXH41mXk0Oo+H5TbD5YJTj2oA9hknZ2x0pETNYXhDU/wC2fD8EshzcRDypQeuQOD+Irol4FAE8UQHJqypAqorelSKaAOS8daYI54dXiX7y+TPj/wAdP9K8YurGWS6k8tC2WOABX0neWaahYTWkv3ZV2/Q9j+deRTwzWVzLbvGFeNip/CgDjNLgubTV7WfyWzFMrdPQivqyw1m1a3iYzxjcoOCwrwSKEGQMQMk16u/gnStX02GOTzIjtHzxOQc4oA7F7lJVyrAg+hryD4rQKDaXIHzZKmtuXwNrOiqz6JrErgDiOc5rjfGmoahNp1rBqkPk3audwHQ+4oA5Lk25I6inx3gexaJuuKZbkFCpqldKYi23oaAMqYfvW+tNApzDL5NKBigBuM04LTsVJHE7thRQAsa/MK9K8JyNb2qqT1HSuN07Tf3qtIM4rttPARVCkDHpQB1KOWwxOPrV63f5hyzViQ3C8AY/E1p208ZI3TL+BFAGwFyMjANTR5B6k1BC4kxswQO9XI1JyC3SgCx/D2H1pyDd3z9KYibuMH8alUFTjNAEoBPGAPrVqFuxNV0Qhs9amBKuOeKAJmV26ULEcc1IpyM0pYDrQA0RgVHvYSYA4qcEHpQAOtADRkjkmk8rJyakpelACbBjFN2BTmm+YS2KUqzc0AO3CmPJt6CgIR1p21c5oAjy7U0xsW5NWOBSEigAUbRilPSogzZpWJoAUtTGY44pwWl20AJEWI5p5oAxS0ANopSKMUANAxTZFDrg1JijFAHP3dt5UhYDg1BgEVv3UAljNYjIUYqeMUAR45p22gDFOzQA3bScClYmm0ALmm5oIPpTdrE0ALupOtP2ADmjAFADMGinFhTSc0AGfajOaaelIWNAD8UFRjmoGnVetR/aGbhFJoAsfL60VBi4/wCeTUUAXrqA3VtLCRkOpFfO/iKwfTtYuIHGNrGvpYEKOleM/FXTPK1NL1Vwsg5PvQB5sT9K9t+Dui2GoeFb2SeEGVrhozIOG27Rx+prxFjg9K9d+CWvQWz3+lXEyRmRlmi3sBk4wQP0oA9G07wHpeiwXCWTzjzzk73BwfbimT6bcWsZBuTKg/vDmuoaZWXIYH8azbxgyEUAfK/iF2bX78spUmZuD16mmaTKUuBXTfE7TFsvEQuUXCXK7j/vDrXHWknl3Cn1oA7iSU+SsmelT2fii908gwXTjHbPFUI2E9iQDyBWO2QxBoA9N0/4rXUGFuohIB1I61a1vxnpuv28Pl5WVTyDXlAzUqEqcg4NAG14k1G+s75PsUhWKcBjt9aw5rXV77lTM+epPAq1HcymRSTuI4Ga3jc6ja+TDJDlJOhUdKAOcg8PTrH/AKQ6rnk9zViG0NhbywQNvWTls10cunzPzsbn1qA6a46rQBS8GapNpHiFYLg4trvEbeit/Cfz4/GvWBkHFeZNpfmYyvI6GvQ9Nle506F5P9YBtf3I7/jQBdT0BqZB81QqOhq1GMigCVVFcp4q8Ptc3iXtumTINsgH94d66xQSMirEahvlYZBoA89svCd1IQWXb9a9BsblbaOOGV1VwAME8mrSRgDgVg6r4TsvEDB5pZ4ZlPEkTkEUAdMZVcda8w+KcCPYwTcblkIz7GtyXw3r2jWcraZqb3TrzHHP061yHjO/u7nTbeC/h8q53ZYduO9AHn6Kc5qaWHzITXbeA/CGn+J3vBezzRmELsEeBknPJ/KsjVdEn0TVJ9PuAN8RwG7MvYj60AcS9qVc0i23Nb9zY9SBmqq2xHbFAFOK0HcVdiMFsAXIH86r3U/k/InX1rLkZmOWOaANyTW4oziJc+9RnxBd7f3bbaxQppwGDxmgC+2s3pOTO1Kus3+eLh/zqiQMZ6mm/XigDsvDfji70y8RblvMhJwcnpXt2l3sOoWUdzC4KOM8dq+X8jtXpXww8U/ZbwaXdviKT/Vk9j6UAexhTnual27ecgUhG4jacjtilZSo7fjQBKM7cjmmhznnAoBJj60iKzdFoAtwyZ4yTUjJuOagijcHJNWhxQAKMDFOpM01320APoyKiD7hml3HFAEnAoZwBUQLHk0A7mwaAHb81E7MG4qwAKRgD2oAjTcw5qTZUiJxTtooAi20jAYqfaKjeLPIoAiQ9qlpm3Z1przhPegB9BIHWq5ldvujFHlSP1JoAnMqdM0duKjSALyTU2MCgBtLRRQAhFZl/bH76itSmugdcGgDm+aUBjV2eARv04NRYAoAr+WT1pfLIqamnigCPBpMGlZ6jLEUAPx60hwKjLn1pM+poAVmApnmChiPWoGNAEpkFVrm48tCacaz7t952UAa2iWB1BvNl+7XUQ6bBEOFrE8MXCLF5R+9XTFgOtAEX2aL+7RUnmD1FFAGFICrVxvxA0s6hoDuFy8fP4V3EqgrmqF7brdWcsBGQ6kUAfLkibGIPUHFS6dEs+p2sLyGJJJUVnHVQSBmr/iHTzp+rTwMMYY4rJBKsGXORyKAPdn8DeJbTWrafSb/ABYpgNHJctyv05rrZNF1HeSL4KnoeaZ4E8SJ4h8L2tyXBnRRHMO4cf49a6KRxQB5H8TPC13eaTHcxMJZLXLMAuCVwOn5V4pyp9xX1jfhJI2VsEEYIr538baENI1+URDFvN86e3tQBHo0+75CeoptzHsuGFU9KOyQH0Nal9saXKnNAFVRxTgKciE1MsOaAIBkMD6V7R4YgttU8PwSGNWkC4JI715D5VenfDW8/wBHe2Y9CaAN6TRA/G0AVH/YEA5K5rqGjGaiaLmgDj7rw6HkBjO0d6vW1n5CeUOhH61uNFk4x1rK1HU7HTGKXUyo4/hPWgBUTPGKnjTHBqDTb+11a3+02jhk3FT7EVpLHQAxEx+NTolOCVMqUAIo5+tVY5hDctGxAOcgH0q+q1y2paAmtyyEXU0E2cB0bpQB1RlDJXmnxGiR7WOQAblfrW5c2uraFZgfb1nCqceZ1Y//AKq4rXdak1bT9ksYWVZPmA5FAFr4YXX2fxBNATgTQ8fUEf4mu48beHU1rTlvoUH2y2Bzjq6dx+HWvM/CUxtPE1lKTgb9p/EY/rXt8E6+aU7gAkexoA8LksAwxyartpbY4TH1r0TxNoa6dfmaFcW05LLj+E9xWOlsjDO3P1oA8nu7WWbVPs8SFnJxgUuo6BfadGJJ4SEPftXVWMKQ+IrqcqMp0rpre+ttZjfT7xBiQEK3pQB44F9aUKTWxrujSaLqkttKOAcofUVmlCeelAEOMEjrTSvPJqwVCgY61GyknJoAhxngVLBLJbzpNGxV0bIIpp68UbfWgD6R8Ia7Hrnh+3nD5lChXHfIrfwT1/WvD/hXrZsdbOns/wC7uPuj/ar3UxlV5GaAI+QMZ/KpopNq/dpmwjpgU/AXryaAJDJ8vXFPhk3darck9hUqsAOOaALNIwDdaFORS0AN2Y6Uu2lpc0AAxUbfK2RUlNJHegBN5PSpI0J5NLGgIzUuQKAF6U0mlzmlC0AKBS4oooAayBhUDW4q1ikxQBWChaQuoqZ4wwqnLCy9OlAEhl44qPzW3VEpwcYqxEN3UUASjlc0mKkAApCKAGUU7FNoAhuofMQ461ksCGIPUVu9RWbfwFfnX8aAKRNRs1BJphoADUbU85xxUTZoAaelNNPpCcdKAK5jYtml2+tS4JpRH60AMCBhWXcxFZq3I0ANQX1srJuUc0AULG5NrcK46d67OO/glgDFxnFcL04q7pqme6WJ2O30oA6v7fbf3xRTf7HtsdKKAECZXFV3AFXMc1WnGDmgDxr4oaR5d8t4icOOfrXmjKcnivoTxppn9o6K4C5dORXhdzZPDIVZSCDigCx4d8R6p4dus2F2YUlIEgIBU++K9rZ/FkuoIIczWcgDLIiqAB9a8DaPb2r2f4Y+NkudPTRr2XFzAMRE/wAaen4UAdWmg30sha7vSE/uryazvEfgvTdWsfKdCJVHySk5INda1wpXINZl7qEECnzZVX6mgD56udIudF1eSzuFII6Hsw9RT3jO7mvTNY0z/hKpAbOLBgPM7DAPt71xWpaVc6fMY7iMqR37GgDLjGKsK1IsZqZYSaAGZzXUeCLs2+qFc4BwawFtW9K0dJVrTUIpegzg0Ae5oRJGGHcUrIKp6PP51kuTyBWgRmgDPvFdBFKhx5cisfpnmuR+KGhfbNNi1qBMyQYScDuh6H8D/P2rupYw8bKehBFIkaT2z21wgeOVCjqehyMUAeO/DrVTZ601hKcQ3YwuegcdPz6V62sfrXm4+Gt/a6szJeqkccu6JwPmwDxXqMSExoTyxHP1oAjVO1SBakEdO2UARgVkFHt9SaNFJ8z5lA71ubRVK7t1bULCfLh45DjGcEEHOaAMLWrC5uvKupEdDExXyyeqkYzVTwTpNlcWOpQ3NtE7yTMm5lBOMDgGu0voDcR4UZJBBrL0LQrnTGuHkkjxJKXAXJxwKAPI7qyk0XXJYDhWgl498Hg17FZOk0aSjqVBB9RXK+OfB+p6xrdre6QIfnTZcea20DHQ/wCfSun0zSbqz023hmmjeaNArFc4OPSgCTUbVNU0iWBfmYrujPoR0/wrz2BBkoxOa9Ks2Qx/L2Ygj0OeRXD63ZvZa9MF4SQ+Yv0P/wBfNAHCXMHk6tdYGM1RWR45g6nDKcg1v6lZzHVspGzBx2GaktvCOpXkmVh2Ke78UAQ+IbJfEfhZNRjXN3affx1IrzkI0g4GF969v0jw9c6VcPBOQ9vOm1x25ryzxFp8mja3c2AT5Q25SfQ0AYLRqozVZwSeOBV5lA4fk9aqStlsLQBXOAMd6TBI5pxG1uabknpQBZ068fTtQgu4jh4nDDHtX09ourR6zo9tdof9YgJHvXywAAa9n+FGr+dpEliz/PC2QPY0AeoFwCKY0gLDmq7OX4z0pm4g8daALm72pvPXPFR+au3nrTllLLgCgCzC/arBIAyapxRuTk1aK5XFACecnY5qKW4ZfuLmoDFJuIHSp4YWXluaAERpW68VJHas77mPFTqmam4UYFAAq7VxTGQls1D5ztIVXkDvViMk/eoAcBTqKTrQA6iiigAooooAKaQD1p1FAEBt1LZxShQtS0hGaAIi4FAO4U5o880AY4oAaRSGnHpTaAE6UkiCSMg0tGaAMCeExSlT07VHtzWtewhhuHUVmFgOtAEZU00x+tSFqYxNAEZQCkOBTiTUeKADI7UnNLRj2oAFPNT4Dpg1CAamj4oAxbuAxSnHSmQSNBKsi5yprZvLcTRkjqKxipQkGgDpV1cbR83aiuZwfU0UAdlv9KZICe1KOKk4xQBnTKroVYZBrg/Efh62kLOkQB6139xtQksQB6muP1/xHpFopSS4V36bU5oA8v1DSPLY4Wsy2WTT9QimUlSp4I4IrU1XxQs8rCCAKvIBPX61zM93NMxLv1oA9g03UrrW7VbSDVvs90ORk/eFbtp4IiluLe81W+kuJ4hjEZIVh7+tfP8AbXlxaXKTwSusiHIIPSvVPDnxLSaFINQby5hxuzw1AHqm2GCIRRIqIvACjArnfEFpaXdo4nAwBkN3BrOvvGMUKYjhlnlP3URTz+NTaRZahrSpeavC1rGDlbcnk/WgDkz4euYUWRojsbkH2qWHSST92vSZ1iKbSBjGMVnWyWgujCy/MeQB6UActFozHohq3/YMmzITBHNd3DaW5XKBTT5LZfLOAKAKWgM0SKjnqOa6CsK1ASXAwMGqes+KpdH8RafYSw5t7ohfN9CelAHUlaqGUOwMLhtrYbFWww2hu3WleCKOMPEirk5OB1oAgns4r1oZpGdXiyPlbAP19atIiquBwBzVeB2MkiMMA9PcUl3LE8LwFjuZSpx2yKAJZLiCKFpXkVY1G4uTgAetYNz450K2iaX7S8qA43RRMyk+gOMfrVq60m11LSDptzva3ZVVgjFSQMd/wqE3ui6c6WUcUbNFhRGiBtuKAKcfjC+1Ef8AEo8PXc6npJNiNPzP+NW44fFV6M3F1Zaeh/hgjMj/AJnitmzvIL2HzIGyAcEelcx4gg8RzamxtnK2IwEWMFmbj0Hv60AdLp1nNZQsk1/cXjk5Lzbcj2G0CorzVjBeLaQW0txPtDMEHCj3NUPCcOuR2k39srGvzYhAJLFfUjJx+ddDgKS3AJ6mgCC3nlkO2a3aJsZ5OR+dWKyR4is5JHEXmSqpw0iISo/GtKCeO4hWWJtyN0NAGVfZ02/W8X/j3mIWUdlbs1WLy1guNkzoGK8A+1XLi3jureSCUZRwQRWTpUsgWfTLk5ntuAT/ABr2agCTyLZFLmNQF74qlF4i05rsWyuQc7QccZ9K0nhEsTI3QjBrN1TS0u7aGzsbRLZFYMzAd/60AaNxCJIty/UV5b8U9ODWdtq0SZdT5cmK9XAFvaYdvurya5LXbE6n4Xv4XXO4F0+ooA+fXdm5bH0qFnA6UkjOHZDxg4NRbh3oAU5PJppPPFJuJ4FIOlADvc12Pw61M2HiWNCcJMNp+tcdyRVzS7k2eowXAOCjhqAPpQTSGT5RxVxEJ5NY9hqaXNrDJGudyg5rRWWR+BxmgC2EjHLGpUljHCiqcUDE5dquxxolAD1kd1wBipogwHzGmAgdKeDQAsjMoyKSMNL1p+N/FTIgRcCgByjaMVDLISdqfjTppQgwPvGliQBcnrQAsUW0ZPWpelJQfagA604CgDFLQAUUU6gBCMUlKetJQAUUUUAFFNJpR0oAKaVBp1FAEeMUw1NimlQaAIs0lPKHtTKAEYBlxWNeQeVJkdDW1UFzCJYyMUAYRoxUjoUYqabtoAYRTSuRUpGaaRQBEFpcU801mFAABmnDio91GTQBaUgjBxWXqEARt4HWrisRRcbJISCR0oAxM+4opxVc9KKAOtzVHWtVXRtInvmTf5Qzt9at5OayvE1mb/w5fW4GWaIkD3HNAHi+v+PdU1eU/vjFEDwicDFcpNcvKxZiST3PNRyoUkZW4IJFMHp6UABbPPc0mBnpmnBTSj/ZFADCvvgVGVHX0qwVA+9TDg9AaAPQPh/4jvJroaYyrK4XMZbqQO2a9HfV5IW23CPGR/eGK8F0TUJdK1q0vV48qQE/TvX1CLa013SU81FkjkQEHv09aAOQbWori4FtFKPNYHHcA471b0TT5rOOSe+lWS6lOSR0UegpsvhmfSJWktIhLH6gfMKpzaq1tu88GPHXdxQBuzXgtFacPtVAS30FW7HVUv7NJwhVJBkZrnrf7NrWmLJ57YZ+VxjIHatuN4oYViQAKowAPSgC0sK7i6nOa5XxDDJrupx6cqYmiZZEf0561Z1PxImj3MS+UZUb7+3qo9a39IvtIvMXkEkZkcYJOA30oAoeN4NbPhsJouftC43Y6kVt6Zd3Enh+ye6hdZnjUSA9VOO9aigNjbzmqusLJHp7tG21gO1AEcCmKMKTnByp9qq6mzQ3EUg+7IMH60Rzme3t3jfDcMR6joR+tTainmabIQMmP5xjrx/9bNAC2xLKKqHw9aJcC7jlaB1kaVnGOc9QSe1XdPAeFHHIIBBp2s6Y2q6TPZpOYHkHEgGcHPcdxQBBpZ0eyEsVg8a+bI0j7TncxPJzWldySQ2kssMXmyIhZU/vHHSuAtvhzqUk9s19rzRxwNnbZKULjjgn8PevRANqgDtxQB5PJ8QvEUesfY4tIuLxywwIVIGM/Tj8a9StjLNZRNcxeXK8YMkeQdpI5GR19KnpCwHU0AUn0uB7f7MGeO3xjy48KMfzq1b28VrAkMEYSNBhVHao5L6CLrIM+g5qnJq46RoT7nigCxqOpW+mQCa4bahOAegzXDv4wgufGNjJAw8llMLEd8nj9a372Uaggiu4kliDBthHBIqhqljb3liY47SCN4/mhMcYUqw6YNAGvJrNpC5V2IbripF1WNo96ISvqeK4rxNdvpi2ksigPNGSV7gjH+Nef3HizU/tnkLcMsOfuigD2G+1u32E3UypCvJUdTXPS+PLG9vYrG1TERO0sa8/n1SaSNgz5yOazrRvKuVkXIIOaAMjxNamx8QXUIGF3kj6GsfPPNdb49j331veKOJohn61yFAEnejGDzSDgginyOZJMnvQAgJ6UqYz9Kbna3FA5Y570Ae++BbhLrwzbP1ZRtP4V1qEV5j8L78f2ZLbE/cfP516Qjg0AXFaplNVVap0NAFhaeMk4FMj5OAKtou2gByDatI7kDIpkswVgvc1KoGMmgCOKLcd7VYJCrSEhRmmgF+T0oAbvc9KkV/WobhzDH8oye1JEJGQM5xQBbFLUUed3tUtAC4ozSUUAFFFFABSE0tNINAABmnUlFABRRRQAUlLQaAG01lBp9JQBCVIpKnNRsgPSgDMvYP4xWdkVvSR7lINYlzF5MhHY0ARFvSmEmkLqKYZRzigB2fWkJFQl3LcUoRjyaAH71pjS46CnbAKTA9KAI2MjjjinRQE/fan896XvxQAv2OKinUUAapWpI1jyQ4yCMc00im555oA+cvGuknSfFl9bBdse8sn0PNc9tw3FeufF7SN/wBh1WMdf3MhHqOleWtGqrgde3rQBAYz1PSnAAtgdqsiJ5ByMLSkKiYxyewoAqGIhdx5qJzn7orREG8Asfw96qS4QlcZPtQBUYN1zivoT4T65/afhdLeR8zWp8ps9cDp+lfPrBjx0rp/A2s3el6o9tbztGLkAfiKAPpaW5hhXMsioB6muP8AEmqaJdRMuzzpl+6yDv71htBczQvPdXDuqjcctWZaTTTqZUsS0AbG/tigC9aavDEuwnywOxFGs+IzpVmk/kyOsgyjhTtrorTwxa3sCSnG1hnpW7DocH2EWUoWWADAVlB4oA8l0c3viG4FxEclzznpXR3vgnUUkilsky+QxAOBmvQdM0PT9LiEdpbpGo9BWk8scS5d1Ue5oAyI7K8XS7aKaRw0a5k8tuSfTNWPKmm0+RJCxGOAeasNqll5bE3CHHUA03+1FePEEDyAjqBxQBz+hzA3U9m/+shO9P8Adb/64rat5GaaVWwYzgoR3BHT8/51z00L6drEGpTp5KSN5B5/vHj9cV0MEYiXavTJI9smgCtoUy2yXenzHa9nMUUnvGfmQ/kcfhWjFqFtNceTHKGfBNc1dRS6hrkUQPlKATK4OCQvQH8yaWK00zT7nz7dJ5boIYxM8hGAfQUAdVJPHEMuwA9zVKXV4E+7lz7CueeQscuxJ9zTGLl1I6DrQBsSaxM/3EC/XmqUt3JJzJKSPrgVw3ibxPqGmaq1hbRxooiWRZWGSwOR9B0rj7vVdRvnP2q8mdf7u7A/LpQB60mq2Ml6tml1E1ywLCNWBOB1q+a8h8OzLbeKtKlLfelMX1DqV/mRXrvWgCla30k1w8ckTJt9Vxzk8e/b86v8GozGpbcRzUgGKAOS8fRFtJinHVJMH6EH/wCtXnmmeHb/AFq6d7ZMpHyzHpXrviHTm1XSJbRDh3xtJ7EEH+lV/CujPoUM0EzhvO746UAecjTJLaUrdQvsBxnB5r0nQ/D+iXGlo8VumXXknrWD4hbULVXtxC0sZJCYXOPxrR8KyPp2n776QRD0Y0Acl8T9KS0s4hEvyxnj6V5TmvZfH2o2er6ZMLZw5jHJFeN8+lADl6ZpTyaQCnA9sUAIQBg0uCSM8UpAAz3pcE4J6UAd78NZQt3cRj0zXrdvLlRXjfw8lWLV5M9CnWvU01BE4QbqAN1GqzFljgVhw3E1x8qjBNb9hAYYwXOWNAF+JAq89aJLlY22nqaN+BVVYnuLjcwwq0AWIkMs29hj0q5wBTVARaTl2/2aAFALnJ6U53Ea5pSQq59KrhTO+8/dFACxq8jb5OnYVPjccDpSfe4HSpAMCgBQMClprNigMe9ADqKAQaKACiiigApDS000AJ1NKDR2oAoAWikzRmgBaDSUUAFFFFACUGlNJQA0jNUr2yFxGQODV6igDk5rKaA/OMj1qIAdK6541dcMM1lXekhstFwaAMfIHSmlvanSxvC22QEe9MyDQAoOaKQ0m4DrQApNICe9NL56Um40ASbqKjooA3ixpuC1TbQvU0hZRQBh+LNJGr+Fr61AzIE8yP2Zea8ASKONSzAZHXNfTAk55GR3HqK8D8VaKNI8V3lqf9WX8yL02nkUAYce9otsa9SQCaUxhFIPUc5PX3pzyrFONp3EjBFV3kO4u+O/y9qAF8wOjbW4yMH19f6VVmAj/nzTpJBxg9+KidiRuJz7dqAIXbJyB+NNt5ntbqOdW+aNgw/A0rMMVCSTQB7/AKPcRanpcbg5SaMfqK07HTbyHT20+KaFbZyNxCfNge9ea/DzV7g2b2aYcwnIUnnaa9Jg1e4Rf+PM59SwAoA6eygS1tkhT7qACpJtQtrUfvJRn0HJrjbvXmKMJ76OEY4ji5J+prGfxDbwD5cyP6mgDuptclkyLePYP7z9azZ7jzPmnmLt7niuHuPE9w5wvyis+XWrmTo5NAHWaleRRxsUYAjpXTeB9ZOpafLBKwMsDY+qnpXkwh1G/b93DM+fRTXX+AdN1bSte8ye2kS3mjKMW7dwcUAdL8QpNumaev8AfvYh+orZmB82OIEhwQ4PY46j8jWB8TFZNFtLkciC6Rj+ddL5kcywyA53IGB9sUARPBawvJcvvDspBxyMfSsE8mugkK3FsSpyrCufPoaAKd7btMyuTlACDHkgE8c59v61PA7bBu61MRxSBQOlAHn3xLJs57C/WMuGVoW9sEEZ/WuFfVYwN28AkZAHNelfEuDz/CUjAZMUqP8AhnB/nXigyzbF60AbEOsGPV7S7bcRBIjjt90g9Pwr6GguorqJZYHDxuAysOhBr5i+ZJCCQcHHtXtngK+afw3bAtkx5T8if6UAdwD604EVSky68k7cHIBIOfrU8MhKDPWgCWQ4XPpUN1MrQnDAMBkGpm5UivJNd1e/t9YurbzmCJKVH0zxQBt6v4i1He0PyfLwGrk7+/vLg7ZJ2OewPFNbfcfvJJ/rzVf7TbLJ5avuegCzFEY9JudzZJWuHIO8j3rt7qURabJk/eFcR1c/N3oAcFHc04eg6U0Y+tPAJznigBOAOOtOx0zyaAp21IF+ZQKAOr8FBhfsccYr0iEhJkUDJavP/DVs0Kb84Zu1eoaPZDaksvL44oA2dMshF87HLGtQsAOarxsFFNknDSCFfmY+nagC5azF5ChGQO9X1AFV7aIRRgd+9Sk7uB070AOJ3n2FV1vlMzIE+Vepp824x7Iup61WW3kB8rHB+8aAL0cyXKnHSnqB90dBTUQIoRBwKlAxQA4DFBOKQnApB8xzQAoGeTT6YzhaBIDQA7b6UmSOtRh2Z+OgpwfsaAHhgaWm7QelGSOtADqaaUMDQRQA0Z70pNGQKKAE6DNIKU80tABSZpCaXpQAuaKb1pHcIpY9BQA+kqOKXzFz2qXNACUYoooASkp1IaAK81rFOuGUGsa70l4stDyPSugoIB60AcU4dDtYYNMxnrXWXNhFcLyoz61h3WlzQElBuWgCiAKQn0p20g/NxSkooyTQBF81FO85KKAN7k96TntUgUU4CgCHaxrzj4taSz2tjqyZBjzDKR1x1H9RXp2KzvE2kjWPC17ZbMyPGWT/AHhyKAPmp8LGQmBUDTF1wo/E9KWZDHI0cuSykgjsDUBfBIJ4HIoAcGA6dRwTUe4n5c/jTSfmyeAfzpGbBGOlABkDgVGTzxzTj1ye/amk0Aanh/U5dJ1RJY3xvG1vTBrqNT1m/uLZgLiTPoDXBZOcjiu10Hfdy2s3ll0DAv6cGgC/omnXchj+0W1zOW+Z1j6ovqT2rqtG8OadrNxMY7iaONW+VG+9j3rRsNTuNEaWKBInt7ocs65wPQGoNJhuzrReAYh6lsYH0FAHQWvgbSIiCyNIf9pq2bbw/pVt/qrKIe+0VIt5BDGPMmQfVqrzeJNKtx892hPoOaANWO3ijGEjRfoKeRjoK5w+MrNzi3iklPsMUHXdQnGYrVUHq5zQBreJNNGs+HLu06s8eV+o5rhdI1y5tINBN0xC+Y1rJntztH64rvtEuZ7i1cXJUyK3b0rlvGegKdMme2GNsnnKB2Pf/GgDrEjVEIX7pJOPrWFcp5dy6++auaJqf9pabaTgf6yP5vZxwRTNSjxOreooAo5wKrRX0E07wo4LpyQKs4yMVQ+xiGbfGWCn+DsCetAFbxHZ/b9BvbYDJkhYD644/Wvnzy/myO9fS4G5cNyDXLyeBdDiuzcJZgljnazEqPoKAPGrezub2QR29u0jDtGhJ+pr1jwFpl7pmlyR3sfls0m5FJBOMCt2GwitV2RQpGo7IoAq3Eu05oAvoeMAZJqY4jxuOCecDmsye6FvC8jttRQWY+gFcBqvxBuJ5mTT08mND8rkbmk+vYCgD1NZUJwDXlnjSyMfiKZlXiRQ36Y/pXVeGdal1jTZLmeLy5IjtOOjcdaxPEmqWl5cRyRsHcJhsdvagDiWgZA25jgjpWHcRPFLvQnIrp7h/MJAHFZ8trv5IoAx5r+4mQI78CqoB61pyWHPSq72xU0AV1OO9ODelSCAfWpIohnGKAGxQvKQOgrWs7ONH+f5mqpGhV8dfauy8PaI9wVnmT5ewNAG14f01VRZHX6Cu7shwAKy7DTnwoVOBXS2lj5arvOCaAGzpMYP3K5Y1oWVoI0VmX58cmrEUKqKlZgvA6mgBD/dHWq1zcNCRHGuWb9KtovHvUfkbSX+81AFPzHRhFFkyHk+1aKkqoB5bvUccSx/Nj52qdRjk0AKq4p1JTSSxwOlAC/ePtTmbaMUnCimjn5m6UAGQvLd6cyKw471A7732gZFS8qu0daAGxfI+wcj1qcqCKaiBee9PoAZyvSlDA9adUbgY96ABlyeKXcQMGhAQvNOIBoAaOeacRmmMNvIpyEsuTQAbaT2px4pvXmgAApCc0p9KOgoAaSAMmqh/wBJk25+UGopbiWW5MCKdvc1dhiESYFADlARQBwBSq4boc1HPKsa8nrTLaMhSx70AWc0UlFAC0hoooASiiigBDzTSAwwcUtFAGfeaXHcKSo2t6iucu9Nubc5Ybl9RXZU10VxhhmgDg/LPv8AlRXZ/wBmwf8APMUUAII6UKOwp6xl6sJGFoAiSHPJqbaAMU7FFAHzT8StEOjeLrlUXbBOfNj+h6iuLY7Tkc+pNe+/GPQje6BFqMSZltWw2P7prwFh6n8KAEc5HHJpp6dcmlDDGKauT7CgAOWHFJxTgQMj8aZjtzQAZOOOa7bwDf7ZZrNzyfnT+tcTV7Rr46dq1vc9FVsMPUGgD0nVdQvbO4/cfd646iqQ13V5cgzMg9BxUmo+JLSSH5YN/HWsdtVdyAiKoIoAtz6nO3ytM7N3yarG7l253ZNUXZt7Ad+ppoYn5Uz9aAOg03xRPp7qCquO4rtrHxpZTW+ZBtcDla8vSMLyeTUgYryDigD1zw74whuvEEVmF2pMCoJ9cV3N5brcQsjcgivnvS7l0voJ4SfNidWGPUGvoe3lFzaRTL0dAw/EUAcpoMDaZqFxaA7raRi8Z/ut3FauqJmJW9DVq6twrb0UBgc5FMuAJrNj7frQBiU1lyeadSn2oAaAB0oZQ1KKR5UjXdJIqr6scCgCBohSeX6VBeaxZWibpJQfQLzmsd/EdzcNi0s8L2eQ/wBKANa+skubaSGQEpIpU49xXBp4OeK72LLAFzwTwcfSumN5q5UOxh+nNFrcR3N8iXkHl3I5U54b6UAUb2f/AIR3Tl0+1TLygs0p9T7Vynkljmux8SwebcQn/Zx+tU7XT48AsM0Ac8lg79EJq3Foc8n8GK6uG3jQDCCraKvpQBxNx4adYtxrnbzTyjEEdK9XlQOmMVy+qaZuYkCgDz5oGQ46CkWP05Nb8+nkEgqa3/Cfg19Quhc3CbbZTkAj71AEHg3wZdakwu7tNkI5UEda9XsdDt7ZFAXpV62to7eJY41CqBgYq2FBXFAEO2KGLKgcelSW6NKRI/A7CmrZgMSXOPSrCBo+CflFAErMEX+VNIfYWUZc9KjLxzsNr8rUqyFeHH40AFskijdIfmPap2cKKTcu3ORiovLMzBicAdqAJUUn5j1p9NXcDgjikLgnA60AKTk4FPGFFIq4qObecAfd70AOzu5P3RVS6uN67I8n6VYkTzE2o2Pakit0iG4rzQAW8ZiiGeWNWEXHJ60iLu+Y/hUlABiiij60AISByaYBubJ6Uv3246CnH0FAB7UmMUvSoySzbRQAbd59qlAwKQDaMU0k9qAFPJ5oyKgaTL7Q3PpUqg45oAcaY3IxTLifyY9xGRTIXMuHHCmgBYrcRsT1JqUkKMmnVWnUzSCIHA74oAiCfap97D5FPHvV3FCIEUKO1LQAUUUUAIaSlooASiiigBCM0lOooAbRinUmKAEooooAeBjpRS0UAJQaKKAKOq2MepabcWkoykqFTXyfrOnyabq9zaSLtaKRl5+tfXhHFeEfGXQfsurQ6nFH8lwuHI/vCgDynADY600k5qV1XapDZPcY6UzaAKAGkHqaD604KSKMALjvQA3FJyadt7mjBbgUAdHpyfbLEHqV+U1eisBGNzMAB61zmm3EkLsiOQDWp9pdhh2LGgC3cKjOAjZFOjiAGBUUMJkIJrXt7ZQAXPFAFVYCRT006ec4Ra6CztbcNulIxWgb+yt12xqCaAMPSrJ9N1CGeRNyhuR65r1y21bUP7IR7DTWlfgCNzs2/nXLeE9Tsma7uJYVkniIEYIyBnvWhdeKLqSZ0EmyNRlyowAfT3oA6S41Q29vGLtFjuCgLoDkA46ZrCudcBjdEYqc5BBxWE0l/q0uYiUT/no/JP0FVb7QTC48+eVy3PLYoA6GLUrZoxulVXA+bJrKvvF9lbeaIY5JmiO1jjaufqa5XVbSO2CCHzQx7hjxVS3g8+4a2vF3qBuV/X60AXL/AMdajOStu0dun/TNdzfmf8KxmuZ7xjPdm4k2ncHkcnntxW2LS1txiOFR+FRXMPnwlOnegCK1a7kvFd4zKuASf7tbjl0GF44qvo10LeQIf4htNaz2ryKXC/L69qAOaGsTwTvFISwp2l+IDPrcMVyBtydjehqe7tdJim8zUNSihPdVOTUMOk6BqNyp0zW4/tCnKq/GaAOi11WkeFl6CoIeAM1PIswZYp/vKMcVEV2P7UAWUap1aqavUqv70AWM561HNbiVTSq1XbO2a4k/2R3oAz7Lw4t5OGdf3YPPvXaWtvHawrFEoVVGMCmwRLCgVRjFOaUIwBOKALQYKMkgUkNwZpCEHyDv61RZjfSGBMhB95hWnDEIowq9BQBMPWs66uzPKYIfur99hTr65kY/Zrf75+8390VVtpZBN9mtYwyL/rJD3oAtWk0c25Qm1E439M1OL2JHWNnDBjhaiuZYdhtkwWYc47VnLZTDVbeQRf6NGvXvmgDovKB6dPSpwABgVGjhhkU8nAzQAjNjjvTVj25IHzGnKpzk0/FADQ+OG60u9SpORxRIoKnNZVppU8d807XTtCeRGemaALcdq5uTOJCFP8ParWx2bDdKlAxxS4oAQClxS9KQEHpQAtRudx2ildscDrQqlVyepoAT7owKUDAyaUDuaHOBQAx24wKVECj3pEXuacWAoACecVDOQkTEnFTds1SZHup8MMRKfzNADLC1YEzSHJbpV9jgUuAq4HQVWuJgq7Ryx6AUARyIbl8Z+QdatIoVQB0FVLYND8rc5NWyQoyaAGyyCNCT1qO1Rtpd/vN0+lRLG9zMXf8A1an5au9BigAooooAM0lFFACUlONIaAEoopD0oACwFCsGGRVaR8ybB+dTIoRcCgB5pKKKADJooooAkopKWgAoopkkyR/eNACtXKePtF/tzwvdRIoaWNS6fUV0jt5ke5iVA7HvTNyiPceYypBB70AfIMsMkcjI3ykEg0wKo69q7Dx9oR0rxHOQCkM7GRB7GuSCqG4yaAGDJ6cZ707bt6cmpCjYyflFKsYB+VT7mgCEp3el2FhnGFqwYSvJGaYfzNADEG1gRwO1bMCAKGqhBbM7ZbpW1BCNoUCgBYpvm+Wr0TP1JpsFpj7q1ejtHIyFzQBGJHIyXwKTc8oxF+JrYg8PvOQZHwhHC1r2ejW0SOJk2IO9AGf4XUw3UsYBbcmWbtxWpftuuY0fiJQXb39K0dPtAh220WI8cnuaq6tAHs5lPDFSAfegCfQ9WtLq6aKJvnXjFa+tweZaLMB8y15x4ZiuIdbCopJP3j2A9a6zXfHekaXbtbMRPOOCF55oAy7xB0IByOKxJLhbYsz/AMIxVC5+JCRvmKwRh/tmprLxTpfiBXt57P7PckZUr0NAEb6wz/6mEn3bioTc3sjcyKi+g5qVbU7uuRWlZ6eGIyKAE0gK9681w22GJd7E9/aub8S+PL3UrhoLQmG0Q4AXgn612tzoz3Fm8cB2sykfWuCuPAurpKVjgLAmgDm57uW4bMjE1Lp0U0t9CINwkDAgjqOa6O2+H+pu488CNe9dfo3he00nDbd8o7mgDUheaeVXkB4UAk9+KnuVPlhh2qVNpYLkZParRs3khZdvagDIR8ip0fis9mMcjIeCDVq033MyxRjOep7UAaVpC9w4A+73NdLaxLFGFUVWs7MRRgAVoKoRCx7c0AOZ9iE88Vnbp75gipgA/MT2+laFvcQ3R/dsGx1q4iKp4GM0AOtbdIIgq/jSzykfu4+XP6Uy4uRAAq8yN0FUprh4oWEaM9weo9KALKeUjeQnzyt98+lOleHTrYxx/fboO9JZC3t7cSnh26k9c0rWiz3RcEtnqT2oAZYxGfa7IFP8Teta4UAYA4FJFEI0CqMAVIBigCJohncvymkV2ZsOMAdDUv3zgdKeEGMUAA56U7GOtMMbLyn5VUS8e4vGthE6hOS5HBoAtAGVv9kVOFxQqhRgUtACYpaKjd+w60ADsWO1fxo8raPlPNVnuAhEcYy7d6mjWZWG45HegAQncTIOe1TZB6Uz60xSdxI6UASswUVEoZzuPTsKP9a2P4RU3QYoAMcYphUdaXdk1HNJtXjrQAgnRmKD71SgADtVW2tyil3OXbvUxO0c0AOdvlOKrQDc250w1NS4eSfai5Tuau4GKAE2gHOKZJEJQATxUdxc4XbGcyHgCpY92wb/AL3egBwUKMDtSmiigBKKKKAEopcUlACUGiigBKink2Jx1qRiQOOarxxtI5eT14FAAkO1ckkk05GIYg9KlPFU7hJZW2jgdsUAXODyKKZEhSMAnJp9ABRRRQBIKKjkmWJdzGoDI7EOTsjHPuaAJJJ23bY1yfXsKgXaGLZ8yT+VTMd6AoQqnkmoVPJWFcDu5oAfs3L5kgyR0UVHJskRfN+X2qVML8gYknnPamNGCGIw0lAHD/Erw42saMJ7dA0lsCwGOSK8Je2kBKnC47AV9RuNqkzHcSMeWOa5LUvAulyTSXaw7d3zFB0zQB4StvuGduT70nlH7pzx+VemXnh2BARDb7R9K5y50YxsTsoA5jyXbg1JHajPIrXOnsD92gWjDtQBVih9K1rCJS2GHFV1h2/eqaGOR5MZ2J3PrQBtQsp+SBNzdzWlAiwHEa75G7dhVW3tW+zr5HAP3m71sW9uVi/0ddxPDP6UAOiRoZFeVt8p6KO1aywLNHunX7vO0d6htbcow2Rl5D1ZugretLJGk8zOXI5FAGlolrF9mLBBknv2rM13w9HcspjBB3bgPetyx2xSeXn73atHJQO6Kpk2kLnpmgDwzx3eHwvpbW1l8txcN88g6gH0rx15JJGLO5JPJJOTX1Bq/gO11y0ddRfMzMWDIMAZPTFcFd/Bq3iLFL5ivYFaAPGgCzetbWixLbXscsxwTwo+tdKfh7qMMzg+XGgJAbqasQ+ErKydZbu63MpzycUAa8FtlQcVoQXVla8TTRqfQmua13xLb2VukNm+5yQCR2FZFw9s9jI875lcfKc0Aes2dzaTx74po2X1BptzrmmWKnzblMjsDk14fp13dW90IRPIiPxjJGa1Gi+6ZHJ6gljQB22qePLJNwtomkIGc1x1746v7jPkR7B61SeWJTt3BiRtwOTWVJLLbb7cptDHPI5oA2NO17ULbXrS4vJXKBxuU9MGveoHWWFJE+6ygivmiSaedt8hLbeM+le7eAdTOqeGIC5zJEPLbPtQBQ16zcapsiGPN5z6V0GiWkdnAqdXxyasapbB4llA+ZD1qraPlgoHFAG8jjoBUyoDketZ07zW0avEu8scbe9XtPt51TzLh8u3bsKAFsdOgsixiGCxyap6nqk1lcpEibmfhQOcmrmqXT2tnIYRumx8qjms/RdDuXQ395Lvu5OcdQo9BQBc06R3u8yrukI5PYH0rdESk5wM1HZ2QgTkfOeSasSEghE5Y/pQBjvYSvegF9ydcDoK2YYREgUVJFAIx6k9TUmBQA3bTGOW2gfWnsewppIRcmgAZggAHU9KQRsPmDc0kaEt5r/gPSoJLuXzQscW4E9fSgCZ5mGEIwT3qaIKBx+dIQCnz0yBWDFgTs7A0AWaSimu4Ue9ACSPt4HWonVjEdjfPSSZVCx5c9KjtLdoA7u7Hcc4J6UAPt4DCpeQ7nPJNTRzCTJXoKYZd/CjNA4XYgwT1oAcxLnaOnemv2RafxGtEa/xHqaAHIoRcCkfdnilLUpNAEExMcRIIB9TVe1SR3Lu2QOmO9LJvuZ/KK4jHU+tWwAihRwBQAE4qpcytwiDLNxUs8wSNmz0qtZwgyec75du1AFuCPy4wD171LSMcDNVVumknKIh2jqTQBKlsiSmQDk1NRRQAUHrRQetACUUUUAFJRRQAGkopjDcMA4oAPMUvtzzTqhhgEWSSWY9zUpOBmgCC6n8hVbGQTinxSeYm4DGappcNeXTw+WQiH7xrQCgDAoASiiigAopKKAK6ognwzb3xkegqV0VsbxllGdoqupwwjt1z/ec1OE8lgQpZ26mgBiKZQDIdoPRRSyKGUI3yL7d6dIip84Usx6CmT+XlZHJ3L/DQA4BXiKY2r60ixhY/wB0evGaJQHRXZiqAZK96BGX2GM7UBzj1oAjWONPmY7n9aZNGHHPSrhiQchajdM0Ac/e2KyA/LXOXmjqcnbXcyQg5rHltJZ5CRwPSgDhJ9H54WqraMxztHJr0RtMz0WkGjFlIVcMe9AHmD6IYsPNksDwo71bg0WaYiWdNsY+6vc130fh+K2ZXnzLMx4HYVfTT4bSZXlQu7fdUdqAOa0/QZ5tjbfKiX+E9TW9b6V5T5AVYh1960VhcS/aJzt28LGtTuFfDyNtQj7lAFeK2ilTEK4XvUkSpE+2JcnualjZ2IKDy419e9K6PuKxgKp53UARNIkN0rjLOSAQO1a5cBC7HCgZJNZBjAUrbnMg6k1c8o3OnvBKcl0KMR7igDG1bxz4f0tSJr+NnH8CHJrz3Wvi9ancmn2rP6M/FeY65Yyafrl5ZyZ3RSlefTNQJ5CxqOPNB3HPf2oA6GTxpq+sXgiMgiVs8Comt5pwhnmdzyDz1rnmumF79oRRGy4Ix0p82oXU2d0hwecCgC3qdnEtom0rvU4x1NZ32kxwG3dPmJBDHqK0/DsE82uWr/ZpJ03jeNpIxXoOofDy+1jXxdRWUcNoUwQTjB9aAPKJbmWWVXfG5OhHFNeeec8uzZ7Cva7P4P2S7vttyzITnYnAHtmugtvDPhbQIwRBbqV/ikIJoA8M0HQNXudQgmgsZXQMCSV4xmvRJ/h5d6pqiXtz5UMYXBQDmujvvH/h3TsxxTK7D+GMVi/8LAvtXuPs2jaeXc/xN2HvQBds/hxotpuaZTLk5IY8flW1HJpGjQ+VEYoVH8K1jxaF4j1LBvrwxKeqR8VsWPgqzgIebdM/cuc0AVrjWI7xDDaoz7uM44oW2lghGCUY9DiujFnbWUZ2xgbewHNLDYTSTi4lC7cfKCOlAFfSrCVgs9wctjCr6VqXIMVudg+duFqdZVih3ONpHGKLWGSZzNOBjOUHoKAIrLTTH+8nbzJWGCe2Ksm1MZ3wcHuvY1cApaAKvn4XBU+Yf4alii2fM3LnrUu0dadQA2mu2OB1NK7BFyaYg3fMc5oAXAUEt061Eo81vMbhB0FIxNzKY1/1an5j6n0pbjHl+WCQOnFAEU7G42xxyFDnqO4q0ibFAJyR3psMCxqCcEgdacxLNsH4mgBMGRv9kfrUg9B0oUYGBTqACoZVIbeO1Sk461DzK3+yP1oARWSUgsCCO1OmhMoAD4XuB3pzBSuDTAJEHy/MKAAKIlCLye1PVdoyevc0kakfMx+Y/pSMdzbR+NAAPnbJ6Cn5o4Apu3JzQAo9TVa6usIFhILtwKluphFCSe/aq1hbkDey/SgC1ArrEC/3z1pXJPApZZBHGzdlGa5jQ/Fya3rU1nDAViiH3z3NAG4tm3nFmOVPOKnERyM9BU9RTgmJsNt96AHbl9aUADkAVSt4jL88hyF4XHf3p7yi3YFjhPegCxNJ5aE1HbiYjM+M9selVwJLyRXBIi7j1q+BjigApKKKACiiigBKSlpKAGswHGeTSJ0561BcMjyCLGXxn6VOihFwKAHUyVC6YBxTiQOppaAI4oliB2jk9akoooADTKeahaXa+3B6ZzQA/H1opvmLRQAwIScD5VH55o84yfLED7se1M8x2dXk/dqOi9zUqkyblK7VPQigBnmFDsj+dv4qa7RLJuVd8p/SlClv3cA2r3b1qaKBIlwBz60ARwwMfnmOW9OwqxjHApaDQA09KYRmjzD5u0KcetPxQBCY803yBmpyMUuKAIhGvpTtgHSn8CloAiMaswJGSOlR3DiPaFTe/arOKMCgDPeN4lMhG+U9B2qXYXjBkQFwMgVLO7KAEXcx6VWy0Db2JeU9h2oAHTeu+c7UHIUUil5+R8kS9PU1M6KT5smTx9z0qIMQvmS/IvZaAIXd5spAuxO71btMxuYjkjGQTVY77gc/u4R+BNEM0jyqI0IjU8k9/pQB5p4x0aztviTaXN3B5ltfJyAP4hXOy+AbnUfEV39msJltCN0TbcDr0r3S6SweSOa5SJ3jzsLAErWdeeJbS0Q7EZyPQYFAHmNj8GLu5hRb66SABiTs5Yj0rr9O+FvhrS1Dzxm4Zf4pm4rP1f4gX4VltIVT0J5NcFqviPWr/JnvZOR9wHAoA9gm1jwzoERVXtotv8MYGa5bVfi1ZwkpYWzSnsTwK8rCzztmUsfrzVi10ue8uY7a1haSaQ4VFGTQBual8Rtbv8hHECHsnWs6HQ/FPiRTLHHcPGf45GIB+leo+FvhlZaYqXWqKtzdHkIeUQ/TvXb+QiIFRQqjoAMCgD5l/wCEO1mz1aKwktHM8zBVPUfWvfvCfhG28O6XHCiBrhgDLIRyTWnJboJFl2jevIJHSrcN2CcPwaAJVtlHanGH5cLwfWpVYEVJ1oAoQ2e0l5cO5PXFWGKxoSe1TYpjxJJgOoIHNAFO3hklkaWU5TOUXHQVdApQoAwKcBQAgGaMUtFABSZpjufur94/pTQ5B2v19fWgCISCadgeApwAatBcCmPGrjkfj3qJ5Gt0ycuo6Y60AV72Z7Zl8iFnZjzt7e5qZ7uODYLllXdwCfWnwYYbz94/p7VDcwxyTjz4g0YHBIzzQBZaUMoCEEnpT0XauPzpkMUSKPLAAAxxUtABmjNFQyOXby069z6UAIxMrbF6DqaeQFXApyIEXAoIB60ANUd6dRTXYKKAEdj91eppyrtGKagI+ZvvGlzzigAPPHNIHAbbnmh28tC2CcelVYpkvWygOB1PpQBJJbeZcCRzlR0FTMwReKcOBioZdmxi5wMdaAHBfNjIbkHiqmnaJYaWWNrAqMxySOtFgJSzncfKBwoPNX6AA881UlcXLGFOR0Y+lSTMzt5cb7Xxn1qVIwi9snqaABVCKFHQcU2SISDDU/cucZ5pfxoAZGgjXaKeaSigAooooAKSlpKACo5XCL15PSpKheNpJFzwg/WgCO3hZMvIQ0h7+1WKXFJweKAKLq1zd4B2qneroGAAO1IqKmcDGadQAUUUUAFVJrjy3wELDvjtU0soiQsxxiq1lvkV5WIIdsigCzx/cop1FAFebymVHlX51IOB606JJZWWR/kUdFqVIhw7gFwOTUtAAAB0oozUbSAKdvJHagBzOqfeOM0Bt4yvSmiMEZb5s880/GKAAAAcUUUUAFFFFAARRQSAMk4qtLI8hMUYOccnHFAD57gQ4G0sT0Ap8TM0YLrtY9qbBB5aAMxY+pqagAIqs6eUP3almY9fSppJUjxubGelOBDKCOhoApBUt3JZt0rdqVo8Ayz/ADY5CjtTpYzC2+NN7sep7U+CFwd8rZc9fSgBkcbTrmVQFPQf41Kyoi4HAFPkYrGxUZIGcVCiGT524DDlTQBj3oeWYCLG3qTWHqNqWyMV2jwAjAGKqPpiSH5uaAPL7zTGdjhM1SXwxc3L5SEk/SvXP7NtIV3sgwKf5Jfy2ttoXPIxQB5Ong28kmSCOPMjHH0969K8MeErTw5bbgolvHH7yYjn6D0Fb0FskOXCje3U1MaAIyKhmkjjKh3Cljhc9zU5FQ3Vql1CY3+oI6g+ooAyGe5vQ4RNjxkgo3RgTjr+GaSCwuYpVLzZiwf3fXafY1sRW6QRhEHA9eaUrQBWjkeHjqtXI5lkHBqEoDUWwq2V4oA0gaWqkVxzh+D61ZVgaAHUUUUAGKY7EHaOWNKzbVz37UiLjk9T1oAFQKOeSepoYKwweagvLpbcKpVz5h2gqM4qBNtnCPtMxHmHAJ9aALJ3RAkZZfTvSR/vsSn8B6U63jaKPY77/QnrileIE7lO1qABoweQSD6ik3leJBx69qFkIO2Tg9vQ1JgHg0AQmHHzwttPp2NOWfDbJBtb9DR5ZTlDj2PSkLK3ySLjPr0oAWSQ5CJyx/SnxoI1wPxPrSRxJHnb371JQAU2lNNPrQAEgDJqNF3nefwFA/etn+AfrUh49KAA9Kb0pQeKjk3FSFI3Y4oAztQnkNwkMTHcw5GOKu2VstrbhFzk8nNNtLYwxgytvl7tVgn0oAOvFUdTgmukS2jO1XPzt2x6U251P7LMkRhd3kOF2DP51bW4dSgljKlhk45AoAlhiWGFY0GFUYpXbahIHNKGBG4dKqlTc3CnkRx9fc0ANtIpTK8sp4J+UelWpZBFGXIJA9KfVa68x02QldxI3Z9KAKyOLu5Vk+513Kefoa0QMDAqO3gWCPaox61LQAGkoooAKKKKAEooqKaTy4yaAJaDVW0WXyw0r59KtZoAgui4gYxnDDpVfT4pVRnmfcxNXjSYxQAUUUUAFBOKKz9Vmnit9sCFmbjcP4fegBZkW9ZoyOEbrmrcaLFGqL91RgVBZReVACfvuNzGrNABmikooAV3CAnqQM49qaQR86d+o9aVYwOWALEcmnk4FADUcSKSPoc0LGqdBTOuJIu+Mj1HrSyzpFwT83YdzQBLRTUYOoYdCM06gBKKKKACmySLEu5iBUM10kR2j5pM4CjrSRwPKRJcdey9hQAwiW7OPuw/qatooVQB2GKd04FJQAtJUbSgPswScZ4qQcjNAEckCSurMM46VIAAMDpSMwVSScAVWFx5pxtIQ5GaALQIboc0yV3QAqm7PWq8TKuBCMg8k+tXAwPSgBoQbi+Tk06iigBKguLiK2TMrAZ6DufpUV1qMULeUn7yYnAReT+NQR2wW5FxeyBpG4SM9F+lAE/yXduJCHVSPukc4q7bwiNQQMVDBDKZ2kkf92OFUVdoAQ80xmA6mm3E6W8LSyHCDqcZ6mqMpmur6OGNSsUbLI0nZhjoP89qALghInModsMMFO2fWpcU6kxQAzFNIp5FGKAIitNK1MRTSKAK7JmhHaM9yKmK5ppWgCZJQw4NS5FUSpHI4p/msRtPGe9AFgfO27sOlMuLmO3UBnAZuFB7miSeOCBpHICKM5NUYDJe3SylP9HAypcYNAFmKN5D5k64KngZyPrSRs11M4dEaBT8p75FMu7hmlS1g4dud2MjHfntUkh+y24jiGXb5V+tACSql1IFjnKvEeQp/mKsLIhYoHBcDJAqskf2WN5G2GZ+TjjJxSWMPyG4kQCRyTnocUAW5ApQ7ulMg3eX83rxnrilwZTk/cHT3qQCgBtIQDwRkU49KSgCPY6cxnj+6acswY4I2t6GnUx4w45HPY9xQBITxzUOfObA/wBWOp9ab5MjfK8gKD0HJqcAAYFAASAKYSTTqjuJRBA8hZQFGfmOBQApPFG5VYAnk1j2V1LqMn2xWkS2zjYRwSO4NayJjLt94/oPSgBxIPSo5JEiQu5woqToCTwKz/nvbl42XEKEFXU8MMUASWsUklwbiYqcDCY9DVuSMPycjHcU4AAYHAFNllWJCznAoAWPZsAQ8Cn4HbFVbSPG6U/xfhVnPFACnpUMEJj3FzlmPWiG4WdnCgjacZIxmpqACkpaSgAooooAKKM0hPc0AFQzQ+aQGb5QcketNa7jE3lj5j3x2qxQAnQYHaoppxEvHLHGBmkmuEjdU6se3oPWoYYxLL54IYdjjrQBaTft+fGfalpaSgAooo7UAFIQGGDg1DDP5ksiHAKnGPb1qfNADaKKT8aACiiigBQ6szKDkr1FMEZdldzyucY70qxIkjOOrU1nd5DGEwmOWz/KgBHmCrsgXc3oKWKMqoMrB3Hf0otrcW8e3duPcmorhZNzTJImxRypWgCxJKsSn1xkDuaVGLjJXFV0eOaXeyADACk9TVh3VFLMwAHrQA6qrXRkl8qDnjlvSoyZbx/kJSHofU1ahhSGMKg6fmaAESJdwlZB5hGCanzTahuFd1URMqsDn5qAJmYAZzVdZzKoBjbk4PtUQcSqsTqCVb5yDwMVcUKFAXpQAKoUYHamyypEhZj07U2S4RJFjySzccc4+tV2UQEzXD73P3VHSgBHD3LAzHZGT8q/3qlGXZkaMCJR1PXNMQs0ZkucKpOVU9RUkkTzsAX2x9eO9AEUBUYigUmPJ3N6fSrUMKRZ29TyT605ECLhRTqAFpKryTS+aEiTIzyTU4J79aAKUphinYQoDO/UgdPc1Lb22ZN0p3yDn6UssLYYwBRKx5NW4IRDGFzljyxPc0AScDgUUhpOT07UAVJopzfRscvb4+6CBtbnk+tWookhjCIMKOg9KcDnrS0AFJS0UAJSEZp1JQA2kIp5GabQA3FNIqSkxQBGRmo2SpyKaRQBAfulWAZD1B6VFcNJ5CQ23yAnG8dUq0VzUTLg5HFAEYa20uN2eXMjAtyeW+gqPTIJLiU6hO5JfhE7AfSjyIzd+fL82V2kEZGK0onRkGwjb2xQBUaza5vGln3eWoG1M8ZBPNWsB22D7i9fc+lOkfAAX7zdKcihFAoAXpRRRQAhpAMU6igBuKSnUhoASkpaKACsuZJLi88mVCYc5weQRWnTXXepXJGe4oAhhRDgIuIk4Ue9WD0oVVRQo4A6UnegCjdzylvKgXLggMCOCDVq3hEEKoOw5qTau7dgbumaSSRIkLuwVR3NADqqNamS43uxKDkL2z9Kkiu4pn2RuGI6j0qagAqIzKJfL5LYz0qQg4OKqWVu8QZ5eZGP3vagC2FA6DGaWikoAWikzUUzOF+TGfQ96AHLMrsQjBiOvNSVVgKjDMmyRgM1ZoAKQ8jFBYAZJxQrBxlTke1AFS2sEhuHnIBkbjPtVzNFV7iZkGI13PkAj096AKsyR3E5VIyJTwX9AK0EQIgVegGBUNvD5S5Y7nP3ianoADSUppKACql1deVIsKqS7jt2Hqat1G0CPIHYZYUANt4REuTy5HzE9TUlOptABRRSUALRSUUAVbcPdxpLJlc5+XoQf8jrVwDAxS4x0ooAikR2dGR8YPIPQ1IEUAgDg0tV5rtUlEKLvkPUDsPWgB5CR9PmfGQO/wCFQLA9w/mXH3QcqgqSK0SOXzSWZ+gJPSrGKAAAKMDgCgnAyahe4VJfL4LYyBmm3O+TMITKsvLZxg+1ADnuAMBPmbIGBUiruJZlwegpsUCRDgc9zT5JFiXc5wKAGmJN2TjHXHbPrSMxJ8tARxkMOn0qoRJeuxfMcCnjtmnybngWO1OEB2k9wKACJoYJNiZeQn5j1xT5FESM0haX5gVH92oomjhkSCHMhP327/XNWobcRFmLFmPc0AMWBpJBLKe3C9hVjAVQB0FKabQAUtJRQAYGc96jmnWLGeSegFNknCnZH874+6KLaz/eefMd79s9B9KALUQOwMRgkdPSpKKDQAh5OKWgDFFAAaSlooABRRRQAUUUUAJikFOooASkxTsUYoAYaaRT8UhFAEZFMYFhxipeDxTNuKAITH61A0BVt8TmNvbofwq7TStACWzORulKmTpx0q1mqRGDkVIkxHDfnQBaopqsDTqACiiigAxSUtB+tACU1hkEetRXd0lpD5j7iDwNoyah043UkTS3RHzHKjGCBQA+2tvs+/MjuWOckk1PS0UAZ+r3T2dn58ZYurABQud2e1WrXf8AZ1Mn3jz1zTGtd1555dioXGznH1qxQAVUvh5sJhEaSluCjHtT7i7WAqpByxwOKWCHbmR+ZG6k9qAEtrWO2X5VG9vvN3NT/jSEgDJ4qpK++cW8m1o3Gc5wR7e9AFvjqKKSOMRRqi9B0p1ACUUUUAMeRIx8zAVVVGuZt8se0LkKQ3UHvVmSJJAQe4xkcHFIkbR4AbKgYwetAEntQTijNUL67MZ8pMlmxnHUAntQBFcTXMu+FV2SN9xT8wI9/Sr9vAIIgvU9/rUdtapbhmGSzdSetTrIrKWB4FAFeW9EKOXGCDhV7saSySTMksjE72zjGOMUsLx3y+Y0YKqxCk8+2asgBRgdKAFpKWkoAKCcDJoqvdmQRjYcDucZ7UAQw3ss90USI+TwVkPf1q9VTTbY21mqsSWYlj6DPYDtVonFAC02lJpKACkoooAWiiigB1IzBRljgU2SVY1JJz7VTEUt6weXKRA5CevvQBOZnkZfJVXRhy2eKkjhSMfKOfU8n86ciKihVAAHpTqAGlwpwePftTs1HJKiFVbnd0HWovK/e7y7GNl2gelABLAs6OWgj8zGFLAE/nSQLIHLH52IwxPAGOwFWhjFU7i7JbyLfLSnuuCFoAnluI4WVXPLdAOTUU8aB1luX4UkqoOAfqKhYi1AdwJbkgZA649qsi2V5fNkJbjhT0H1oAimVZlV5ZDHDngZxz/WmPLLMUS1QeSThmFSm2e5l3TcRgYCCraqqLtUYA7CgCOGBIE2oMep7mpc0maiLsJVAG5W4yOxoAloo6UhdVxuYDPTNAASB1IqBpvMZokBDY6kcD2qKXzruVogpjiU8kjkn2ppmlmk+z24ZWHDOw/rQBNaxJE3kx8kcu3pWh2qK3gFvEEHJ6k+pqWgApufzFOpCATnFACjkZooooAKKKKACiiigAooooAKKKKACiiigBKQikLHPFO60ANwKQin0hGaAGEU0ipCMU0igCMrTCtTEU0igCJWKdKnjlDf4VEVppX0oAuZFLVVJivDfnU4cHmgB9Mmz5TbU3tg4UnGfan5zRQBn2sMkjs0gdYsAeRIM4PqDV/GKWmSOI1LN0FACnisyHUHvbpltSpijba5IOeCQfp0qeae4KbY4trtyucHjvU1vAsSZEaLI/L7QBk+9AEtIaWigDLtvtV1f+czSRQKuDE4HLc1p0UhzjigCG6cRwlmxsHUEZz7VDZWqpGsrx4lPPJJ257DNRfZbqXU1lnKmFQcAMcZ4xx+daNABQaKSgBhkVXCE/Maja4xdpACMlSxp8kSucnII7iq8NtJDdu+7zFf+JjyPYUAXKSlpDwM0ABqNokZgxXJFVYZ5pLx0KqyIPvI3GT61doAKa67lIzj3FOyOnpSMwUZJwB3oAbFGsMYROgpv2mP7T5AOX27j7Cq0t6k0H7h+XO1WPA+uadYWksCs9y6STMfvAdB6UAXKKKKACiqq30T3MkAV98bKp44ORnirVACEhRknA96QOCSB2qhqa/aR9i8xYzIu4Me+COKuQRGOPDNlicnHSgB9JS0UAFJkDk0VFNJtKjGQTjPXFACfa4v7/6UUz7H7r+VFACW1kFAef53znB5AP8An8qu0UEgDJ6UARlyHZT3Hy+9U4Z5Yn/0uMxgAkN5gK8Y4/WpXSSedHR/3WOQexz1FLNCJGQyJudD8jEZHPegAtIlKCb58tlsPwRn27VYfbsJYgKOSTVd5IrJd7liW/E9fT8ahErTxySXShLU4ADdT70ASrdfaH2ohMRyrN0NQGaOBvLtFVpGIDOf6/rSxv8Aao/Lth5duBjdjr9KSQPbGOGGEhGbaXBzxjqfpxQBIkKQM0i/vJycMx5IFWY4SXaZycsB8mcgUQwLFz1bnn6mpmcIuT0oAXoKTPc9KjaZNpOe+3PbNVESa7VDLujA+8vvntQBOJ5GmMaxHCjkngVOiLGMKMChFCjAqC5ulgXao3Sn7qDvQBJNPHbpukPtx3qu0CM/nyv8vJBzwQR3FNA8qPzro7nxwnp9KaUe62vMwSPPCH+IUASwTyTFWQDys/mPWr8aBecAE9abEgCjH3R0qWgAooooAKKM03PpQA6iiigAoooNABRRR1oAKKKKACiiigApCcCgnA5pAMigBRzzS0UUAJRS0lAAaaRTqTFADCKQipMU00ARkUhXNPxSYoAiK00MyHipiM0wigCSOYNx39Kl3ZqmV5yKckxXhvzoAuUEZ61Grg89afmgCFLVUm8wM/HRScgVOaKDQBnXt4QyQ27ZleQISuCU78j6VbijMUe0uznuW6mq9vp0VvdSTjBZxgfKMjk9/wAat0AQ3FwttHvdXK5wSi5x7kUsM8U8e+J1dT3BzUN7MyqIYv8AXSAhMY44606ztzbwbWILklmIGASaAJ6KWkoAKinm8iFpNpbaM4FOkkSMqGbBY7VHqaoYN7eAPjyo8/JtzzyOT+tAF6Ny65KFfY4p1FFABVO4leY/ZxCfmU5LHAqxNu8s7V3H0zio7SN4rcCT75+YgdB7CgB8EAgi2jknlj6mm3RAgOWdSemzrn2qWSRY1yT9Pc1TJe7k2MCsYGcjkZ9PagBNO84xu8jblZsqzLhmHGDirF0UEDK/3WG386lACgAcAdKpXdvO7ExuRyDnPQDqMUAV9JtHiRmOBA3+rhx90DvWtVVpHgh8wsroB9DVgHjNADqrXkpSI7ZNnGScZIHsKfPOIYi555AAHUk9qoW6z3bZu4djqWBI4G3PA96ALFlBIrvNMwdmxtO3BAq27hELMcAc0uaa6JKu1wGB7UAZce+9vFb5ZIFIlRyuCvtWsRmmQxRwRhIxhR0HpUlACHrTaU9aDQBHJIscbO5woGSaq28byztO/wBw8oPb3qa4jd+FGQQQQTj8akRQiBR0FAD6KM0UAQ3N2IiUTBkA3YPHHP8AhREbiRSzAKCwKg+lStBG8qysuXUEA/l/hUlABVS5v0gYxqrPLj5VXufTNE8s7ELbbSrAjf1w3pVcGOx2pjzrp8k4Hf8AyaAJXby7fzLrYz7soG4xntS5aZGNyu2IgFR0Pfg1D5Rjk+0Xu12xlFGTg/5/zxmkUfbVM12DGkbHCdP/ANdAEsLC9gxEWiRDgYHDD/I//XSNJK3+j2YwF43kdOlLGy6hE6GMrbdFIJUmrirHBEAMKijFADlyEAY5OOTUVwqSxeUZHTfwChwaGdZAqhSyOM5HQfWnwRNHEqu29h0JFAFIedF5luHkkAIPmSqMAYHHAGavK6MmQcKPXilcR8O+Bt55qkbprmceTjyVJVy33WFAE7TrIWihf94QcNjIzVUeXayFiXluDwRjI5qzG0UUwgjiPHUjnb9aikMFlNvALSSN06kfSgCaTJhV5Id7jnA7e4qG0R75FlmBCgkFSMfp+Ganhtn84ySSF26DtxVxVCjA6UAKOBgUtJRQAtFJ0pCexoACaBQBmloAWigUlAC0UnWigBaKKKACiiigAo6UU1vSgBOp9qfSAAUtAB0ooooAKKSigAooooAKb3p1FADCKQin0hFAEZFGBTiKSgCMrTCtTEUwgUARBmQ8VPHMG4zg1GRUZX060AXgwNLVNJyvDdPWrCuCMjFAElIRwcdaAaWgDPsbWVGeW6fzJs7VYgcD2xV6lxSUAJSGmTTJAu6Q4GQBxnNRS3SohOyQtjIXacmgDOnfztYe2+0MrPEVA2HC9Oh9ea1YokhiEaDCr+NU9MtJYfNmmdy0pBVXOSi+mfxq+aAEopaSgAoozRQBDLKUBCoxbHykLkZpLaN44yZWBdjubAwM4HSpqKACiiigCPyYy27YM9aeelLUM9wIFyUdhgkkdAKAKl7bzSMHUeYAy4TdgAZ5P1q3FIjDap5XqD1FSjDKCO9NK85A5oArX06JCYt+2WRWCDoScUtjMJ7SNliaIY+6e1ZDQNcXksUrOGlJHluC3lrjgqe2cfyrct4Ut4EhT7qDAzyaAJKKM0UAFFGaoJK8986K5Ty2AYdQR/k0AXjSUtFACUUUUAE0yQRl36dAPU+lUnebUOLeQww55fby3sM/5+lK1t57k3MwaFmyinjIPamSrNdv5Ef7q3U4fKkE/T1oAVp3hl8i1tguGzI7YAx6/wCf6Yp0vl2pZ7ePfcSjI5/z60R3CzTLbQKJYUGHYkk/n7f1ppultolghEk8m/YO+D3oAaII7BftFxulkJwAFzyfb/PfFWY45LgFrgYG7cgUkcehqS3jlSNfNkZmA74/X3qegBMBF44UD8BUSyeeEaPa0LDJPXNTUiqEUKowB2oAZDCkEQjThRTpZkhTc5+g7k+gpk7sInEXMoGQBzVFYgA11qBUtnIT09Bjv1/X3oAfiW7bfMwjg6hfUe9OidLrfDFERCoIWT3/AM801IpbyYTSjy4wMKoPJ+v+NJKHu5Ps8HyQr95x3PpQBJc3nkbIowZJD8pfHSpbezSFjIfnlYk5PWnwQR2yBV6nqT1JqdIgrmQ5LHjntQBIowKWjNITigBaKQUtABSdaWigAooooAKTnOKWigBOlGKWigBaKSloAKKKTcOlAC0gHrS0UAFFFFABSUtFACUUUUAFFFFABRRRQA2lNFB5oAQ00inGigBlIacRSUAMIzTCKlNNIoAhZc00FozkflUpppFAEscwfjofSpg1UCvcZp6TleG596ALoOaDUauCMin0ARTxGRPlOGU7l+oqs1vcTXCzM5hKAqqghgc9z+VXqKAG/jRS0lACUhpaQ0ARrJmTaQRUlNRQMn1OadQAUlFFABTX37Dsxu7Z6U6g8jFAFSXUI7dR54KOTgDruPt61Xgje8vJJJpA8KfKiJkKec5PPNTSWbyTIZSJowCAG4Iz3q4oCqFHQUALVW+n8mHAYq7cKQM8/wBKtVSksUluTI/zAkHOSCpHoaAEsYW+e4kaQlz8gc5IWrdOPSkoASilxTJCVjJCliOwoAZNIqRkGRUYjAJplqnDSsih3wcjnIx61Vjje6mDeeDGjbXQqCSRzjNaOaAFpKKr3Vw9uqMse8FsHnGB60AWKKjE6soPlvzz0ooAquu4+ZdvsRiFwemSMY9OuCDT599yJ4HQxRpgrKT8rH0I9KquHlbzb7cinIjg3EBuDwT2z7+/Xip4me/jilj+SFl3IVPHOMEfToRQArQyxxpDZlFjYDLL1B9c98/5zV2KIIMnBkIAZ8Y3Yp0caxJsQYAp1ABRRRkDrQAVRu7xuYLZPMlbjPZfrSXL3M8/2eFTGgGXcjg/Q/5/DHNdJIYbxIYU/fsDkvwxwQSD9c5H0NAFyCyEYDb8SbdpIweOOPfGKjWyjVvMuFWSUZxjq4HfHr/n0ow1pal0+eQAA9wPcj+eKILaaedLu6baVHyxjgD3/wA//qAHKjXyKx3xIDyASM+hBqzcO8Vu7QqGkCkhfXFRPepuKIhLZGB3Iz1qxHGGbzGQhunNAEVpG0oWaXkg7kzwRkc1cOaSigAooooAXNJRmigB1FJiloAKKKKACiiigAooooAKKKRjigAPSk6/4UmSeCOacowKAFooooAM0tU5zfrKTB9maLH3H3Bvz5/lUtncC7s4bgLt8xA2OuM0AT0UlLigBKKKKACikJpKAF6UZpKKAClxSUufWgAzSUwyYbFLkmgBaaaXHvSEY7UANpCcdqf1pp4oAYcgdKQ0/HOTSEdxQAwimMtTFcU0igCEM0ZyDxViOYPx3qIqKjZcUAXwaXNU45yDhvzqyrgjIoAeaSjNFACU1huUqeh4p+KSgBiIEUKOgpaXFJQAUlLSUAFFFFABRRRQAUhoxRigBKKKKACq1zmTNvuKeYnDgHrUUuoCG8jhk/dhuPmH3voehq9QBVSyjT5h8snVmTjJ9xVjFLSUANJCjJOAKCAy4PINBGRg8ioA32YhWP7onCn+6fSgBfssX90/maKnooAdJDHKrK6KwYbSCAQRRFEkMaxoMKvQU+loASiiqtxdmKQRRIGlYEgOSASOwPrQBYdtq8Y3HoCcZPpVNUe+g2ylkIYq4AwGAPaokhkuCLm8OEA4ix34wfb+f1wKkjlnu5kdN0UUbfMGH3uOh59z+XegCQTSLcJBFFlUGGLE5A+v+e9R3V7GsmIozJcKdmNp446+/wDn3qV7tjciCNDuB+YsMcccj8/0qS3tUtxkEs399gM49OKAIbSx8mRp5CfOcYZVclPrjpnn0q48azQvE4yrAqR9aWnCgCva2ogjUMxkdRt3t1qzRRQAtFJS0AFFJmloAMUUUUAKDzSmm0UALmlpCc0ZoAWkJxSZpc0ALRRR3oAKaSKdSYoAQDvTqKKACorqf7NayTBC+xS20dTUtULq8mW9t7a2RWZn/e71bCpgnIPQ+n40AR21uk2ovfQX/mwkbWiBDgHHQHt1zj6fStJVCqFUAKBgAcAU2NEjXCKqjOcAY5pwoAWiij+dABRSE0maAFzSUtGaAEooooAKQnFLSUAFBWlooAbg+tHIHrS80UANzjrR1peppcCgBjL6UYp9IRQAykNPxSYoAjIphHFSkZppFAEDJTVZkPH5VORkUwrQBLHMH9j6VKDVAqRyKljnI4f86ALlFMVgRTs0AFJilooAbQaWkoASiiigAooooAKKO9FACGopTIqExKrN6E4/Wpqo3Uyyyi0RlLsfm+fBGMHGPcUAFqZpmb7TFjaARuAIDc9DVymqoVQBwB0paACkpahuJ0trd5nztUZwO/sKAJKSqSC+iliDyLIkkhLDZyikE4z7cCrxoASiiigCeg0UUAJ2prorgBlDYIIyM4I70/FVJbeOO4a9/eFlQjYnOfw70AQSWslxJ5l24SNONiscHpyDx3/l2qMSvft5Nq2y3TKudpGR6eo4/mD60ohl1KTfMCkCn5FBBDj168/j68dM1oxxpFGERQqjsKACKMRRLGCSFGMk5NSUlHJGB1oAXrTvpQOBzye9FABSikooAWiimu6xozuwVVBJJOAKAB2CKWZgFHJJ4plpcx3drFcRHKSKGHOetZ9rfJq7yBIRJZB9qSgggsp549M9Pp9K0IYYLOBYokSKJTwBwBk/4mgCaiiigAJpAaQ06gApetZD3s+oX7WtlI0UUQYS3GwMNwK/KuT7nt2rWoAKKKKAFBzS0gpaADOaKTpRmgBaKTNLQBXuL23tpIY5pArzNsjXux9BVimPFG7KzorFc7SRkinZoASlFJRQA7NJmg0lABRRSUALQKKSgBaOtJS5oAQ0A0vXrSUALSUUUAFFLikzxQAUUuaSgAooooASkp1IaAGmkIp5ppoAYRTSKkppFAEZXionSpyKQigCurtGfl6elWY5g/saiZM9KiK45FAGhmlqlHcFeH/OrSuCMg5oAeaSjNFACGkp2KSgBKKKKACkPSkNRXKPLayohIZlIBBwc/WgAuJWjiLIAz54UkDIzzjNVNKWQxzPOgEokIHfjr1/HH4VFDdfa5ow6/u2cxrG4ycAHJPpzx/+utUAKAFGAOgHSgANJS0lAEcsixRPI2dqqWP0FYj6rDf6Q0oRpYZ/kdE/1kYYYXjrk8fn7VtzMqwuz4KhSTnkYrB0Rxqsr3k9oqmMKiybMLIQScj1A6A0AbNjHJFYwJM7vIEAYucnOO9WDRSUAFFJ+NFAE9FFFABSUppKACiiigCq9/CLn7NG6Pcc/uw4yDjuKtRoUXLnc56nt9BSqgUlsfMeCaU0ALRSUtABRRSd6AFzWPeTw6jfnSntvMA+Z33geWAAd2OvUgD159KtailzNELaABRMrK0vPyDHbFWoIEt4hGm7avTcxY/maAHRxrGDtAyTljgAscdT+VZbPHrEtzZzRTPab9qyxsUXK4yMqc5Dfy9qNTuYLrfpkN6Yb5wQm0HqACQSPYjP1HTir1lZw2NuIoYkiB+ZkTO3ceuKAJoo0hiSOPO1RgZJJ/M08mqOoaklgEXY0kr5IRFLEAYy2ACcDI6CmabaXEJnmuLySczOXVWXaqL2AGMj8aANECs/VLmOMQ25nkglncLFIqEjdkYBx6/41cnl8mFnyAR0Bxz7Dkc1n2OmAX8moSyyyFzuiilX/UZ6/ien0GKALdjZR2UO1OXbBc5JyQAABnoBjirVFFABRRRQAZpc0lFAC9KOO1FJQAuazZ7vUICJHgt1iMqoFV2Z2BYDPQAdc96sT3AW5jtcsrTo5VxjgjH68/pUWlxXkcLfbLtLk5IVkXHc8/rj8KANCgiikJoABSnmkzSZoAKKKKACkoooAKWkooAKKKKACiiigAooooAKzjqZ/tpNP8l1yrOXK5UjsAR0J5OD6U+a3QXOHvriN5j8iBwBwOQOPxpqGa01CG3Nw80cyOf3mNylcdMAZHP8qANCjtRRQAUUUUAFFFFACUEUtJQAmKbTzSGgBhGaaRT6KAIiKYVqYimEUAV2Smq7xHjp6VYIqNkoAnjnD/X0qUGs4qQcipY7kjh/zoAu0VGrgjNPoAMUlLRQA00ClpvSgBiwxLK0qxoJGGCwHJHvT6KKACkNMlmjgTfK6ovqxwKy9Z1iG102Vobgec0ReLbyGx2z0BOMDNAEWo3325VsbGUrPI5UkhlwBnLA45GVx+Na8USwwpEnCIoUd+AKr2dtEP8ASlikikmUFkc/dzyRjoOTzirlACVFcXMNrGJJpAikhcn1NS9qoX2nG6hmjSUKsqkMki7157gdjQBmnxBchiPs0HH/AE1P/wATRWxHZ2kUSRiGPCKF+6O1FAF/vR2oooAKSiigApy9aKKAFpO9FFABSiiigBDQKKKAFqrqc72ml3NxFjfHEzLkZGcGiigCh4cVbyxXU5lBu5d6u4GMge3QdBnHoK2e1FFAGBohfUNQlvp5H82OZrZVU4XZsBxj6810FFFAGQLdNS1OdrsCWK1bMcLKCmdq8nIznk9616KKAFpBRRQAtFFFABRRRQAUUUUAZ0DLqV1d21zGrJDNhCMgjhec+vJq/FBHboIIkCRqvAHaiigB1FFFABQaKKAA0lFFABRRRQAUCiigAooooAO9FFFABQKKKAKGpqsr2Vs6KyT3OxiRyMKzAg9jkDmroRSwYqCy/KGPUCiigB1FFFABRRRQAUd6KKAEooooAKSiigBKSiigBDTTRRQA002iigBjqKheiigAhkZZNoPHpV8dKKKAHUUUUAJRRRQA2g9aKKAKd+gKCXJDwkshHY4NZul2sd7punzylvMyMlTjd827n8eaKKAN2kNFFAFO7upIJLVUC4lk2tkdvardFFACUUUUAf/Z", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoIAAAIkCAIAAAAF192xAAEAAElEQVR4AWJMSkpiY2Pj4OBgYWFhZmZmYmJiZWVlYWFhYGD49evX169fv3379uvXr58/f3769Onz588vX778DAa/fv369+/f379/GRkZmZiYGBkZGbCBf//+QYQhCiAkAwMDBwcHRBfE9v///3Nzc0uBgaioKBcXFxMTE9xVnJycTGDw69evb9++MTMzc3NzMzMz//r16/3798+ePXv79i0fH5+KioqMjAwTE9O3b98gellYWP7////79+8fP358/fr1+/fvTExMf//+/f79+/v37z9+/Pjnzx9WVlZ2dvYfP358//79w4cPnz59+v79O8TZjIyM/8GAhYWFg4ODmZn5379/rKysHBwcDAwMTExMP378+PDhw/fv3xkYGP78+fPjxw9+fn5BQUEuLq7fYMDGxsbKyvr//38WFhYmJiYI9y8YsLOzc3NzQ5zHyMjICQZsbGxgGuTfP3/+/P37l5WVlZ+fn4+Pj42N7f///5AAZweDf//+/fz5E+Kknz9/Qiz6+/cvCwsLGxsbxDufP39++/btr1+/GBkZv3z58gEM3oPBnz9/GBgYmJmZGRkZ//37x8jICIl3SHyhkf///4eIQGIQQjIwMBAUh+iCk3CNcBEIA5c4RBaThNgLjhwQAXHJ////IREHkYUIQvTCxUGqwRgiy8TEBGGAxUB+hOj99+8fMgMuCzcHYixEDSQxMIIBAwMDmAYREDZEJcSDEJKBgQGSMiFScMMhXGRdEPP////PzMwMl0VW8PfvX2RxiF8g0YosDjEH4k64ONwxEANBLgZjcFYD5Wh4woDkcYg4JNtC0iFYOSj7QwQhBkIEIVrgbAgXktgg1kFKG4iZkNwBYTODAQsLCyMjI5gJIiAmMzAwQOIF4h2IpRAzubm5IcmelZUVEqcQq9HMgVgESepwJ0FcAjEHIggxGRKY/8Dg58+ff//+/fXr1w8w+Pv3LxMTEzxS0NRD3AkPZ2QGvEiBpFV41EPSFUQlRBBOQpwBl4Iw4AECCQoICZHCT0JUQkhkd8INhDOwmgMPW0gkQgIZwoaoh2uHMP7//4+sBs6GKIZ7De4eNAacCymgkHUhhw+mOXCVEGdASAYGBki6hTsYLg5XD7ERQsKVQbhoNsK1IDMgKpFFIGxIuoW4ExIIkDQDcQC06oUohQQZJDPA8wCEy8zMzAoGkIqEhYUFkv8hqQdiFsQQNBISbWiCkEqLmZkZbiOkovr27duPHz9+/foFsQUSCpCMwc7ODsktEP/8////z58/v3///vr16+/fvyGJG9JuYGJi+v79O6TigaQzeP759evXnz9/4K0HdnZ2RkZGSLUKMYGDg+PHjx/gCvQ3xPZ///5B8hukSIIIMjMzQ7I3AwMDDw8PIyPjr1+//v//z87OzsnJycbGBqnsf//+Da96ITkWYhSkCGYDg2/fvkHUQGpfNjY2bm5uSC0OiS1IqwjSVoAY+///f0ioQnLyv3//fv/+DSqrwOEJkYVEHxsbGwsYQCKLmZkZbCdUEKIdkjIgqQctrWPGGlwEEnFw7gAyIGkP4n5IUoG7Dc6AOw85I0G0QLwPMQSuDFJdQRQzMTFBGBASUyVEF0FxuAIIA5JxILbDSUjqghiIRuKKGohpyIohKRkiApdFY0C4WElIfoeEJLw6hxQZcClI6oK4FqISklYhbIg4XAtcCpJ/0bjwHAExHMKFJGaILci6IFEADy6IdZDqk52dHbkahtvCysoKVwYxFuIwiC6IFXCr4bogIpDSA+IdiPp///5BDIEkLUiZgBzgkEQFISFRgEZCvAAh4VIQ0yBcCBvNBLgVcAZcMYRBIYmcEggaBVcMCS5k9RApSIhBxJFF4GyIFFVIXGaiBSAkVOEOw6UL7iTkcIYYBYkyCBuujCQG3Ey4Y+DaodUwsrMgOYGJienfv3+QLjKk1oHUBOBuGDsbG9vfv38hJT7EZRASbi7cw/AKA1mKgYHh9+/fkGoA7r3///9/+vQJ0meF9GXRtEC4//79+wUGf//+/fnz59evXyHuZGRk/Pr166tXr/7////jxw9IFoIUdhCLwF1QkJv//PkD6YJDMiSkFoRkM0i/+efPn3/+/IEEFrgWY2FnZ2diYoIIwiszSMn479+/P3/+/Pr1i4mJiZOTk4uLi5WV9e/fv5D+N8QuSKBB+jTgxgwrvFnz48cPyAgEGxsbOzs7BxhA2geQ4gZeDEGUMTMz//79G1L1QlwI8SkrKyskfCBciBSkhcHGxgZxOYQLtoED0reGxAI8fUDaHHBzkBnwFAIxGeI2uCCySggblxQucYguSki4yXAGPE1CEirEzRASIoVGQpIiJDQgJEQETsKdB9EIMQouCLEXs2yC5wVkBsQECIlmDsRAiGkQNkQBPOQhboMoQCbhiiEMZCk4G9kQiFMhJMRtkBoLTkJ67RApeGaBGAXJ1xC9cBKiHsJFVg+v7SC5DKIAkrAhtRqEhCiDsCEVIUQNxCiIpyAkxBcQd0JUcnJyQqphSJEFkYI0siFseLEGMQ3iBogUnIT4FC4F4cLbYZAS7+/fv/BSBZIw4E6CM+DRChFBJtG0IHMhypAjFyICiX1IsEM8DhFBloWLQJTBpTAZaOZD1ENIiH8hWuAiEC6chIijBRFWjRCVcI0UMrCaBvELssmYIsiyeNwJjzK4CRAGRBw5miAiaMYSyYXrRTYQlGsgiRISixBFkMwAISFJHJKCIdUwBwcHZPwT0rPEaj1ykCGzIbYga4GMskJ6qP////8KBpD+KCsrK3g0CDRYCmFAxm/hVS9ypxbSN/306dP79+/Bg0Y/ICYzMjJC+n9wb0LqJEg1DBnUheQrSCUHqS8hI1eQWhMiAqlZIR1xFhYWSA8VMiwPqfb+/PnDyMgIaT38//8fMnj++fPn379/s7ODWi08PDwQA1lZWTk5OVlZQTUxZCwa4gBIjQgpd/7+/QsvsCD9/u/fv////5+NjQ3SgoFYB1EDKSYg/V2IYyABBbEO4v3fv3//+fOHmZkZ0l9nZ2dnZWX9AwbwSIcURhAuchwhsyGxibUsQFZGBhuXvRAbcRkIySpwNXCHQVIaRBY578HNgWiBWwrJFRAuhIS0sSDikGIXohcyhANhQ1SisSEmQ0iIMyAKIM5A1oImC1GGpgAiCCEhZsJJCANSHUIMhyiDsCHmwItLCANuIySu4SREC0QNhITnF0jzDlkQYi9kdAciDiEhhkDUQ7TDSw8GBgbIWDEkxULshSR1SDkDqTsh6iFsiEpIlQw3H2IF3JsQ9RCVkKwHGf6BiMNJiHUQEiIIGe2AmAY3HOIvOAlhQBIAJNwgfV94UQAvtSCycFdBuBDtyIIQNiRe4MZC3ICcbiHKkA2By8IZEFm4SggDktrx2wtXCWHADYTogpAQKWQ2RARCIgcXnA3xBUQBMhvZSRADISRcJakMiHa4s5GDERKwaAZC1KM5CaIGLoXMhRgCcTZEF5oVEAUQLVhJiLHIyiBsuJlwXRBxCBc0BwzpLEL4EFvhKiCpFpKCIX1iyHAxJKtAigCIFoh2iCMgJMQbEDaEhAcfJBtAxosgbEjC+vXr1/fv3yGdUUjnFaIRUg7C+50/fvyAVCqQDignJydkuvfDhw/v3r37+PHjjx+gavjfv3/s7OwCAgJ8fHyQag/SnoDUppA0BKmxfvz4AZlYhVSxkFoWMk7Ow8MDmRWGDHRD6jZIGQQf64bMG0EqPMj0A2RaFzJb/O3bN8j8LsRGJiYmFhZQ95qRkfHv379cXFyQofj////Dp8AhY1+QYGdiYoJUol+/foX0pCHVNqTdAAlDiHpIrEHiGzIFAukfsLOzQ1oMkCIP0u1mY2P7/fs3ZCwdIg6xDl6dQyIUjYTHIJyBpmCguJB0AklFeNwACRy4YjgDEnSQlAxhIxsFaehAxCEkxAo4G6IRIgg3E8KFq4Fw4SREGYSECyJbCsk+cClIXoMkIYguCAlJinDFEEGIOXDFEAZEDcQ9kLiGk/A8CFEJJyGD0hAuvGaFWAGxFyIFJxkYGNjY2CBcSNEBISFzsZA6FW4OJDNCrICXJ5BCBkJC9EJqWYilkNyH7AWIIUxMTJBBabg5EL1ogYbsX4j7IcELMRwSPrhEIOohk3GQmhjSOYY0fCG64CQkmcG5uBhwe5GthiuGyGLNaMiCcDacATeBIAOSsOHKIDYik3ApOAMiC3EwJKIhbGTb4WogUshcuDlkMODmIAcvpGqAm4asBpkNUQAXgWQQiCAyCTcZzoB4AZ7k4BqRjUI2AcKGa4dohAhCSDQRiDnQKV7IEDSkuQfpesJzCyTzQDIAZDwWUkvBFUAcCrEDYihy9EByAlwNRAGEC2m6QlYhQapGBgaG79+/Q6aH2dnZ4X0+SN0GqYb//v0LqT8gvXPIYi7IsPD379/fvn375s2bHz9+QAyErOSCjPH+//+flZX158+fkKoXwoAUoL9+/YI4CbIUi52dHdI3hVRjkD4oJAIg2Ruyfg0ygv3169dfv35BQgbSVYIENGQEGNLh/vLly+fPnyHLryDpBh5EkJ43pGaFrLeCSEEMgQT+v3//IAvlIMvWIILMzMyQggASd5AcBSmzIH6HlFB///6FVMMQH0EKREif+Pfv3z9//oR4HELCYwcSm8gkPJshMyC6kJXB2RD3w7kEGbjU43ESxEyIAoh2NDbcqRCVEBKiBsKGuB+iF5IS4GxIRoILwhlwjRCVkFQBJ+GycAYkuiEWQQQhDoDEMkQEWRZiLCRzwcXhg+oQXWgkxBCIIFwLnAG3DlkEohhCQsSRbUQWh6QoSAUG779CuBBlEDZEO3wQGCIIUQ+RglSQEBG4LKRug1S68FQNUQnpPUOyG7wMgZRC8GiFpHCImZB2NoQNcRiEDQlPrIEACTeI97GyIYIQvfD8BRml+/v3L6SpDclrEFuQ1SOLQMQhJMQ0CAkRgTgA7ikIA5mEKIOIQFIaxINwNjIDohiTRHYPsu1wNhoDzkUzCiIOJ+EugSiDiEN8BBGBk3ApuAhJDIh2CAn3C4QLMQfOhjCQSazugeiCBB1EAcRYSMaHiMDVQLgQBRBBeJqEcOEkRA2EhAhC2BD3QETglsIZ0GoY0h+CVMCQFAYZXILkEEhxD8knkA4ZZMYUktAhMQEpbiBsCAlxOiSnQUQg2Q8iDhkuhtsFGUOGrK76+fPnr1+/fv/+DVn0C+k+QnRB7IUHAcTZkPW9jIyMkN4nZFAa0pn+//8/Hx/fz58/IX1HSIkAqSx//PgBCRrIuqd///6xsbExMzNzcnJycHBA5l8ha6kgwQJxD8SEf//+ff78GWLdt2/ffv/+DdELmYKFeJaDg+Pfv3+QJgWkLuTh4YHMQ0N6nBBlkJKFhYUFMhIA6fKysLBA2hwQ6/7+/fv169dPnz5B+vdcYADpdkBKH8i8NSR4IckIMqYKiT5INQyZLwfNQ4DXUXNxcUGWfUIqGEiCgOiCpxVkBkQZJMTgJQKyAjQ2JPGhCdKOC3EYxHw4G+4G/A6GhBiEhGiBqId4GY2EpHNIcEGsg2uBcLGScCfBGfA0DEnYaCQk3uGKIWZCEgwaCbEdWRBiFJpeiCByrxcuAlEJqW4hghARCAkRh1SHkBIA4jaIOCQDQmQh4pDpIYgIpHyAi0MyMoSLXINCMjXEcEiKhaycgKRniFHwAIeHG0QWogvZTIizIZ1sOBviL0gwIpMQBRASogbChoQqRCVEBMKGJwZIZwA8qwNaRAIRh5gAUQlPJxAunIQUVhCVkGQG9xpEDSQdIlsKUQARgWtBVgw3DaISIoWLhJgDIdHUQAQhJDyc0dTAufAkB7EdWRzChpgDYVOdhBgOb57C3QARx8WFhw88GOEMiBZIvEOiAOJmiIFoIsi6IMrgJMQEOBcrA1k7RD2oGobYAUlJkAFqSBqC5DFIQocs0IdkJIgIPCNB1vVAjIPHDdz18GoYnlUgaiBDvpBwgdR2kICAVMCQlibETIhFkC4pZFAI0nmFdEAhzkb2LSR/QkyA9JshvVWIdyCD6pCqF6ISUodBbIHMnkL2L0FGev/8+QPpbkKqYcjY9b9//75+/fr///+fYACpHSFdZEjvFhJQbGxskKru58+fnz9/htTxkI4vJCYg49KQQuf379/fv3///PkzpEcOaZdArIMs+Pry5QtkRTRk5hjSPIdYxMjI+P37d4h3IEMa8M1IEMMhrQRIKEFKOsiMNaQwhYQh3EkQZVhJiBqsUmiCkLhDE8TDhSQYPAqIlIIXH3CnwhloJkBshCR1ZCmIekhbDR4yyAxkxXA2xDRIeoYLolV7kBQOkYWoxyTRsglEMcRYSMaBkBBl8BFRiCCchNsL0Y4cF5D8CBGH2A5hw8MNYgjcqRAuPHfAa1Z4dQsRgZCQLAZxG0QEQkLE4eUGpGaFcCF1MKQHDBeBJFGILohpkBDA5SpIDoWnf0gMQmyB+A6ThIcJJBAg3oSEG0Q7RAFcFuIASOhByi6IayHKIMkDYgu8OIVw0UiIgRDT4GxIOQDhQgzE1AURhxgODwc0ZRBjMQUJikCsxmMsmgmQ4ILogpAQBXA2nAERpwoJNxMeCJD4ghgOcRKcDQ8uuAiEAQkiZBPg4hDvQzTCBSGWQpIERBDChohDRMgg4bZAzAHNDUPyGLz4hlSKkKoLMgoKWZcL6b+ysLBwc3NDOqyQ5cGQziLEOEjSh+QcSMaGJFZIcQ/xJyS3QNRApjYh3oAUiJCK9vv375ycnL9//4Y0Hjk5OSHm/Pz5E6Idef8SZOKTlZWVl5eXm5sbMjcMMQ2ysRgyawvpOEImlVlYWHh5eVlYWCAe+ffvn5iYGGQ5NLybC9lADG+XMDIyQuafIPUxJyfnx48fv337BpkPgwybQwasIDUoZMgaYj58UTcnJycvLy9cMRcXF2SCGVKnQubFv337Bun4Qha2sLGxQRaHQ+pydnZ2YWFhXl5eiGsh69QgXWoIGyIOKaD//PkDL+Yg25Qhg9vc3NyQEObm5oYYDgku5NYlJFKQyxdI9EHE4SQkPeFK1nBlaAx4noEkG0jag+QQOAlhQBRAtEPYEBIigoeEK4MzsCqGpFJMKcjkOrI4xI+Q5iDE18gkZIQDkkUhuiD2QtI5sggkGHHZC9EFUQ8nIVMJEC4k6CDKIHkBqzhEAcSFyFogGQqiBZOEq4QwIGMnkPIBQkIqSEhmhDQBIVkeIgKppeDikHoULgVRCalxIa1VSJ6CKIMnVLgySEBBPAJ3KiTcIIJwEr56EaIFTkKSEEQvRDFcCmIOnIvJgKuHa4dkUkgegS/vgLTFIcu1IKUcJBtCggJuLNw0SIxAzEQmIeohspCUBmFDMibcI/AEBnEMRBYiCE9pkDwL0Q63Au4ANAaucIArg5uAzIAkD2Q1cHOQlcG9j+wYCBtZL0QZRBxCgoRQMZr5cO2QEEBVC+KhqQcJgTHcfIgJEBIevBCXgBVCCbh6iBSci2YvXByiDW4sRBekNIaz4fELiSlQLoNog7gDIgohIeKQ4IbnQEgzEJ5hIHkJkiAgdkDUQ0oHSEBAch0ka0HMhLAhKiFJB+IsuDmQagySsuG+RfYYpBEEcRVk5fDPnz8hC53guiDmQxYtf/369fPnz5CVzJDaFzI5CqmZIKWGgIAApIv8//9/Hh4eTk7O79+/Q0a2ISPnEFfBq0ZIlQnZsgyZpYZkQkh8QEhImECa6pDeKicnJ2RwGLJUG9LigdT0kHlryFA5pAqHDDNwcnKys7NDRiMgJRpkThfifchiNHgehpRokJCHLLGGuApSekLEISEJGRWAxCAk9uGzXJCggyiDJAZIPodEE8RTEA9CRCAkmjgkrjFJiLEQG+EkJELhJsDVwLXDReAMuBSEAXEPxASICIUkJKzg3kd2KpwNtxTSDIJwISTEnRAS4hI4G8KAkBApZBIS+BARuBq4IIQBEUcjIVLwEIC7H2IURBxZC0QcIgKXhRiCTEKSGSQXQ1IRZGkIpJsLISH5Hc6GKINkc0iKZWZm5uDggCiDGwVPmcgqIQkS0uyAOwPiVEiwQxyMTEIcD1cDYUBSLIQNVwDRBReEiyMzkGWR2RDHQyIXUhRARqogHoSYDJHFahqae5BNJokNz2uQlImmF+IAiGMgwQV3DLID4ArQGHAumrFoXMx4QVNAPBfiYLhTQSwSMZFuJmgqqeYgq0cOW7iPcNkIj0GIAkjzHdQbhlQDcHMhXEjJDikfIfUuRAMrKytkqS1kVBOy8AdSWUKiB5KpICRkyQYkJ0PKBYiBEDYkZUN0wVMVZMwWvDEYND3Mzs4OqR4gDQpIjYg8JfPnzx/IvOmXL1/ev38P6e39+fMHsgKLkZERUqX9+PEDMjULsQjiMG5ubg4ODvi5GZCp3N+/f/Pw8HBxcX3+/BlS10KSMjx84FUdpA0B9x3E5ZDAhawCgwywQ3rPEPHPnz/z8fFBVqVBuq2MjIyQrcPwk0Mgfvzw4QPEC9zc3IKCgpD9GCwsLH/+/Pn8+TM7OzukSQRZVQ5ZiQZphkO6cZAmBWRSH+JZyGAAxM2QU8wgx6RAikWIH+HxCHEtMokreeEShwcXsiEQWyAiJGmEm4bMgJsAyQZwLsR8Ikm4gWjqIeIQMyFpBlJYQMQhiiGyyGxkEWSVcI/DBeEMiHY4CRGHkHBdEFmIICS/4GdDchnEwRC9cKMgGtG4cDMhWRKeeSFJHVKtQgoBSPaHpBlIyofrhVTDkGoJWQGEzcXFBTEcogCiGGI+RBxiKYRErobhToWELYSEC0J8h1a0QQQhJMS/EBJZFy4RuDhEO5yEiEOaDpCAhaQ6yLJKyKIQiDjEFog7IQ6D6IWIwA0klQExCtlwuAlw8yEMNHGIFmQpCBuThKiEaIfIQthoJCTG4YqJ8Rfc8XDFeBjwYIRYAVGJxz0gDRgYogtDGKcAfvPh7oczIFUYsi3IbFzWwLUjew3aG4aXMnDNEBMhJCSrQCoAyEEZkKwIGemF7NWBDNRAogeSweDZCZ7rIP6EqIH4AZL9ICKQoIe4BFKH/fz5E1KBQaolSNsTUqdC9g5BtH/+/Bl8PuMHyLmbkAlUyLQupDCCdLIhi48gvoCczfn//38ODg4+Pj5IdxNysBdkXpYbDCCL1CBD8ZAxcEjGg6iEdFUh6znhY6qQtguksQyvFCGD9pC+6bdv3758+QI5LBMSIBDFkJFtDg4OSMUJGbWGHBMGOUETcjIXpM0BWcYF6U9DQh5SxkHiGFKVQqpb+DovyAwxvCaGDOJBtkRDdklB7IXEOEQXZCQAYhokYUBkIbYgJyOs4pAohmjESsLjHSILMQRiLEQEEj5obDRBiC6Ik5ClILqoSEIMh4Q2xFiI1RA2pI0ISR4QcYh6uB8hXFy+gxuCrACZjawdzUyIFLIgXAS/eyBaICQkp0DYkMoVkn4geR+tGoakIni+huR0iC6ISggJ6ddCKm/IMg6ImRCNEF2QBiLEXggJUQNZYAUJAYh34EEEychwLpyBHOwQjRApiHZkElkcjQ1xA0QQKwkpcyCmQYIXcq4tpAkO6TBADIHIYhoC0YspDnE/pjhEPUQWks4hvoOIoLEhlkKkIBohCuDGYgpCRJBJiGKICISNRkI8CBeEuAqXeog4xEkQLchsNBFI+Q8RhJMQEyAkXJAgA9MWiBZc5uAqryDmQAIWUklBTEAuGOHiEMUQi9BIiC64AnigQexF9IbhGQOiAW4KPCtCcggkF0FqYsiqaciRjRBZiCHwmhieaiEMiJkQNRCPQcQhNsKdCKmG4R1iyBgsDw8PZMAZvjcJUnO8ffv248ePHz58+PXrFyQzQGa/INkDYiakJoPUvnx8fJBKDlLzQepXSPcUMjrNwcHBw8PDy8vLxcUFr/AgjQDIsi9IdxNSk0ECEZJ6ILubIEPQv3+DzsKEqIeU3ZAxBsjpm1++fIE0oiFzyZCsAimqIC0PBgYGyGlc//794+bmFhAQEBQUhMxqQ+yC5ARIuEHKUIghkKCDhCrERsgYBqjBBd6sDBldgMwZs7GxcXFxQdoHEO2Q9AQZ4f/69SskwCExBfEpJAYpISGmQaxD9gVasoZbAYlBuC64OMTvEBJiGkQKlzkQWVJJeG6BaIQ4GM6GMJBJSOxA3ANxGzIJEUdWj8mGqIeIQ9hoJNwNEHHkkIGIQPRihgNEI6SlCEkhcBKehCB5E1KnQtRD+rKQmhWS9+FqIPkFIgivbiGVNJwL1whZ0gWxEVI+QMyHzLVDQgbifgiJ7C+IjyCJEzkdQtIGRBZiGpwNZ0BMg3MhFkGMgkvBGRBlWEm4XRCLIEEEOb8WUp5AFtCgtRLgJsMZWA0nKAhJhxDHw10C4cL14hKHOBiuDO4SCANCQmQhbGQSIo5JQtRAxJHthYgQScI1whlEaqSFMmQfoZkPT4pwBiTkIVy44+EMNO1oXIhFaIpBNx/Ayw5I2oJkM0hWgVSukDEiuAjkjAvI0PSPHz8gE5yQyIbohZsDEYSTEAdB3AHJkBD1EBFI3oD4ENIhg3QHf/78Cbk7AaIdQkISPWTbAKRehOR8+G5duD8hLW74UmHIIY6QnANZRw0ZUIKsloJU7ZD10lxcXNzc3JBqDOIeyAQtpAkiLCwMqfV//fr1+fPnr1+/QrqPkEYAPNtAvAOpmyGLb799+/bx48cvX74ICAhAxqUhO6ThvoD0jzk5OSGnjnBycgoKCvLw8ECOLYPYAh+jhkQN3BbIyAFkvBoSApByAbJfC+JHBgYGyMIxVlZWbm5uyMYnSN8FMtH+/fv3jx8/QqIDPtoBsQIS+PD4gngTmQtXABeEiKCRyLKQ1AxXAHE2hIREE1wKrguSeCDiyKkLwoaIU4uEW4ppILIUJHLhzoYEF3yYBMKFk5CwxTQQWQHccAgD7jUIAyKIaQJEHBIvcNMgwQXJy8jVITz3wXXBVUIUQ/IOWnULqWghM8SQogAy1gLPgPCKGVIOwCtyiMshJkNIiHUQX0DcAHczckhCFEBIuDLkZANp6cL1EsnArwxiHTIJsRHiAEjLHtIWh6RSSFcYUphAfArRC1EPtwvOhcjCSTz+hUihxSkkX0O0w6XgLoRrgdgLtxTCgJBwvVgZyGogCuAkshTcImRBuEqI7RBXwUeMkBM/RDumCLJpEDaEBClFxXATUIVx8nCZg1MD+KYWTFsgIpCqE04SNAQeU5CQgYQJqI8ECQKIoZBsA6luIWuYIbkFcocPRByiBlIVQcalIScxQaoriOmQVIhJQlwJz3uQUgBCQpwBaZVD3AoZ1IXM8kJGoSE1EMQKiMMgJ08hL5CBd0C/fv0KMQ3Sy+Tm5oasc4askGJkZPzw4QMjI+OnT58gp4hAFidDKn7Iai/IKnFICwCyxoSdnR28ZZeLnZ1dSEgIMtr848eP9+/fv3z58sOHD5A7ISBNBMgENjxYIFPpkLlqSPddWFiYg4MDMjIMqf8gm6Mg53JA6kjIimjIAZyQAW3ITiTI8mZILEA2XHFyckJ2TkP62ZAwgQQ4JHIh1S0k4iEdZUgjADIqAClVGRgYIDdNQcKEhYUF0nGH+AKegtEYaFxIBMEFIW7AJCFugIhD0jEkDUDYyCREDcRACAkZtIQkMEhKgJAQlSSRcAPRdOEShwQmRBZCQvwL0Q6RhbDhsnAFyCLIKiHqISSyGjgbmYHMhmhBNh8SJpDwgYhDshsk80KqVYgIJN9Bwg3ZTLgIxChIJQqpYiEkJG1ANi9Akg2kywuRhdTBEBJSVkDYENMgJLIVkF47xAEQEu5siGIIF5I2IC6Hs5HDENJLRjYBHjhwBkQWQqIJwm1Bk4UrgyiAOwlS8UNat5BqGJLfIWUCRDGcRGYgG0gkG1IeQgxB9jKkeoPLIpsG9wXEwRAuhISYA1EMF0HmQgQhJEQck4TIIjsGUw1cBM2FEF0QEhKVEJVwEYggxAoIiexmiGI4iawLLkgGA5c5cHGsDORiCsKGOxjTDcjhAGdD1IMGpSHehngVnjkhvTpIhoEU9JCcDM9akFwHISEVJDzKIUYjcyFsiMsgbEiOglsHkYL7BMKAlNSQqhFyMBbkVA2ICRC9kFO0IIPGkMoJ0iCFiEBSKqSwgMhCNllB1EDuQwRPBHNDTIZ4BHKSBmQVNKSlz8XFxc/PLyQkxM/Pz83NzcrKClEP6e5AbjZ8+fLlly9fIHdLQOIMElaQAgJS40JWgX379u3z58/fvn2DdEYhgQxpQEACGeJ9yOnTzMzMkHH4d+/evX37FlLCwitsSKsccoEExDqIFyA9GBYWFogvIDMLkHVbkBNFIGvrIFogboMsP4E0CyBuhicJyFozCBcSU5AohougcSFqsJKQqXqIByFlFoQNqekhXQoICRGHD6JCTINbBIlZiGkQ10JSBVwBRD3ZJMRMZO0QkyHVBprHIckAEukQEpLNIIkcrhiZATcH2Qq4AohdcC48h6IphiuA+B3CheiFuB/iAEhFCMkvkN4whA0n4a6FmwA3EKIX0uuFTLtAqmHIqkBIJQ1XA0m9EC7ccAgXHiyQ1A4xH0JCPAVxNoSENKAhsnARSCBAYhzuYLixEGUQEuILiLFwBRAuXAEaF00cIotMQsITbjLcd5D2LqQYhHgfkm4hBkJIuC5kA0liQ/yLrAWS/tFE0ASRAxDiEgiJ6R5c4sjmQ9hwlciGQAIZogCNxHQ5JB4hyuAa4QyI+KAl4e6EMyDegUQ6Wvjj8gVymEDKN+igNLyYhqQ2yLgopPaC9J8ge2YgU4+Q/iUnJydkuBiiBZI94O6AlKqQLjXcoZC0i5w4IK5HznWQpiXEom/fvkGWBH/9+vXjx4+Q/hzEVZBWAqSOhNw2ATl4GeLOv3//fvr0CW4dxEzIqC9kOvbz58/v3r3j4+MTEBD49u3bixcvIBUzpAKA+AhiIDMzs7i4uKysrJCQEGTTxY8fPz5//vzlyxfICDYkECDKIC589eoVZHsSDw8PZLEYZCQcUmVCOrvv37///PmzqKgoZOskpLLk4uKCXKLMy8sLGQb/8eMH5Eivjx8/fvr0CX47MqQ18Pfv3w8fPvz580dYWPjPnz8cHByQJWMQv0AaMZB4geQZSOxAlqH9////27dvkDCBV8asrKyQM64hUQy5cvHt27dfvnyB3LcBGZaHjLFDTIOEFdYEB8mxkDSHXONCHAYRgQzsw5MBhAEnIavhIOkHbgXEWEiRB4liSJsDMlgKGaxDTmMQjbjcCTENogaZxCWO1RxIUEC0QEhIgEPyDsRYNHF4vMBlIW6GZG+4YrgssjhEJUQKUqvBwwE5rCD1H1wBhAtJohAT4CTEtciWQvp5kPwFr30ha0Eg1TBkKAVePUMmNSC9bYjD4IZDChNI9Q8XhKiBhBuEDbcdwkALZ4ggJC0hq4eIQ9wPEUcjIcUcmiAe9ZgqISKYzSZI1Qs5DhayjRjSRIbkFEiwQ/RC4g4SR5BVIxBxZBKiBi4C9xckL8CjFa4MogAuCylC4doxPYgWnnCVcHGIgXCNcC5cJYSBHAUQxRAnQQ4ehoggk5DRO7j7IVKQ40ogBkIA3DpICoEIIpMQW5BFIGyIRggJUQMJE8gkEUQNhITIQlTC3QMRhHMhKjFJiDKIychsiEqImRASnk7gyiCGQ2Th3kfWCB2UhvscrhSuCCIFiSp4NoaUwpARacj2U/jCIohGiGVwNpwBNw1iEaSpDkmdkK4YRATSt4CQkOlbBgYGyEEZkDoYUuBCIhgyGwoZEYJ0KCElO9xASFEIEYTUPZAKANI1hJxLBdEO6XBDbhuEjPdyc3MrKyuLiYlBZoLfvn378uXLt2/fQvYywc/aZGZm5ufnh8wlv3v3DnKZEmQbEmSF89+/fyFLw75///7t2zdIzQ05dQRyTAqk/oNUcpCBa/hkM2Sil4ODA7IcGhLs8OoW4ub///9D+uiQOIJ4GTJuBkkWkJoP0tiCqIEEOySJQJIXJCdD1oeDUgYL6BJMyOw7ZMwcEoaQuINEMSRC4fGLxoAkREjLBjLFAHEGhITEAoSEqISTEPdAuJC0B2FDzIc4AOI7iC8gaiDicDay25C1QwyhEQlxAyRwkK2AiENIiDgkXiDhDxeHdK0gCtAMgaiBewrOgMQapCEFKfohKiFVAqSxAlEMiXdItQTJaHD1EC0QLoSE16+QSheSHSCCkGUWkGoVUhVB+sQQjZjhDzEc4imIS5BF8NTEEC1oJLJeNCmSuLjMwSWOy3BIcQ8JGUjTGdLahqRhZNMgyR6XOfAkisaAmAPRBZGCkBARTBJuIyYDUzFchDzFEJdA9CKTkFQNNxzOhaiHiEPUQ9jIAFkcmY2sBpmNrAbeRIAIQki4pXBZZO3EsCEmQCICwoYUsBC9EBEICcmMEDbEOjgJUQzP1BC3QUhQYYssDReFCEJKbXjuggwOQ1rBkOMbITfXQlYYQapAiEYICclycDakxISXC/BiFF46wC2CtJUgJOQwyH///n358gXSKoc0ySGVNGQpL2QpNaTzCi/0IdUwJAVAFgNDFEBabZBmO6T2hch++/bt+/fvf/78+f79Ozs7Oz8/v5iYmIyMjJycHORsy2fPnt29e/fZs2eQfjBkmy+k3IT0sCEeFBcX//btG+QyBlZWVmlpaVFRUXgH9NOnT0+ePHnx4gUzM/PXr1/fvXsnJSUFiTaIll+/fn39+vXLly+QA6shXoNc8cTNzQ3pc0DyPPyal8+fP//48UNAQICFhYWHhwdSJkKqN0ggQPI/ZLMZJAwhx5NB4gIuCykQIcUrZC4c0nOC9JghnoJUHpBCHBKDaGkGEt3wZAoxHFJ/w0mILEQKEl+QEIDohSR3SMShiUC4kHQFabJAPAgv+P79+wdZIQ9J7hC3IRsOMYESEmImHhPgCiAMZBLiKoheeG8YrgDiLzgXogzChWuEcJFVQnI+ciaCV4SQuhmiGMKGJFGICCT24SLwahsy0QupdyHtXUh6g9e4kKYw3BCI1ZDMC0kYWB2J6QVIFENci+xZiHZkEQgbQiKrh4hASFyxjGwaRCWEJFUcoguThDRr4LZDegWQo7UgRTDc43A1mIZAggJOIjMgOQ6iBdkE/O6Hy2IyIEbBSUwFcBG4GmQGXBZSXMCdBBdHdjw8LyObAGFDwg3Cxg8gViCbj6keIgtRCZGFiEDYcCehCcJl4XGELAJhQ8If4hGI+RASIg5RAxGBsJHTJyQBQCyFqIHkGjgJ0QKthiGZB5IhISRcBJLHIFxI/QcZ8ITkTEjPDHJyMmS9NKRURfMVxB0QQyDFAaQSRRaBWwQp3CGehHTFIEvAIOdUQGQhw1yQDUiQVVEQWciAJMRvkFFrSEBAShyILsi2H0jxDXEYRD1kDw9k+BoywqympiYvL//37993797dv3//zp07L168+PfvHw8PDz8/v4CAAPzUTMis858/fyDHcv39+xdSZYqJiamrq8vLy/Py8kKO4fzx48fLly+fPXv29etXyKW/8OF3yLqtb2Dw8+dPyLIsSG3KwMDAyckJGdmGjAFAroiAHCUNOWPk9evXkLlkSDRBtm9BQhgS2pCTqCHV8K9fvyClKqQtD7EFktQglS6kxwNpCX3//v33799cXFyQHi0kauApCRKGkESGTEJG7CFaIGUTxBZICoHYBSfhCQbZBHjmQWbAVUIqdUhZADETEteQ4QeIOZCYhbgQQkJEkElqiWM1ExJKcDcj2wVJn3B3QlRCvAAxCiKCphciCCchdTAkz0JyEIQNsQgiAlEMyXcQWQgJkYWQkAY3pAKGkPBqGFRGgNMKRCVEFsKGpC6IaRBbIO6BuBniBrg4JKbgtTXcj0QyIKbBzYfoQiYhyRJZBMKGa4Rw4SRycQkXxMPAZQ48BiF64UkdUmpBZCF6IakdYi9EBKIFwoa7H6IFnubhXIhiOAnRBefCGRDzIVEAEYSohJAQEWQSWRzOhjOQVULYEClIbCK7DS4OUYYshVUE7k5cAG4CJFNAzMeqGC4FUQkJZ7ggJCQhUli14xeEmAYxBM6GcOEa4U6FiMCthoQSXBAiDs8CEC5EL3SJFiRHQXIXpNKC5C4ICdEAyYFwUyCzR5AxK4gUvGSEWwxhQNIEJENCSEhXAMKGkxBlkOIbEmqQQhyyHAmy8ghCQgZ/IAupIKd8QDbzwEsTyLA5xNkQB0O0QNYwQwIRwoZUSBCXQ1RycHDIycnp6upKS0v/+/fv06dPjx8/vnXr1rNnz/7//y8oKCgiIgJZwPzv3z9OTk7IgC2k9GdiYnrz5s3fv38lJCQUFBQUFRVFRUUh67Agvbd///4pKip++fIFcj0ipJcP6YV//fr1wwfQISSQGvTr16+Q1WeQCWlIiEHqbIjLIeeKQFai/fjx48OHDzw8PJDFYmxsbBAfQeaSISEMCUxIVwZ+2TDkPBOIFETL79+/IX0gBgYGyMpwHh6eHz9+cHNzQ1aKQaaxIakHEsKQ1Anp3cLZENMgwQ6PNbgsJGFADIGQkBiHiMPZEAZEAYSEiMBJeMMLMsgBGdiAtLEgLTZIXEPcCTGcdiTcFjgDrdqAiCOTcE9BEj+k3QNnQyIOzoUwIKkUIgUZ1IGwIVkVQkKsgGRniHo4GzLCAcmwEBKiBRLpkKEUiDhEBCILGYaBsCFGQQIZUm5AHAAPWIjtENfCBSHOgKiEK0BWAxeEMCAkRDuEDSEJFt8QLQRJiGmYyiAxgimOSz0kBCDJDLKjBDJMBVkCAi/NICkWXtdCTIOQkMIa2V44G87AdA8uEYiZEFk4G86AiKORcFk4A00BVi4kL0M8DichDIizISTcTDQGwXiEaIeQWB0AEYSYAzEcHpKQvI+sF5kN0YhG4lIAjzKIfyHKICTcBIjtcC6cAReHJHtIaoewIVKQVAFq6UJMhFdgkGIakrYgSiF+g4hA8h4kNyJ3iCG6kFcfQPRCLIY7C86AWAqPM3hhCh+uhPgZXj3Au8XI63shvVvkahjSMoBYDVkjBlm8Ay9W/v//D5myhTgesjcXcowU5L7CP3/+CAkJ6erqKigofP369d69e+/fv3/27NmbN28g868cHBz///+HdBD//PkDuaoBMtcL6ZV++fKFh4dHWloaYgjkykJIiEFqJoil8Crt58+fb9++/fXrF+RUy3fv3n358gVydImgoCCkCws55wsSJpCaGLLxF94GgkQnfAQb3HsB3VoBGXyGlICQdjqkDIX0mCEkxFiILGSoABLXEJKLiwteDUOO9YCULJCohMQjpAKG+A5CQqIGEn1wEq4YoheeNiDxBedCUgVcEJL8IHohGiFSEBKiGOIkeCBAkhOk4QLJpciGQwyBk3Bz4CIQBqniaLowtcNF4Ay4pyB+hJgAcTA8r2JlQCIUohK+ChKSxiAkJO4gcQ1pVUOyAGSuAZ7ZIekEogVS6cKrW7heuAjEOohiCAlpZEBcCHE8ZjhDPAtRg0yiqYcrg4tDrEM2EFMNXDGyMmRBOrDhroKEMGQUATIoDVlgCEmNkMQJKdPhWiDOhkhhOhWePOBSEI0QLjIbIoKLhKiEkJhqIOIQEuIeTDVoIhCHQcoNCAnJhmjKIGZCSDSTISkBTT0EQNRDcgTEImRxCBuZhKcTiBVwLRAr4FyIFjQuRBBCQqIGwkYmIVrgJNy/EHdCVKKx0bgQNWjuhAhCjAVVwxA+JN9CsiU840HSB7L7IBkYUjdAhjch+1vY2Ni+f/8OsQluNNw1cAbEDxAFcBKSTCERCRldhAcopC8FqRu+gwEXFxfk2BBIzfTt2zd4HQCpACChD9nkAzcHYhdEiouLC+JNdnZ2Hh4eAQEByCkZkFoQMpsrIyMDWYQM6WX+/v0bMjv779+/9+/ff/r0CZLZmJmZhYWFpaSkfv369eLFiw8fPvz48YOZmVlERERaWpqPjw9iI6SNAnEDxLWQ8guyzApyx9Hnz58lJCQgM+6QsW7I0dYcHByQ40Egx5JANkpB5sshJ0JzcHBALqvg4eGB+BoSO5AGE2QcGDLdC5kah0QupJCFOAxSAUNIyMg8xNmQaW9Ih5ibmxsS4BBjIX6BRBkkTuHaIR1fSDUMISFxiqwFEi/whAdhwBUgy0KkkEmI2yBqIOkK4gCIdkgbBeJyiB8hKpFNoJANsRSPIXAFcAZcMUQEQkIcBnE2xFMQcUgVCxeBMyCZCyILqQUh6iGD2xBlkJoAUu9CRqEhlStEHNLThQyuQAIHIgKJU4h6SPKAmA8xB0JC7IV4BCILcT+EhLgEIgthw0mIw+DKIFyILFw9nIvMgPgXohFOQrRgJeF6scpiCkJCnnJxiL0Q10LCGTLeAFk7CelXQPI7JL9AilNIOED8BTEBQkJcBSl40UQgiiEOhkhB2Ggk3ASIdRCj4A5AU4zVTIjhEHMw1UOyG8RwCBtOQjTCtUC4yCRW69AApPUMdzZcFmIOnAtnwMWRtcCDF+JOuGI8DDz+heiCexNiJiTG4T6COwM5p0AEISTcEDQGRBa0YQliFqQmhuRGSE6DqIDXHBBlEAWQBAepjSCdKrizINbASYghEKdDBCEehpCQOhiSNCEtIOSpe4jVkO7Ujx8/IBPAkIofMlcKKUEgEQAxCjL2C2mHQgyERAlkfvT///98fHzwmIZ0SSHnXQgICHBwcAgLC8vKyjIzM79+/frPnz+ysrIsLCyCgoIfPnx48+bNq1evPn36xMzMDDkDElJ/i4qKQi4rhPSGf//+zcfHJyYmBplM/f8ftDkdMpALOfEKMmAO2cjEwMDw7t07yMyrvLy8lJQUpJsLuXv4////nz59evv2LWQUmpOTE7I1C+I7yDAsBwcHZJE2ZLcSpOECSQrIwQIJf0itDIlcCAkpZOEqIUMIEMWQyIJsWYFENKTUhojD1cDjCBJNkJV6EIvgUpCIgKQfSIAgs+EpBM1kiBqI2+BqIAwICXEDPHtABCEJAFL3QwyEmABh05qEuAHicmS7MMUh6RwSGvAkCtcIyYxwcWQuJHIhJEQBpJCFDPxAmpjwWhbChZCQKhlSSUAUwElIEEEyNSRPQbI5xBYIiewdyKAf3Ha4s+EMuBScAdcOCQoIiZwwIAog4sjmwNkQBZAQg7AHAwnJzhBHQqIAstcA0qCBJFE4CamVIaGNFjIQj0OkkP0FEYeYj0ziDwd4wCIbhYeNZgselRB74SQ890FEkF0IYSObjMzGZQVcDVwBQb/AtcAZEC0QJyEHKTIbbj6EAVEMYWOScG/CoxJiFyYJydeY4pA6Dq4dmQHqDUPKSnjpCeFC7i2AbEOCZ0LIDlfIEiFIeQ1Z4PPly5dPnz5xcHDADYHIQjRCikVIzQcZPISU5pDVrcgqIWkULg5ZCwapXP/9+8fPzw+5tReyRQpyMxKk7oG4E20AFlLPwasZyI4giOGQlU2QjUCQ8WTIGmNNTU1+fv4XL15ATpoUEBB4//69sLAw5OAOQUFBTk7Ox48fv3///u3btxAuZHgAUkpycXF9/PgRMoT75csXSLhDql7ImSHwmT9IRoUc4nH37l1IT1dAQICfnx+ySxiyLPnPnz+Qky8h/WNIgEDuYeTg4BAUFISctQnpIkMWiEFOCoOEMKRxABkkgAzCQwIKYh1k3TtkapmJiQlyGgkkOiBpAN6nhDSzODk5eXh4IHcwQ5RB0jQkSCENGsjKc8jydXhSRituIMkULgtPjpBmHCT5QjIwRA0kAcAzCbx+hdgOqYGQ1UOWxkAKREgyhsjCTYYYCyfhJkMUQEi4LFwvJIohK/ggsmgqkbkQNoSEhBVECyRHQEiIyRBxZBLtjGV46EFKFkgdCXEMvBKFeBYSxRBBSKqDNKEgdTCaLLzGhRsIiReI2yAkxGrk3jZcHO5giBpkEjke4eKQWIYECMTjECnI8myIaciyEDUQcTQSYj6aIFw9vLiERCskDUMUw0UgXLh1EC6cJEMcUhNDHAYpdv79+8fLy8sIvt4NUipCij7I+keI3yHtYIh1EBLuBjgDEukQWWQSHm4QQbh6OBfiWUiwQ2Qh+QhiNUQEIgtRCbEILg7JVnApiEq4LDyQISIQMyHmI4tA2Mgk3BaIyRCNEABXBskvEI8gS8HzO1wl3BCICIQLIeElLYQLUQAh4SIQBoSEpB8IG176QbiQOg7ChrgKEtGQvADRCHEnRBZiCzIb4muICRASWQ1EhAVZA0Qaog0SrBDPw9VAamJIYQRRBtm3zsHB8e3bN4jLIG6CxBwkwiBsiOEQEmI3nIQog9uCrB4iBekOQmoUiAlwEjJbDGnpQyoY5AIFeeSZg4MD4sKPHz++f/8eMrT7+vVrbm5uFRUVDQ0NFhaWly9fPnny5P3795BF4JCdwZDBVchiLm5ubkg8wcs7uH8hDMjGJ8iMNWQAEBJVkBIBsln5////X79+ffz48aNHj378+CEtLS0pKQnJt5ArCPn5+SH1ImTb0rdv376CAaSvDOm+s7CwQEaAISXs379/2dnZIedZwotpyF4ySNUFcR6krQNpG0HaKJBUBRGH1KaQ4hseC5ATtiEBAhnHhjQIIFEAiSCIHyEkJB4hyQNuKTyuIbowSYh6iDJIqoOYBlcJF4SIIKtEloJ0yiEhA/EmJNIhusggIRZBwgcSsHBDID6FcyEMiCCEBLVzWVjg4pDQgAQ4hIQrQ/YsRBmERFYG6aFC3IBcj2KthiE5AlIHQxRDGmeQ0h+SeiEJAGIRnIQEF4SEOA+ZhPgF7lpkXRBBZMUQWYg43CMQQWRlEAVwEm4FeQy4yZAUhWYIclJBk6KEC7cUEkeQzYGQMSRIuxCSB+F5CqIeYiMkQCBsiJshJEQEEhEQNkQXhEQLLrggskqIOfAEDJEikoTna7ibIebALUJWAKm2ISbDFcAZEHFcJEQZhIQ4GMLGVA8XR3MJpkqICEQZxJ0QNkQc2UdwcQgDQkIsgicVCBeiFx5Z8PQMiQi4OFwXRD2EhBgLUQlhw5VBDIeWERCXQdIKRB1kfTLEFEjOh7Ah/SdIjwdSS0EuvYdkb0ivF2IHpLqCsCHmQ0yGk3AGpMqHeAwSahC7IGxIYQo5TxFSE0PGxCD2QuYsIUdbQJIsJEQg+YGLi0tERERCQkJYWBiyFAuyjhEyUfrp06cXL15wcHAoKSlxcnK+evUKsqn348ePv379glTq8DOoIUd/fP78GXJuDqT3DwkHSPhCSMiBXx8/foTczgQp6eAegYTGz58/P3z48OrVq5cvX6qoqIiLi0tISEB2J8NP84DUspB1YYKCgpCjuyB1PPIZIMgZHrIDCl7aQopayLprSMhASEgsQ8puVlZWyOA2JLIgTROIRkhUQloPkLEHyMXMkKod0rqHVE6QyIJ4Hx74EGMhKQfia4gVcMVoDEhiQBOEcyEmQLjIbDRdkHCGtEUgB7NAvAxxG0Q7GgnJBhBBOBvibEiixZRCVgY3GeISNCl4rwVuCCR8IOYjK4azIXkBogCSpyBaIEZBogZCQppEkMFPSMsJHvWQVfSQKIakQIgWCBsyhAMxHDl8IBbBrYY4CY2EqIEXuxAuRAtcJTIDzkaziGC4QTRCwo14ElkXMhtSvqPFEfHG4lEJSXIQ70DKHMj4AeQeVUg5A2kUQvIdsqvgoQcXhKRtCBfiZkinAuIAiDiEDSchghASLghJupiCyAogboaLQKyDBBFEO7IUMhvuZbggxChk6+BsuIHIiiHq0UgIF1ILgDg4MJo7IaowbYGIQJwKZyMrRpOCqIEogMQLhI1MQsThJMTBEBLiXzgJMQ1iBcQEiBTE8ZDghYhASERvGKIHPo4HWekDyWAQQyEaIDkQkqshhsKdBWdALIYYCGdD7IYIQgyESyEXPRApuF2Qzg1kkAG+DgjSM4OsgeLk5IQM+0A6jj9+/IBUABD3QzI/5FAOuNeEhIQgk7vi4uLKyso/f/78////+/fvIQd1QU6g/Pjx4/fv33/8+AE5zQoy5/r9+/evX79CLnYUEBBgY2ODnAcJ2WULsevv37/fvn378OHD+/fvITUZxJuQgV+Iv758+fLx40cWFhYFBQUtLS3IxiSIs9nY2CC7kCHrrSC1LGQ1HKRv/fnzZ8iQI6S7DB/mgqyahlwgARkohg9aQIICUvhCevbw6xwgO5cgJTJkmBqy8gsygwgJfIhieE3Mzs4OCTHI8BFyhEISACQjwdmQcgRSB0O8DwkQNBJiDiRNw9MAJIFBUg5EPbycgqiBCKKx4ekEsrgPUvdAVMJJTJfARSAMyD54ZKshbsMkIeohJkPYEBIiAhnUgrAhYQKRRQ4liDjEZEiEQmIE4nJIuoJEH6SihfRxIdUwZKEfpL8LyZUQ9XBxCBdSQ0CMhWRqCBviMIjVEGcgk5DMjlUWYiyyYjgboh5CQgQhbQiIXRDvQ0iICEQlnIQIoimACBJJQvRCSEjlh6kRkmYgaiCyyGyICDKJXxaiEhKnkET7798/NjY2Tk5OyK4HSBkF8SMkTCAkJBYgqRpiCJpFaFyIGjgJkYUYBReEMJDNhCRjuDKILkgIQBRDSLgIml6ILC4SYhrE7xA2skq4mciCEDamYnh6Q9YFYUMUQ8IWIgJSzQDd1wTxIJyEMCDKIAULhA0Rh5AQcQgbYhTECkgcwUmIRoi9EEFkn0K0IJMQo5CNhbAhdQFEJdw0uGJQNQwJdEhBCVlcA1nQBCEh7oC4ANLPgJQIENdAdEFKZLihEAZECmI9sp8hbEiagBgOEYFYASEhshBHQyoDSP0BOawDcliSgIAA5OY+yC1M3759e/v27ffv3yGOgZCQ9c+vX7/+8OEDpAhjZ2f/+PEjMzMzLy+vjIwMFxfX9+/fX79+zczMLCgoKCwsDNm/+/79+3fv3n38+JGVlRVy6RCkOw5p3jIyMn7+/JmVlfX79++Qy87gPVHkQ7Ah7WJIpwRyyAnEX1++fPn27ZuAgICMjAwvLy9kbgnS74SU/pCeHKSvCamPv3//DtnI9PPnT1ZWVh4eHkgOh4zJQ9wAKfHhHXRIZEMiETJuAameIR1ZSF0OmfeF7B6GlBSQ+V3ICAQkAUFiBHLGJ+QSCEgfGiILjztIpEOiG6IF4llIJEJkISkNwiaVhJgDSTB49EKUQZpN8LETuHqILDKJJgVxOZyEhCGEhAvCtSN7EJIdIKbBFUC4cBKuHo0Br9Igg9iQahJSB0NIiHpIXQtJxvCIg2xYglTAkJ4xXDG8iIeIQNwPYUNcCHcYshTcMRCVEH/B2RAGpFqFsNFIiJlwQYjJcBIii0xCzIeIQFwFIQlGNEQLQRJiDoSEpFhkLWgxiyxFKhvibEhzB9JtgLSDIZsdILkSkq2Q4xc5tLHaCHc5VllIwEJCG8KGKEPWBXEYpDxEVoMnM0L6RRCjcJEQYyEkvPqEK0Z2AFwQKwNiAoSERAeExIwsiHZ4gQOxArIEBy4F1wUXh6iHKIaQcDWQEIBYjRaGcC5EO8R8iCBcPVwQwoCQyGZCRODegWiECEJIuHtA1TBcCGIlXA4iDok5ZBdAvIG8lxdS3iE3PCGGwA2EMCBOhGiHZD+ICEQxJHVCLIWwIRU5JEAhlTG8GoZMiHJxcUGqDchY7ufPnyGzyJDiDHIx1OfPnyF5ADJwB7m0QEREBHKwxvv37x89evThwwdeXl4RERFOTk5IQ4SNjQ3S//v8+TOk9oIchQEp9SDNEUjFDLELMg8Eaf9C6v6vX79CzvSA2AtxP2Tj8ufPnxkYGPj4+ISFhb9//w7p3ENqDohnIRUqpKaETCS/evXqw4cPf//+5eXl5eLiggywQwa7IGECCUPIEmuIkxgYGCCrtyDBCGk8QZRBSIjDIF0rSE0M6WFDzvGGRxAkAUB65JBx6W/fvkHOS4GYDIlciDJ4hoSv/YHYBScx0yIkxuGJFW4OhAFJIRASohLTBIjhEFlI6oKENuQoEkiyhJR3cDMhDIgWuIHIDLin4IZDZCGde3h2gDDgvsY0Flk7JFVDtEDMgbgKub6E7C6DRBakDoargdS1EEFI+ofEHaZiiBVwYyGugrgfIoXsEog4xD0QcYiNEJVwcYgURBBSDUOMRVaMHJ4QlRDD4dEH4UKUQUi4CCYDooBIEh7OkAQAJyEZCs6FMyDWQUiIFchsiAgyiV8WklogbVCIxyFNcMjEFmQtBSMjI3ypJiTQ4CRWiyA2wqtPuMvhiiEWIZNwKQgDHuyQmIIIwtmQHIcZbnBlcAbEJXAuxASIdggbWQrTnWiyEC7ETGQSbhTE2RCHQQIWIoUsAhfHFb9wxRD3wNWDrIFhSNBBDIe4BMJGI9H0QlRCSJhJCBpiL5wPVwZnwMMNwoCoB1XDcG9DaiCIBEQbpkMh9RykcwYnIZfDQ8o7iHa45yEMCAmRgpBwryK7GJKOIYUapIiHOAOyHxSy0BdS90Daa5CRXsjJjpDDriE9Y8hYLmQ+FbLTCSICmXBVBAN2dvbXr1/fvn371q1bP3784Ofnf//+PXwFFqQnCh/Zg8xDQ1obv379grRzIWc2QTqREL9DXAupCyFzwxCPQ7rCLCwsnz9/htzmJCkpKSAgAOn1QopXSLBAzIGwISEA2Tf85csXRkZGXl5eCQkJDg4OyHpaSERC1lVBuumQxVyQrAsvnSHOhgQ4xIWQGId00yEFOqRRBWle/Pz5E1K+Q4oJSARBqmFI0wQyLg1p3CCnUbjhkAoAohGiAOIXiIMh4mgkPKVB3AmRhRsICRCIFIQNTyoQlZBwhrAhAycQ78PXz0NWp0NsgRsLMRCiCyKILAKxCCIC14iLgawYogXZWIguSLBASEh1C2HDSUj7CVLhwQUhsQCpfeGCkJ4xJOVA1MMVQDwCF0TmwvtqyAyIayG2QHTBSUgYQhTAvQDhQtRDsipECmIRRBZCQkSQSUiYIJMQWYgIhA0hISKYJDycMaXgaQCiBpOEK4A4D6sJlAhCbIQYDllDAzlMHiICJyEM5ECGWwrxO4SEKEN2M8R8ZBJZI1wXXBAtu0GiCS6LxkAzFmIaMglxD0QZXC/cTDRxZGfDFaMxIIZjArhR8KIDYhpEHC4IYaBVwxA1EPUQkyHKIOIQNsTNmCREPZqrIOUMRCPEEIgyXCSyGohRkMIWwobHCJwBEUdZogUxGlkF3K0QKchgC6SagZzICD5UA3TmMLychWiHkMjBATEB4kqILMQFEBFIHCO7GGI13AR4HQxpK0C6O5BqA1IWQMoFSDX89+9fVlZWyG6fz58/QypOSJklKyurpKSkrKz8+/fve/fu3b9/H3JXIORuRMiGH0hnFFJ7QZaCQ3Y3QQb9IBvzf/z4AbEdMvcD6RlD9ghBwgcylA1xFWRdGAcHx+vXr+/cucPDw6OqqsrPz//z5092dnbIqZyQgWUODg7I3DBk4Bfi63///nFxcfHx8UlISEBcAjlBE1JqQ3ZwQVRCymLI4kzIFCl8bTY8hCHBDuEiF+sQNkQXxDRI1EAiAlJwQ8ZCIatwIV5DjlYIGxKJkM40cqqAmAZRg0lCXAUhIW7DqgZuCFwlJC1BSEhqgbAhHoFEImTCFWIsxDsQ7RASIg4nIfZCeoEQNnKJCcn2yCIQA+FNH0xzIAogwQuJIEjDEWIIXByiDDKKAAlbiBQyGyIL0QhJzxBZuLEQLsQNEEGIHyEVKiQS4WyI+XAFEAdATICQEBFMEmI+VnF4iEFkISohgnhIiBuIVIzHHHgCgKQTSOkJEYTogohD2FQhIakdkuTgBkIyKSSCIPUxpJkLabJDPAsJHzgbrhdZBBLREDdDrICQkE4CmhZI6EEUQ1wFMQoigkcxXAqZAdELMRONRFMGUQm3BcKAkMgq8bMhDobHFCTi4IZAuJiymOJotkAUQMyBkBBDIG6GBC8kIiDVLZp2SM0CMQSS8eGGYKqEiMAjCMKFBB3cd1gZoGIc3q2E5EmIZohZkGQEcTf8yIiPHz9+/vwZcl0uZP8MpJKDzDhC3A2xDOJ6SPEEz9WQggDSlocogJTXcAXwoIGIQOZNIa6CuAQyCg3pE0OSO2RWFTJUy8zMDKlCWFhYICdbQXbvff36lZOTU0xMzNraWkpK6u/fv8+fP79y5cqjR48YGRl5eHjevn0LKawhQ8QQV0EKLHjFDzksE161wKtMSLcSUu7/BINXr15BhrW5ubkhx2R++fKFiYnp6tWrb968MTc35+bm/vr1K2QmGOJ+SA/7y5cvkBE/COPr16+fP39mZ2eXkpKC9EEhVSAk6CBdZ0iLBHL9M+TAL8ggAWRJGqTg/vv3748fP/7//w8ZM4CMEHBxcUGWPUOWXEHi7ufPn5DBfMhdFJDVZ5CUysbGxs3NzcPDA5nbhsQ7PDogvoC3YCD7yyGpFqIdkiIh6QEeoXAGZBAPzoUzIJECSRXIvoaw4cogSQ7iBUhShA/bQBpSkH3VkLNFIckbUpZBeskQt8HdCcoYLKCBIoj5kEwLUQNxJ0QEoh6NDU+3yOKQFALJUJCMBjEHwoaQENMgdSdEBJIIIckePhuCrADiJIhGSBBBNELSLUQWzT2Q9ICsBcKG9M4hhsBJOANiFEQlsr8g4nASObjgyiCCuEhICoGQyGogzkY2GU0NGhe+BgKSW9FkIWEIJyGlGbwsgtuFbB2yY/CwIWkJudEGiWVIEoI4A7JGEnLzCmSfBcQiSPxCWoqQdAhJxpC0DSEh8QV3AEQBRDs8hCG2QFwCVwAXhOiFKIaUGMgiEGUQAyEkRCWEhIjASXgAwnVBKieIZyHGQqQgJCSckcUhORRSxEHEkS2CdPPgtkCkICTEIoj7ISQkfHCVJxBdEBJiEYSExBQ8YUOiHqIMkrwhyuAkRAribIiNEOdBzIGIQDwLISEFIEQcYggkXiDVPFwc2QGgrbDIdkMUQYpviGWQEg0yyvf79+8fP368f/8ecl4HpHaB9wUhVuInIQ6FkPBVrBDDIVbDoxOiBlKaQPqgkJlOCBuiGJLcIcU95DpeYWFhXl7eV69effny5cOHD58+fYIsTfr//z8XF5eampqRkZG6uvq/f/8ePHhw+/btV69eQbwPuT8YMsoKiRi4A/7//8/Ly8vPzw+Z6IXEB6TG/fv3L2R7Ejc396dPnyD1HMQ7P378+PLly+fPnyFHXzEzM3/58uXdu3dPnz6F9GsZGRkh9RzkIG64pZAAh9Q98F1P3NzckFIGMhYNSRmQwIE0U/7////u3TtOTk5+fn5IHMHHACDRD0m4kAwPmXKGJF9Iw4KdnR0ywQxZrQ2ZpYaEBiRCITvEIHPJkGYKZKEQxLWQMIFcMwBpWEDEITU0JCQhzkDOzxCTCZKQkIF7GWIaJAFABCEiEJPhbLixkDYTxD0QNZB8AslFkOWsEHE0EmICJHlASIgCiKXwXASRgpMQ18LrQmRxSHKFVKKQuIPIwrVATIZzIQyIMyDFFlw9RArOhTAgJsOthquBMCAkJOoh6iEqISSydyAqISREHM3jEHcik3BHIquEsOEkpBhFVkmQDSm/4HEKYSCTkDIKbg4kVcBJuDiyMoh2uBSyYoiP4FIUMiAWQSIasnAEsj4LuZUAsRGtosVqL8Q0ZI9A9EJIZHFkNkQXJgmPFLh2uAgyA6tLIILwyh7OQLYF2Q1wBXCT4dEKsR2ZCzEEDiBcOIkcWRA2XCUeBsQWuO2Qpg88C0AYkBIMbgjERggXmQ03CmIaxOVwZRBZCAkRRCMhQYFVAWhQGu4USO0C6SVAukSQ+gBS1kPuwX39+jVk3w5kPhgy2AJRBjcHj30Ql8F7TpAhU0h/DpLnIa1+SEMVsgkHsjGDjY2Nh4cHcrk9pKyHbI6ETPdCehs8PDy8vLzMzMyQ+xIgRkHOFVFSUrKwsDA1NWVgYHjz5s0NMPj9+7ewsDDk5mBIvfXr1y9IJQQZ14VUPJCDMyEdR4jDIH6H9CkhJ3VAajWIwyBV2rt37yAXMTExMUEOoXz8+PGrV6/U1NR4eHggw1OQ7UmQlAGJb0jQQUIVcs6lhIQEHx8fJPdycHBAghpeLkOi5v///5CZ5nfv3r158waiEXIcNGRwGzKNDQl8iBcga6wgaQIy1AxxBsRAUAONhQWy6huS4iH1LmTJCaRtAbnfApIiIXUM8qQ1CwvL9+/fITELKdPh6QriDCJJSH0JsQUSRJAaHa1Yh0hBvAMn4XUwpP0BDzQ4A5IOIS6B6IJYBBeBJGmI+9HYkAoMLgUpTOGCEAYke0MSNiTYIeKQ6hBiF8ReiOFwETgX4hK4ORBxiIEQjRB7IcU9xAqIGog4xDo4CWkqQUyDCMKNgpgG8Q6EhJgDISEOg5AQlXCHwbkQBiQVQVRC1EDEIWxMEpcsJEIhJLIuSLxDxJFJSNEPaW5CUiyyLohKiBqIOCSjQVTCZZGdDVFGIQkplyCGQCIdMlaH3C6ERATEXxCVyCTcbWgM5HBDloKLIwtCsh7cWIgaSMxC2Mgeh4ugqYdwIbLwGgiZAVGAZi/cZIg4RDuySkhEQKIGTRY5diBsiDKIURA2xCi4LXAunAHxJpyLK21D0i3cZLjhyCJwWyBmwl0OEYeoRPYC3FKIenhYwcUhxTKorwgXgpSYkAiDpAy4FKRK/vTp04cPHyBHW0COd4YogHQvIH1oSBGJ7CyIGjgJCc3///9DBmEgFT+kNIQsC4JcXA85OBpCQgp3bm5udnZ2yJgz5EgNyHA6ZEPR169fIbUvpOEJsQ6yMOrPnz/y8vIWFhZaWloMDAy3bt16//798+fP4UdlQWz89OkTpC8ICQHIqReQdUmQkIXUpszMzL9+/YIcNgk5RuPr16+Qwflv3759+vQJErLfv39///49FxcXxPGQFV6QQV0uLq7fv39Dzqbm5eWFZEhI8QEJN0g74NWrV9++fYOEAOTuYUhND3EMRCWk2IVEPxsb26tXr+7du/fu3TtWVlZBQUF+fn7INmLIeCyk8w0ZC4UYAvEvpGiGTDBDogDSjIDMW0M2EEPCE9J1hgw8cHBwQEYmIOU4ZKyCnZ0dsoQb0nv+9+8fZAgO4kJIyoZXqxAz4SRcDVwEwoA4FcKG+BpCIquHpG+ICCTFw9VDAvP379/s7OyQ6gfiAEgKh0xqQBTDLUJmQJRBSIjJyNUbvAMK0QIJCkikwHM7MgPZHEj6h2hEdgBcBM6AyELMgfgd4hKIAlzuwSUOaZtCTEB2D0QEKwmxFE5CGJDQhrAhLoSQkOIMwkYmIa5FFsHPhpiPTEJMgOcUuBSEATEN0vCCiEBIiC4IiZxOILIQ9ZCEATGBWiQkJOGxBrGIiYkJcrABpBEMtwvS9oVzkRkQd0JE4GxI/oJkKEwpiAh+EuI8SLBASOSohIy9wcWRjYLUPRApSHhCZCEiEDYmiawSIgv3CzKAC0KqCUhcQ9hwz0LUQEg0N8ONQnYMxKdwlfD0iSkOcSTEZAgJtxSuHZcVcPXIVuNRDFcP2ZYCmgCDOAhSf0B6XXC3QgyCTK9CVuFCKmBIOoBYCSl3IIuZIUvzIQOzcL1wz0ACFEJCNrxC6gA+Pj5IT5ednV1ERATSjYPf6gNZNgXpjf3//x8yMw3vaf348ePdu3eQXbyQwIKUs5CzNf7//6+oqGhnZ2diYsLExPTgwYPHjx9//Pjx3bt3kNMf4QdAQjqg8B0FkJlayP6iT58+QRoBfHx87OzscKu/fPny48cPyDHLkJwMGciFzEp+/fr13bt3kBlrFhYWAQEBaWlpbm5uXl5eSG8VMoAMKcoh1kFCErLO6/nz53x8fPz8/JDlXZAYgZwcAglPSDBCnP3jx4979+59+vTp58+f8FPDIE0WVlZWyJovSP7///8/pAiAdNwha9ngrQTIaR6QeXdI+oBcSgEpJiCRDtmUBTm8DDKRDClrICMHkOoc3pSBVAYQB0PSA8QjEDYyias3AFEDSbUQEiICb/BBuMhSkGQAKS8g1TBkkAMSR5DkAamBICeTQJIxJBfA2RBDIMog8QJRAPERRAQSdxDvQ5wBVw9hQGyEGAWppCGGwCdfILqQSbTwgbgH3n2HGwU3B16twh0DcQ+EC+klQ9gQcfgcMLJ7IGw0w+FWQMThjoQ4CUIixyxEAS5xNH9BFEOSPZyNzIBEKKQghotDqgeIpZD0D1EGKUAh4nDFEAbEXogyiAjEhRCTkVMdJHwgaignIUEKdyRkuAhyhRpkBhQ+QoPV2cgOgDsezkDWArECWQSiF+JNCBuZhEcrhAFXhsZAy19oJiBzIVbDwxliDjxG4CGM7Hhk7XAFEEFItoV4ChJHEI0QEqIGTkK8AOFC7IWQ8BQL4aKREC5EF0ESTTFWLsRtEJfDrYYEC5wLUYNsHcSPkMKWBVKgQEoN5OoTXuJDKuZfv34hj75CEhkkFCCBBSnQ4fUQRBBiK8TpEHdA7Ibcxwm5HUhISEhYWBjSe+Pg4ODm5mZjY4PUXpDhaEjBBzEEstgBsjkH0m548+bN69evP336xMXFxc3NDVn8BfH8nz9/JCUl7ezsbGxs2NnZ7969+/jx47dv37548eLZs2eQEzz4+fkhDoPMfP/69QtSwcCt+Pnz56dPn3h4eISFhZG745BFal++fHn27Bnk1iaI1fAQ+P379+fPn9++fQu5opiDg0NAQICXl/fPnz8fP36EnxXKw8MD2RYFGU5gYWH59esXZBW6iIgI5HAPyMlWkNwL8Ro8GP/9+wdZxvX8+XNubm4ZGRlhYWE+Pj7IcDckuCCFHfwYAUiGgdey8B4hpMhmY2ODDFHAL9KADKxBcgtyhxhyfgh8ISgkguDJCTKFDJl1hvfjIVEJSRVoJMRVaIKQagwSQRASYgtEGTzdQ7ho6R4iC/ELZCQQEsIQN0DcCfEyJBkjJ2n42emQfAEn4eoh2uEkxFUQcyClOYSERBYyCVEJdzBcCi4CaSXAuRAz0dwGF4S0YiGyEEdCfAcZ/0QWh8jC3Q8JWGRzIOEPF4E7DNPBELdhikMiCCKLTELEMdVD1EDSFYSNTEJqXEgxAjcBEqeQiIZnAYgshITYAlEGISFmQtgQWYhKCAlpL0I8CxeBaKGQhJsGjwXI8QOQURlI4Qv3Ah67IOZASIjHIYrhIhAuxAvICtDEIekKXjtCggJNDdwQiDhcDbJdyIIQNsRMCBuiEZnEJQ43E85Adjw8ZCAMuBTcNAgDQkKsQ066kGYrRBxCIquEiEBIuO2QdAjhQkiIAjSNcCmIONx5cBdCGMjiEHMg5kPYkKERSNqGVK+QYUgWSJsaUlxClEKGfCGZAXKfPKQsg2RXeG6HpGPIZhvIYCbEELgrIQyImXA/QJbsiouLKykpycjIQC4LggzhQgp9SAUMD1mIIXDXfwMDSL8csncZshoLsoqYAwx+/fqlqKhoaGior6/PyMj46NGjBw8evHz58vXr1y9fvvz06ZOIiAikyv/z5w9k6RPEy5DjouAeZ2JigtzCBOkLQkITst4YcskS5HBpyOalHz9+QE7AgGj/8ePHx48fIRUbExMTZKkXMzPzt2/fIDcZf/r0CXLYNSRzwuvg9+/fQ+ZrIZkHsgwNEuaQuWFINENGID5//vzx40dJSUk+Pj5BQUEODg4GBgbIeSaQyhhSBEPcD1knwsLCAo8siK8h9Suk5w3pYUMUQA7tgsw7QMpuSNeZk5OTi4sLMoUMaddD0hMkT0IiERKSkMQD0QspDSGJAY2EpCs0QYguSLzDywhIqoAkM0iiR9YFsQKeYCAtS4iPID6FjKVDdktDLIUXlJBqFWI+JycnhAEJPYgaSC8WIg7vYkIMgZAQKYjtEBLubGRHQtgQBcgkxL8QWYhGuO2QgIU4Ay6IWd1CEgm8eoaoh5MQBsRkiFORnQ0Rh5BwV8HzLNxVEAZEAcRVkFiAiEDYEDUQvcgkRByZhMgii8DZkEQOKa3QQgaiBqIAbgLEARAS4gxIYoArRmbAdUFUQoyC64WopIRENh+SruCZCLJ+GDJwCJ+TgkQEpo1wc9AYkMSMrB7ieHiMQOIRTsJ7t3AFEPXIJiCz4bIQ9XDbIeIQQUjQwUUg2uEqIQzkKIAogOuCKIBw8ZAgFagYYiNWEpKqIfkUrgluEdwWZAZEGaRgh7CR1SOHG7IsshpI4oGYiSYO0QKRgrMhRSUkYUOKWWg1DCnuIcZB8iqk6wDRD1nyCkkxkEEtSOxCghhiHKTjBUlqyF6C2w1nQBzKx8cnJSWloaEhLy8POS0ZMhELL93g6uHugVgEmS5lYWH58eMHpFKB9K0ZGRkhK4o5ODh4eHj+/v1rZWVlY2Pz+/fvu3fvPnv27M2bN5Au7K9fvyA3L0FqREj/FR6pkH0FkEsGIWU9pBqGLGlmZWUVEBAQEhLS0NCALJiCTMF++vTp9evXkOFuiAchnfXv37/Dz+ESFBSEnEMJGSj+8uULZICBj4+Pi4sLEhOQNc+vX7+WkpKCDwVDqltIEw+SeyGtH/ho89evXxUUFCCztpDRZkguhUzqQ0IS0hOC9NIgB2RC1EA2VkF28kB2OkGiAF5YQAIBEj6Q0hAyAQ/p78IVQxIPJI4gyiBVHeR8LkhygoyTQ9yDRsLNRxNHzgaQzA/JaXCLIIkQogtiCISEiMBdBWkrIDsMshcLMvkNLygh3oEkOUgih4QYhISEIUQWQkJqRIhKiI1w2yEMSGKASCGTkBwH8QuEhBiC7B2I4RAS0vyCsOEk3D0QBrI4pGENMRniVIh7IMU9XBzCgGRziAK4CISL7GZkNsSdEBJZHO5fCANOQhjIKiFsXOIQ2yHRB1EDISHiEL1wEpIw4Fy4Goh2iDhEO4SEiEB8DSHRxOEKyGbADYSkHPiYE2RoCpLZIWkSrhKPXXA1mAyIZ+EkhAFJS8gkJB9BAgpCIluHKYIsi8mGxzucgeYwOBeenOAiENPgXAgDTuKpOyBeg5NwBsSbEIvggpD8BTcWEssQq7GyIfZCtMOVQUyGcyGmIWuHJDCIOISEyELEIRohYQuXhQtC1EC2GrFARkch1SekooVMY0CyNKTYghT3kC1GcFPgVTpygQhJZJAlV5ByHCILabbDiwAmJiZubm41NTVpaWkBAQFOTk7IGp8fP35AOqYQW+AkpE8DcQxyHQARhwzG8oHB9+/fIROWVlZWHBwcHz9+fPv27dOnT9+AwdOnT3/8+AGZAIb0sSDhDgkLSH8RUg1D7lOCrL3i5uaWkpJSBwPIUm1ubm5IHQMZKIZMIT958gTSM75z587v37/Z2Ni+fPny/ft3SN0GWVf89+9fyHJuyDGcv379ev78+YcPHyCdS0gz4s2bN8+ePVNQUIAs6GBgYIAcsQnpmEJqVkht8fbt25cvX3JwcKioqEAGzCGJAJ7zIREKqWIhbEh/98ePH5DLLSDHgEBcCxm1hu+yhbS9IG0UyGIryBAFJHx4eXm/fv36/ft3Tk5OyDAJAwPDz58/IQ6D1AqQtg6krIG0mSDJGuI8eFKBC0IcD0+vkKiBrCODa4Grgbc2IPUTXBcyA64LcjUkJJZ5wQByUzVkPhuSgSEuhyR7eL0FMQEiCGdDkiXEeRA2GoksBWFjkpC8APE7MglxDMQBEHshIpBiBcKGuATChnR/ISIQ9RCTIeIQNRDTIG6AyMJtRGZA2BAtEB/BMzKEi0xCwhmuGGI4pHWIrAwSX3ASrgyiHZIHIeURpLSCOxWydgRZCqIFbhREPcTNEEFkw+GKIS6ESEFMg5dIENsheiHmQMa0IG6ABCnEL3DTIFxiSHg4QyyF9M8gnQfIDDGk3IdkQLiBEMVoJFwW4kgIF+IkiCMhdSHEO1jLT3i8QMIBQkLMgbsTwoWHBkQcHshwWUjbHc6FOwniHkjQQayD+ALSiIcbi5WBDODq4Y6EMODxCGFAPA6xHa4AwoWYBjcHwkUjIYYgC0LUQ3yB6UiIOFwXpKaABA7EmxAFkCoPYixEBEJCRCDOg6iHrB+ClF2gUwshQQYZ9oTogdRtkBNQITOmkEFUyB4bSKcQogsS8ZBkDVloDSlzISJw0yDBBFEMqUoZGBgglxNApkUhyQgehXBHozEgJjAxMUGuoIcc4sjPzy8oKAipAz59+vT7929ZWVkDAwPIuRmvX79+8ODBo0ePILUgOzs75KhnSC375csXfn7+v3//Qm5o+PPnDwcHhyAYQMaWId6UlpY2MjLS1dWVkJCA9B25ubkhlSIk3CH7kiE3fn/48OHz58/Pnj37/v37nz9/IGu7WFhYINc3QSZcITUcZNHZ169fv337BmkMQTr6kJrv69ev/Pz8kOFlSMxBesMQp0Ls/fHjBysrK2QeHRJ68IQCCXPIaU0QAyGVMWSTFSMj4+PHjyHOgByyDYkySGsJ0nJnZmaGzGBBmjWQphIkRuBjzpycnNzc3JCrmSAjE5AQgwyNQGoFePUG8QWEhDsPkpThzoakVIgtEDUQKQgJyR6QdAVRA1EPkYWnIrgCiOEQlRB7IWPvkNFySG8YMroDCT2IgyE5HG4mRApCQqyDGAhxHlwE2S64IJwBUQwxE6sgXAq5+oS4ByIFEYdkH4gIhIRUzxA3I6tHthEiCxHB6nhkJ0GMhQQ1shaIRjgJl4KENoSExD5cDcQQiBSk+IaHEiQ6IOrhbEjpBlGJbAicDTEKYixcEMKAOxvuMIg4XAsaF6IMQsKlIGM2yIIQKcpJSOKERB/a0AvEO3B3whnwSMFlO8TLENdCSEyVyKZhymIVgVTAECm4s5EZECk050FiDWIdJEIhJMR3mCTcwRAtcDMhDIgshISIQFwF8TJyeoaLI7sHMicI0UgkCfEgxEbkVAp3OcQcuGshrSiIHyEkskqIMggJ1wixAuJOuEWQQpgFMnYKqZYhZQ1y5wZywS1kFhbSnYJUwxCLIfUipASH95ghyiB2QyyDuA+iDFIOcnNzi4mJ8fPzw/e9QGIREqYQvWgkpBcICSB2dnZubm5IzSokJATp5fz79w8y6isABs+fP3/z5s3z589fvHjx/v17yFIdSFcY0iOE3DYoJCT079+/79+/Q8ZOIZO7DAwMXFxc0tLSkPVHhoaG5ubmcnJynJycyCPnkA4ZZLSHlZVVRESEjY3tMxi8ffv2zZs3kPsbBAQEmJmZIaeP/fjxAzyv/e3Lly+8vLwQA+HHoUB2SUG6aCIiIpDJckh1CAlJiPch3WtIVxuynA2SsSFpFB5uEC4zMzPkrkbIRt5Hjx69fPny58+fkCXNkIofsj/779+/kJoJUqFCqk/IrCozMzO8GoYkEoi9kHlfSBKCbIiCtOEg0+2QbWkQi+CJCuIqeERDfIScQOHuR06vEF2Q9AYPCohKiBSagZAkBzcW0pqBNEeYmZkhS/EhE/yY1TDEQGTDkV0CEYeIwEm4IFwE4khkLsRYiDichAjCixXIKAJEEBLOEBLSl4LrgqiHGA7xOEQZnIR7H1Luww3EdCfEELg4RCWEixx6EBFMElIOQKyDFDrw4gmiGCIIqW6RDYdogZBwQyDKID6CaEcm4UZBBOFcCAOiC9kKSNKCuwfiHbhdkGwLcQCEhKhEUwbhQmwkj4SbAGFAmrCQIgiyjB9SokJsx7QC4i9McYjvkP0LiUpIaGCqxyUCUQ9PWnAGRBxiCyR84FJwoyBqIFxIwEL8CBGH+AjChsjCSYhTIQaiAWQfISuANDchsnASkrwhpsHNQdYFFyTIwKUL4n5ICMBJSEKFcyH+gnNx2QUPTIj7IcogpyCDju+AdHMhRQAkdUIKU8jqJ8hwIqQShXR5IfohdkOGpiHlI2QnDKQahsQHJIAgpkHKCDY2Nn5+fnEwEBAQgAylQiyFKIAYjklCnAeJWki/ELKI6efPn5C6k4uLS0BAgJWV9evXr0+ePIFUwK9evfr06ROkFIPogmychZgDWScFiWBILxnSt5aSkoKsu+bn52dkZJSUlBQSEoJs+IGsrIZU25AQgPgdMqjOw8MD9pk45KRoyLFWQkJCkGj7/PkzpOMLWbrFDwY8PDyQbTOQM7nevn0LGSLm5+eH3EPMBQbs7OyQcQzIYDhk7zLkwiXImixIdoUHOyTkIZ1mSGPizZs3t2/ffvDgwZ8/f3h5ecXFxSEj4ZB1bZDhRyYmJsh2LMjcFaTuRBvhgEQTZMAZMggBOUMbHg6QwgUS2vAZBMgYI+SCDUinDRImkNQPdzZyAoWkAUh8QRTAswQk+uB+hKQfiHpIpEDYEBKiCzJ+Dtm5BBkAgKQ9eDUM8RfEARDrINrhtsC5EAZEJZos3DtwBkQBRDGchBcfkAoVEiAQWUivF8JGJuHhABeEmwxnIEtBfA0XgbsHIg73AjIDrgYiCC81IFw0EmIOJLQhhQNEBD64B+HCdUFMg7gHIoimACIIJ5Fl0aIDogZZAaQERFYGkcUkIXoh4Q/p+0LSEtwjkAUZEKMgJFwLSQxIYEIcADcHUohBXAuxETKkB7EUYj5ECyROIe6EiKORcGUQcXjAwsUhDoDIEkNCTICQEPWQKIO4Fm4anAGXhSiA2IuHhPgXQkJ8B1EMNxAiCMkREAcgS0FKaYjzIOLIJEQ9MgmRRRaBsCGWQthoJEQL3F8QBkQ9nIQwIBNqEO0QEQgJ8QKyOISNLA5PDJACELJjBVQNQzaqQhIlxALI2Cl8aRIkm0FqXLi5kACFFL6QihYyhglRDPESxHqIRoj5kJ3BCgoKoqKivLy8kDoAWTHcP3CLIAzIgBVkLhZSrUJmTL99+wbZ8wPpm74Hg48fP75///7Fixfv3r2DrMqGLHyFHKYBOa4ZsgT61atXkDOhIHPVmpqa6urqsrKykCYCpN8JuVf43bt3kC67kJAQ5DRpSJqAHOMFkWJhYeHl5RUWFubh4YF0aiFlPWQg/QcMQLYkQfZh8/DwQI4Dg1zu9OfPn+/fvzMzM79+/fr+/fvfv3/n5eUVExMTEBCAFNaQU6MhN1hAzgOBbIiChBuEhAQ7JNwgXUDIwWEPHjxgZmZWV1dXUVH5//8/JDQgqQFyjSPkwJOvX79CIhQyYAK5pAgybA5xA2TsGtI//vz5M+QSYkizDp4nIQECr/AgHX1I/xgSbpD0AykEIU6FiENIiDmQYgiePCCKISkBwoZUwBC7IIZAxCFseGhAZuAgoyaQNW6QKXBIHQwJLoi9ELuQswrEKDgJV4CpHpcUXCUyA17dQoIUUvogK0BmQxI8xA0QcYib4SSEAXcAhAsh0QQhhQvcKAgDohJOwgMfOQDhKiEMSPRBSEiWh7AhrXAIG6IS4gA4G+5+iC2Q5iNEFuIAiAK41fC4gJgJNw3OgOiFpwGIOEQ7hIQogHscogDS6oLogiiDmA8ppiBsuBY4A2IU8STc8XAGxL8Q8yENVsj8F6SdCnEJsvkQ1yKL4GHDbYGrIagdogAS5nASEjUQKbhREEFkLpoIxPEQEk0ZnAs3E8LAJCEAWRwiAskg8BQCYaA5AKISuQSAiFCFhEQZxHcQNsRYiAiEjUxCvAB3J8SpEMWQcIbHPqiAhZgIqYkh3WII+e3bN8hALjxfQTIb3HSIuRBBSKkNr5IhZkIsg6iHWA/pIUG6YpCjMOBtHIgWZG+gsSEzr5BiFzIyDKkzBAUFIcO2kO2zkAr48+fPr1+/hpzRISIiAjkEA3KBAaTUgzj4+/fvf//+5eLiEhYWtrW1VVZWVlFRERYWht95AKkRmZiYIPtf3759++rVK2ZmZklJSUi2gYQyJPVDWhucnJzgyWVBLi4uZmbm79+/f/z4EX4QJuQCYEh7BbJS+suXL5DaFHL+FKQTDOllPnv27PXr15ycnFJSUiIiIpATTiAmQNwPWUwHOZED4hIICQltSJD+/fv36dOnd+/e/fz5M/iCR0UxMTHIUm1IGwhS10KChZmZWVRUlJOTEzLSAFmZBbnCAdI1R648IJ1sSCMGYhQ8qUB64RDFkO473NmQ7ASZvIGkEIg7IcUinISkLkjxB0lCEK9BFEASAyS9wctNeIKBRAfcBAgD0r6EtD0hUzCQVATpvUGsgLgHYg5cBMKFkBAFmCRcFuJIiB8hbIg5EBEICdEOCRwIG1kcIgLXC+dCcgpEHE4iM9DYkOIeLghxBi4uJIjg4QbhwlMRxHdoJCTWICS8EIA06SDxApGCuB9iO4REMweNC1cDsR0uCzENTRAiC9ECkcL0AqTEgKiEeB+iHiICcR6EDSHhFkEYEEEySLhLkBkQcyB9YsgmT8h6FORwgwQmXCWEgYuE+BoiC/cXhAEnIQxklRD1cBKiAC0oIIKQlABhQzIjXBdECtlYuE8hghBdEEGI4RBxiAnI6ROuEhJBEAVwNkQWoh7ChpBwBRCXwHVBGHA1EC4xJNx5aAxISkAmkU1DswjOhTMg7oR3ICHikDwCqXZB2z4hJkJmdr9//w7p00BWLUFCEFK7oJkF0YXsMkjqgYtAFECshPdpILKQTY2Qs7EgyiDhCJGFi6AxIEZBbIHUGb9+/fr48SNk3xWkZ/nz589v3769BYN37959+PABciOQkJAQMzPz58+ff/z4ASn+mJmZIQdPSkhI6Onpqaqq2tra8vLycnNzQwaIIKOXkF4spKoWFRX99u3by5cvGRgYIHuiIB1NiOMhNSvkDBMeHh7IHiSIC//9+8fPzw8Zj4XstYVUV79///7y5QukGwpZ8AU5exKyqffv37/v3r2DjH6/e/cOsr4acs4J5JIJSM0HWZz869cvUFpmZIQU6JA4hkTcu3fvnj179uPHDzk5OS0tLVFR0e/fv3/48IGPjw8yfgCJWXgpDxGHnB39798/yAUekNoLcj4JxApIFEDmjCG9asjh1ZBaDXmHFWRUADLKjRbFkDiFuxxiJsR8SKjC8wMkMUBUQmpiiAKIOCRVQNgQcWSL4GzIGM/3798hsxiQVjPE4xCXQEyAsCF2QQIHTkJSMoQLcQZcGVwQIgIvNSBcCAnxIJyNpgViL7J7ICrhypCdBxGEkxApTBJiJrI4XASNAQkliCCEDQl8CIlsAoQNCT24SggDEviQhAcRgYQSRAsyiWYR3BZIowquElIEQbiQVA0PWIgWuALksII4A2IFhIRXIRBlcF3IAQgxEOJsCBtiL9kk3BY4A2IUxA2QSWLIoQKQZjfEUogDICrxk2gqIT6FkxBb4FyI4bgMhCiDyEJUQkTg4YbMgCiA2A5nY/oRErZwjRADIYIQiyAiaO6ESEFIuAIIF0JCBOHmQNID3BkQcQgXop5IEuIdiGK4drjjIeKQdAWRhTsDLgVhQMQhJMQxEHHIXiRIroGIQHrDkAoXNCgNMR1SM0NqYkitDCkQ4fPBkJW9kA0kEIMgToeQyBagORSSFSHhBel7QVbSwmMOoh5iDtwDECvgJGShL6QCg7Qsvnz5AlkIzcHBAdmQCrlz4sOHD1++fIGs9P737x/kDCxIfczCwvL27VtIbw8yI6ujo2NnZ6etrc3NzQ0JAchFDpAxWA4ODiYmpm/fvkGarpBxY8hxGXx8fJBJU0hYQxIT5KYKyAEXbGxsP3/+/Pr1KyMjI/KQOHwQG7Ja+9OnT+zs7D9+/GBhYeHj44Ns94S45MePH1+/foUMjDMwMLCzs4uKikLqPE5OTmFhYRYWFkFBQcjOV8i6KohjIAUWpJVw//79////KykpKSoqcnNzv3v3joWFRVZWFhJEEPWQqIGkOcgwMqS++fbtGycnJ+QAbcgYCSSOIAkGoheyAguy4h3SgoHIQqIY0uiBVD/w5ASxDhKzEDakfwAhIcoghsDTHjxVQMIZPi6NLA5xGyQtQQyHi8ADBLKSALIPDeIjXBs84NUhxEaIRXASLgh3LSQ0MMWRRSCK4V6GaEEjIfZCBOHWQbwD4ULYEAWQaIKIwD0OZ0DEISQkciFsuF5kBkQBRC883CCxANeFzICogSiA6ILIQtgQWTgb2SKIMggJKQHgiiEeRKuJISohFkFIiC6IYrgsJJyxWgRRCfEgRAFkMAZZL1wWYgXESXAFZDMgTsWqHVIqQpq2kNEdSPMF4hHkoMOqHaIA4lpkD0LYEEMgJMTLWA2BS8FNQ1MGdz+cAVEJCR8IieYGuAkQ2+EBC+HCbYQogwjCAbJRaCrh5kA0wknIaAfEeRASohG5PoIrxsOA+wuiBsKFuAcigsyGlD9wcQgDEvIQNsQNcBFkD0IcCSmRIOXbnz9/QL0USA8GsjcJMk4LGcGDjN1Bkgtk2AQyrgu3CRINEBfDaxdI1wRS4kB0QRoCkGrv79+/r1+/fvr0qYyMzOfPnyF3G0AWr0JWDCIbjuZziEWQqu7Lly8vX758/PgxpAKGnLX54cOHt2/fQi5++PLlC6Qye/nyJTMzs6CgIKT/LSAgAOk0CwgIKCsr29jYKCsrQ7qkEDdDxnshfofUlJAY/fbtGxsbGzs7+7Nnz9jZ2VlZWSEXKEGshoQYpNcI2RUNGZGGZPhPnz5B7IUsP4aM2TIxMUG6npDVN5ARexYWFm5ubkFBQYizIZuR/v79C57yfv/582fIdCYbG5uIiMjXr18hF1fw8fH9/PmTg4MDsqgKsuwLcg8H5JZlCQkJyKZkHh6e////Q+pgiL8gfWJI6woyzgxp8UBqfUjRAFltDpGF3D3Fw8MDaasxMzNzc3Pz8fFBlrDBkwQkmiClDGQBNjMzMwcHB+TeZXjFDGdACl8IF5JSISIQR0JISOKGmAnJCZCkCwl8SMqBJBKIM5BTP0T227dvkCXrkJQMj3GISkijAaISIgURh7sK4jCIM5AVQPIIJNdBtMDZEGUQLchSyNUtxEaIFkglDRFBJiGyyCIQn8JF4AowGZB8BMmYEFkICRGHkPAQhhsIYUDcAwlPSGKAmAORhfgLTkLSMEQBLgMhiuFBAclocPdAjIXrhTMgJkNksZIQF0IMRyYh4QwPK4gyrFyIGyBpAMKGFP0Qp8K1YLUdUxBNPcRAuDJIgoGs64TMT0NOmIfkaIhnISGPphHZBIgVEBKuDOJf5BCAaIErg3gHLgjXCBGBJAZMEqIdUnkgy8LFkbMGxAoIiSv9QzTCLYWbCXc/SAgJw90JYUBIiDwaG2IyvNKBxzhEHGIRpiCyIfDQgyiD24LsNohpEF1oJEQKTkIMgfTrILczQHZ4QlbnQW6CZ4HML0KqB4hxkFwEYUOCEsKGJ0qIsyD+geQTSPRA7IPIQhwBKR8hbMhMM2Sc89OnT5CZUcgEKkQBpGCFaMdKQpwBkWJhYYGc8/z27VvwFiHQgDPkgBHI3cCQZVCQm47+/Pnz6tUryFmSfHx8IiIicnJyrKyskpKS0tLSDAwMnz9/hqwfhlRgkH4kpG8HCQ1I0Q858vr///9v3ryRkpKC9IYhZRMkBCC1AkQc0reDuBl+LABcELLFCNLHhUy7gmYIwHcLcnJyQtolkAVNfHx8kI28Hz9+hNj19+9fyK0SkP1Xv3//lpKS4ufnh1Tn////h2xZ/vHjBxMTk7i4OKSyhyxNgkc3ZDQbcs7tHzCA7CX78eMHxBbI3AHkdmTIQC4kNiH1669fvyBbliHbnCAbnyDbMCCBAClcIKEHWdIF0QiJPki6gmRRSBBBij+ICEQNJIFB0gY8Y0CkIEkRLgURhJAQ0yBsOAkpIyCjQJBGGHxcGuISSLEIqW4huuCFIEQQogDiDIgVEKfCtUME4SREHN5bhXDhshBzIBZBBOEicC5EFk7iEocrwGQghw+cjRx0kAwLkYLEGqYhyOIQ9Zhq0ETQPIvMRVMJsRpNEJkLiThI4OBXDAkfCAlRDzEHrgsiBSHhSQtuPlwLPN7hKiGKIaZRTkKMhfThINUtpB0M6g+BMbz0gDsJl6XIjkdTDLEFWSNEBDkuICkBogbNKIggPLrhhTxEBBKkyCREPVZDIDZCnIfMhmjBJCHuxBSHWIcpDhGByyIzIGy4myFciHrMOEW2F64SWRCuEcKASCGTEHGITyFhCzEHEixwZ0CshpRFkD0m3759g1bDkHU0kKIQ0h2ElOnwgIObDk9AyHZAer0QmyCugdgNISEiEGMh23IgfTshISHI9cBwjcjqIbrgJMRjkM4lpPYSFhaGyP779w/SvYN0UiHDpO/fv4csTObh4fny5cvTp0+lpaUVFRVVVVVlZGTExUF7iiALkSD7siCVHOSARkjlAXEwcqgxMjLy8vJycXFBCnFw5fXnLxjAq2HIsiZIZQYxAVKQgZbDsUCnACCVMSS/MTMzc3FxsbKyfv78GaISnBlZIEPNnJyckIltSOkA2U0EaUB9//798ePHkOMwIWdKi4mJ8fLyQoIIMrnAzMwsICAAGVqH5yVIZEFadnAbIcvcIE2B72AAWYPGwsIC2aP15MkTyDQ8xDTIGDhk+B1yiCYXFxek+ofEJsQ6yAUhkIFuSCUNSVGQVggkvUFCGF6rQbiQpgDEKLgWSHRDBCEJEi4C0QVpyUFSJkQKTkIi6NevX1+/fv306dPnz58hR2tB3ACpa5HdALEUUvvCSUi5CbEargDCgFgEz5ZwQYgIshY0lchciDKICOUkPBzQGMhceFKHxBempZDmFNwXmArQRCAqIckVkmfhnoJIwdXDZeEiyAyIYrgaOANZDTIboh6ZRJOFS0EYEP/CgwI5viAK4CIErUa2iBg2VvMhpQFkNAvSYoYog7sQzWR4UQlRBpGFsCEkPNjhUhAfwWUh4pCMA1GMbBc8fCAZB5LpICRcI4QB0QUxFkJCTIOwISkBwoY4AFkWYgIygKhEFoEAZFsgboaohIhDRJBVIrsfLoupGOIYiEY4G2IyXBA/A1kxpOxFUw9JP5CggwQm5DAGyAQZpJICVQyQxQKQLZ6QhTaQ4gzZWXAPQAQhXLjRcAbEBXCXQXajQmp0SEkHqUI+ffr07t07cXFxyDkPkIoB7lyIIZgkPOXBq2HILK+goKCwsDCk4gHXIKCFZszMzDw8PJDZWXZ2dgUFBTMzM2tra0VFRchNEpAxAUhs8fPzQ5Z0MTAwCAsLQw6LhsxuwqtS+CyvsLAw5HJitGoYubv/9etXyBg7RBCy4QTSPoAHDmRiAH6TICRkINtbIQ1kSJxB1nZBWgyQlVyQyWbIUSFv3rz59+/f27dvnz9/LisrKykpCal3IYOubGxskKiB1B+Q6gRiL2SxGGT8ALL1C3LkyIsXLz58+AA58ATSx4UPPv/69evHjx+QYyAhi7AgPWbIIAEXFxfk6mXIWAIk6UMKF8juIMiMLGTcBTK6ABlgh9S4EPUQEuJxiMshboYkHkgCQFMPSZDw1AJpJkJMgAvCjf3z5w9kxh2yEQBiLHyEAFJMYCUhNTQkGCE2QpTB2RC7IJELkYKwIeIQZXAS3ktGFoGoh5BwXUQyIPkRohiNjcyFKICHBiSUIDUxJCPAFcAZyO6BhD9EO7I4XDGcAYk1iNWQ0MDKhmR5uC5kBsQuiC14lMG1QFRihidEAcQNkEiEqISQcFdBNEIshbAhGiEkMQ6AqCSGhFgKsQVS9kJGyyAHA0CyDyRSII7EZSaaLIQLISGGQzRCROAkhAHxEdwlkDiFcOEkJANCXAIhIQYik5CAhaRniEaILEQckgzgInBXQWQh4mgA4jw0QbhGZHFk6yDicBFIwkYWhEtBBCG2QAIBYjiakyAKIIqxkrgUwMXRbITkL4jDIFXPjx8/ICdQgXpoEKdANm9AVupCDraEGAchIQ6FmAsh4dEGiSq4IFw93OloMQEZHIecYPX169dfv35Btr3CDYRrxMqAmA/ZaMvCwgLRy8PDIygo+PXrV8glhh8/fvz27RsrK6uEhMTv378/fPigoqISEBBgZWXFz88PGfKFGA6Zs4RMbTIyMr569QqiEXLVBGTWCrKQBzJdCrk9nouL6ycYQG4xglTGkJOkIFsAv379ChkQhtybBOkLQi4fhM+gQ7qhkBoFMi8LOZHq69evkJEJsA0/IROxkEuOId1TSK0MWVj069evDx8+PHny5O3bt+/fv4d4X0JCAtKB5uLi4uXlheQfSDTBAxnStoB0BCFXJX7//v3169evXr26fv06ZAialZUVMrwPGSFgYGCATFzBb12ENJ4gC6EhHWIODg7ImjLISjqIdZDuFCSBQRoTkCQBqfwgEQpJnZBIgeiCpyhIVQ1xKsRGiHa4FRBdkFwEISEmwItUiAJIGoZsIIZ4ENKhh/TLIcvOIY6B1M0QNsRAOAkpbiAGQgThxmK2+iEmQPIXRAtcMTIDmQ3RAldMDAMesxBfw0kIAyILdwPcfLg4JAVC0gNW6yApDa4RYixWlciCEPUQElmcJDamdnj3ANMceIKBSMH1QqIJQsKrYQgXogUzcCAmQEiIGuQ4goiTTcJDHuIGCAmpjCFnTUMKHEhmh7sN0zq4B+FSyCJwNhoDmQvxGpyEOwwSxZACCiIIL0OQwwFiFJyENH+RHQP3GkQQohLORuZSCCBegDgbbhRcEC4CYUCKBYjtEBLuKQgXmYRoIZLEtBESehBxCBvSBYLMDUMWFUHOqQT1hiFTd5CuD2SHK2QWEGI9xN0QNppXIR6AuxtiE4SEqIcUr3AR+EAo5PiqT58+ff36FdK7gsQZRBdBElIQQ+yFVFqsrKyQdU+Q5AsZjP327ZuoqKi1tbWjo6ORkZGgoCCkSQJJYZCxX4hPmZiYhIWF37179/79e8juIMhyJEgVCznWipWVFXJMGOSEDUg1CbmqCGIp5EiNHz9+fPny5ffv39zc3JChBcjRiZAqjZGREXIyKNwlkNoXkvcgE+eQKWFIJEEO2mRjY4MYDnEJJHwgI9sQ90PuNv79+/e7d++eP38uJCTEzc0tLi7OxsYGuWwK0imHzDFD+qNfv36FnL8BuRUK0i5jZmZWVVWFVDacYAC5KvHPnz+fP39+9+7dx48fIf1gSLBDeu2QmWzw9ZIcbGxskGPXICUIJHNCBkUgwy2QhgUk7iAegSQqSIDAxeG1GqTohKuEM+BFAySVQ5IExCi4GmQuJIFBEiTkXBpIRECCEbILAGI7pGKGpG0ICdELYcMNhyiGkHApZJUQKQiJpgvORWagqUSWQvYIVnF4FoOEBpyEhxLEYRASbhpcF5qZaFxkh0HYEPPRlEG4cCmISrhdcC5EGVwcEtFwQTgDrh6SkCDq4e6HK4Mz4OqR4wLChuiCpBAIG5LC0bwPsQjufoheuPlUZECsgJAQWyBug+zmB89x/YU06yHuxG81xBy4vzDDAWIFmiEQv+MiIe1dSJjDNUIqAoj5EOsgJMR8eDxCghEuBRdHNgfOJp4BsRfiWYgurGxkQYgyCAnRDnEq3CMQp0IEkdkQxRASl4FwcawMzICFBCZkShhSrUDKfMjwLQukmIMU/ZBRU0gxDamrIJohJMRoiK8gTocUshBZCBuS7SEkxH2Qgg/uSUis/P379yMYfP78mZubG1ITw10CtwI/A5JSIeU+5HDHnz9/Qu4jgpwp8e/fP0lJSXd3d11dXciKLUhXGOIYSJsAsm0Lst+Xj48PspL29evXwsLCzMzMkJMrIEPBkKQJqTUhd11ADiWGDPRDHPPz50/IsSF//vzh4eGBnA0JuUMeUglBKhsICUmp//79+/z5M7wNATl0GrLMDzJFBNnrDIk/yBgvZLcupLZgY2Pj5OTk5eWFjD9DOuJv3ryBnDECWT/Fx8fHw8MDqTIh0QE5oPvz58+fPn168eLF169fubm5IaPZkN1fkGoJUuNCgoiXl5ePj+/9+/eQ8XZIwQGJIMjaLkgzDtLfhbgWkpAg4QaptiHdeogvIIMNkL1nyF1bSGcUQsLnWiDOhpNwBjwkIQkS0iiBuAqSXCGJECILyX6Qyftv30DHen/79k1YWBhSE0PSA2TYGcKG5ENINEFMgJgMISGymGw0lcjKIIohJMRhEFlIgoSIQGSJJyEhAPEsJCfCzYH0dCEKIL5AjjWIFRAHQNhYSXg0QUyA+A4SkljVw23HajJcEOJlrCZABCEq4crgDIg4RA0yCSlYIM6DiENUwkmI+yEkRAGEhAQd3NkQBkQXRAEyGyJCCQlxAMQ7EJMhIsiZBZJBIBkHogarjfidCtcIZ0CSB8QouK8hyQPCRS63IeIQxfBQhTgVmYQU2pDmAsQ9EC1wNfB4QbYdogYriWwIpgJ4woMrw8OAaEf2PtydEHPgjkQOamRBePkDMQqZhIcPxAEQEuJHSGBCSHiQQpwB7w1DSjxItQu6uQ4STMj9JIgGZCshJkJsQpaFeAauEiIFGYSEKIanNggXYhck5iAHbkAmdCFaIGEE9x7cWAgDYjjEHIi9kB4eZAIYIgvZEgMZwGRhYbGxsVFVVRUREYGcY8XHxwfXCAkdiAmQqVbIoZjc3NyQmVHIUizIGTeQOh6yGQlemUEqJ8goNGQ6BzLU8P79e8hFT5DdTZCKAd5GgdTZkIVLkGYvxFjIACnk1BTIsDOkJobUUhASYsuvX78gM+KQRgBk2hVSDUMqGMiZIZBbCOEneEMGXZHXfnNwcLx9+/b+/fuvXr3i4uKSBAPIpDikCoTUwZBqCbIqDXKf0vv37z9+/AhZ3wRZLw1pEIASE3iEATLaDPERxOOQWIOMvEFSKiSWISkeEg6QtAERgRgIiUfISAOk3oXUKxATIGkSkjbgxQRcCiIOsRdCQlIIJL/B9+Z9//4dohdSP8FVQpwBMQTOhpsAZ8AVQOyFcCFsNDVwKTQGJIOgCWLlQtyGKQURh4QGhIQ4AOJTeIhBPAiXQnMeGhfZFshGC0iSgAQFRDG8mY6sGNN8iPPQ1BDPhWRYSBzhNwqefiCKka2AOBjieLg4RBBiJjzc4O5HUwbnUs6AuBNS4kHcAHEYRBxSXEBWSuIKYYgbIC5HDh+IOBoJsQJNEOJfiAlwElIkwqUg4vDAhJsDcS0kOcFJiDJkx0CUQcTRjII4Bi5IFQA3Dc6AOxjNfGRxCBuNhLgcWRDNBAgXbhEkxLAKQqQgJCRpQcoxiAjEBF5eXkh0s0BOjILcSA9ZvgXpLyMbjawTzoYbCimsIeZCBCH5HzLn9PfvX3D5zAKai2ZhgRys8fPnz7dv33748EFMTAzS6YSs5IIUTJAIhjgA4gF4ooQEECQdc3BwQA7D4uTkZGdnhzReIA0NLi4uyEpsiHrIOTWQ4XeIOyHLiyCHY0CWq7GxsfHy8r5+/fr58+eQ259+/PgBOXsZsp2ahYUFsjIZ0pKAjC1AFlZAxqh///794sWL169f//79G9IBhZxc/fHjR8gqLUi1BFmRAbH09+/fEHMgNTRkzBYyIQpJxJBaDd5dhpwKCelcsrGxCQkJQY6thnT0//379/Hjxy9fvvz79+/Hjx9Pnz6F3AIJuRUYPqcO2Tp89+7dDx8+yMjISEtLc3JyQkIYElyQYWT4jDhkgzlkj5OQkBALC8ubN28g08CQiW3IcWOQ4QTINipIMwKyzA0SXJA5cg4ODsid0P/+/YPMOkOqW0ivC1IBQ9RDoglSOkCSEyRmIVU4JHCQUwgkWUJWNkDSDKRcgPgI0n6CBO+fP38g55LKycl9+fIFchnlv3//4GenQLQgGw4xCpLO4eLIDEgHGu4quAmQhIqsEsKGqIf4ESICISEaIX5BJuGxAwkczAwCyXcQEtKihaiBuxwSbpBSBqIAEkoQWyDhA2FDXALxC9w6TIfBlSEz4NUJRBCiC+IGiNsgGRySqiHjEJBAgFgNISG1Edx5ENdCXI6cNeAaIU6F2wXhQkiIeyBWQ9IPxAp4+EO4EBKiBdkciBsgfsFKQtwA0Qgn8eiCxyNcDSQQIF6GTH6zs7NDjIWvaoTkEYgvIFKQ2IQ7CSII0Q4RhIhA2HCHQQSRSYg5cO9D1EOCGsKG64UwIC6BsCEBBVEGiVa4RmQpZDZEMR4SUkLCAwfiVDgXrhFuJkQBnIvJgGuBM+BqkI2FpAeIvyAqIcogJFwlxDpIgoQIwtM2JAQg5RUkpiClFkQLpNaD7CWBDGdCpim5uLgEBQVBlSLEOEjXENI1geiHuAYSQxARiIkQ9RCbILKQSgJZPUQc4jK4SojrIRkDsk3o8+fPX79+hXTmIC1uSFaBGAWxCE7CBZEZQkJCnz9/hpwKCTmFA3KQJB8fH+QIScgWW3Z2dsjgLaRYhHsH7l/IoC5k0y1kHhRyu8PPnz8hHTv4sDPklgJGRkbItiVIgfL///8PHz68fv0aMjEM6ZhCRrAhM8qQNcaQI7ogVRRk5BYyKQtp90D605B4hVQnkHYDJOnDIwgSo5BOM2SdGiT1Q9o6kLbIt2/fuLi4eHh4IKOvkHFvyIQ3xD1fvnyB7JyWlJQUFBSEpDbIYWGQwIF09CGBz8jIyMXFxcbGBu+7Q47PhKuBuJODgwPSHoK0WuBpGp4AIMog42/IKQReYUD8DlEPcRJkZB7iJAgJdxLcBHjSh6dP5BQCYUMiEZLJIadwf/v27fPnz5AtIpDCCKISEpgQoyBugIjjJyHqMdVAUjumOEQ9hITLQqyD+wsSDhAuRA1EBNmFEJdDzIFoh6QuiHqICHKIQRq7EFlIuEFCFeJONPUQZSSRyCZA7EUmIe6EiEAKB0i1BBGH+BTChqcEeCpC9jXEFoibkZ0HEYeIQNjw8IEbjsyAuARuBZwB0QuxES4IMZZGJMQvkPiFTAnBG8FwR0JChjwHQMIB0yiImRASYjLc73CPQ0QgshB3QkQg4QNhwxXDGXBxiEYiSYhLkEm4m7GagMsWXOLIhkBSIFwErgXOgEthZcAdCUlREHdC2BApuC6IIKT6g5R+DAwMPDw87Ozs/Pz8oE4OpOiH1CiQFaTw/hncFHh2hdgEISFGQ0hIUw7Z9RBxiD8h2iFX0EPqWkhF8uXLF8gGYj4+PsiUJMRkSA6EsCEkxBy4e5AZEMMh7QsRERHIDU7CwsL///+H3EgPOd2JiYlJQEAAcholJKHAK2DITAzECkjb/+fPnx8/foQsH4MMFUA6rJChAki3CbKeAl4tff78+cmTJ8+ePYNsSIWo////P6SXDDnPC3LyFKTKgYQYZAsQZHwbUhpCal+Iekgqh1TzkDCBTC0wMDBAPAU5YwvSkYWchwevCH/8+AFZn8XExPTjx4937979/PkTct09ZIvwx48feXl5RUREIBdGQdINRAoSPpD8BmFD2hyQOIV0WyEHcEIWhEPUQE7z4OXl/fTpE+QkaoiZEJdDdEE6xJBBEXi5AAkQSOKBkHApyMJmiL2QiIaYCUkAcHGIFLIuiAJkEnImF6SK+v///48fPz5//vzhwwfI8AakGwHxMiTYkfVCXAUhkcWR2XCHQRISnItc7cEFISPGkLQNMQTZcIgyuO8gRTNEGYSEuBCiBaIYIg6JCIg4JDQgshARNIdBtCArgMQURDFElgwSYiBcI9w0iDiEi+x+iDshQQHxMkQvshoIG5I3IWx4moEYCNEO0QhnQ2yEmwlhwEm4vZBAg5MQQ+C2QMyHhAyaGohKiC0QZRCr4WyIAiJJSNqDp09I6QQZw4MYC7EIQhJpJrIySHMHIoJsCCQc4G6GOAPuU4g4hITohSiAiEBCCa4YogCTCxcnhgFxG4SEeBy/Loh78KtBloW4HG4+3AqIONzxcC6yXmQ2JCFBtKOxIcqQrYB0UyFDjJC0xMLCAlkhC2lssUAKTchAImRLJaRKhtQHcBMhJR3caIjFEC6EhEcnxAMQQYh2iF5ICoPkJYhvIbOY79+/FxISgtwvBFkqBdEFMQFiEcS3EHE4CbEI0vHi4uKSkZGBnCLJx8fHzc0NmVOE9E3//PkD6S5Dhp0hJSOkM/rv3z9IMffz50/IUiPIqXL///+HrEWC5ARIYQ1poEAmQSGF2p8/fyAnaL59+/bdu3eQcyEgXS5INwtSof78+RPS8oCbAPEX3HbIvC/ESRDPwsMT4jyIZyHhBhkGh4wGQ/ZcQWr9X79+QdZJQUIAsnoL4lnICY6QS4Ih27EYGRm5ubkhx338/PkTsqEIUt1CRrwhDQVINx3iWngMQiyFDA9AOsSQbi7kAmPIqdeQg7ghkQWJSsjWJkiXHZ4MIC1EeF6CBwgkECBugNgOISEGwmUhbRe4LohFcDXIDIgUJA9AAhDSG4Y0aCCxCQlkNIvghkDUwLl4GHC7IGogXDQ2xM1wKUiJBiEhKiF+hMQ+pmJ4cxauGM6AmwlJLRBzIGzIfD/cFggDEviQYhoSAliNggviZ8DNgRgOMRAyCwPRCBGHJAAIG+5giGKIMoirIArwkHDfwRkQ0+AkhAGRhbCRSYiNEBISRBDbIWy4vRDtcBKuHqIMrgXCgJgPYRNPQuyCTMpABroguz8gxTTaGCEeYyHhj6kAUp5gisNFIJ6COAPNX3ApuDimCNwcNAau0CBVHBeApBNcsgTFIZka7hhkf+HXC9ECKSvgbIgWiCCEDQ8xSD8E4lpIlwly2BRkzy3Ly5cvIZ1gyNwkZN4OMv4JMQJuBzwi4SJwBiSBQvwAsR5S3kFISCECad9BXAApfCHbbN6/f//hwwceHh7IOm2ImRCrIUYhk8iyEDakSoCcFw1ZcQ0ZleXk5IQogFQqP378gJyTJScnx8XFBZkJgzgMUtJBmh3////n4eH58eMHfHsSZD4Y0ieGqIT0q96/f//z58937969ePHizZs33759g2yA+fz5M2SKEVLjQsY/f/78CRnRhd+cyMICWqPOxsYGuU8JEoCQ+IO4CuJriAgkCiE5BD43BokOyBAHZAwcMn4LGeuALBCDBA5kZzAkb0NOxmZkZBQXF4cYBcnhkACBzOJDmhFwJ0FGC+DugUQNpE6FbG+DOAzSiIF0uCEpDDJ6D68wIEu0IJ17ZF9DEgPEFni1CvEd3A2QcIBEKCSZwUXgDIgLcZHIuiCd0V+/fn3//h0ScZCpCkjKgcQyRD3Es3B7IXZhtQKuHi4L0QUvFiFcCInWvIAHIKRyQrYUHgLw9AnpCELUQDRCzIS4DcKGBClcL8RJcCmISoiDISREAYQNybMQvRBxkkhIQQPRAglJCBsSDhAHQ5YKQrwAVw93HsRqyEQMRD3cYXB/QcyEeASSVNCcDTENQkIUQ6yDFLsQNkQc2QpkcTgbogWSQiBaICTEVRA25STcqZCpYkipBTmHH95GR3YSXD2a1ZDQQBOEBClcENnlEDY8EJAZmOohiiHiyGyICC1IgrYQVIDpKkiEwgMQzoCEEiQhkWEs3CJkvfCyFBKwEDUQNqQI5eXlBS0bevXqFaQrDEnTkAMLIUur4MZBpNCcC3E0xFyIxyBsNBJSqUAMhAyAQ1p8kPrp8+fPb9++FRQU5OPjgywyQq5ykI1Cth0iDnEe5G4fyCHpHBwcLCwskFQLcRKknmNhYfkKBu/fv+fl5YXUtXBPQUZ6mZmZIQsiIGkd0jGFaIR0+CDXPECGMZmZmb9+/frhw4enT5++fv36x48fkPY+xATIwVjwGgXSoYQsLYaEBuQ6BMhlgpC5YUhHE17KQJICxCUQj0MKX8gO3f///0PqOUjPElJgQU5mgXTBubm5IYEJWRIMMYGBgQGy5BviME5OTj4wgKzwgrj/9+/fHBwckACBFAeQE10gYwOQ6IN4B1KqsrOzf/36FR4dkJoYcmwIZJQCogxS1ELiC1K+QGa/IFUvRA2cDXEe3M0QBiSyIBZBRCAhiSyOHFwQlcgkJD9AUhfkdGvIHjbI7ANk9RkkFiAFLsQWzIhANhOZDfEjRASiF8KGFIsQEbhrIQxILQVJqPBMAa+JIdohORbuDLhGSFKBcCE5EcKGWwQJbTRBUIZnYYELQhRDwg2iHm4dsrMhLiGShKw/gHgNEqeQmIKYj+w7iO3wpTFw8yHiEJUQXXDvo6mB2AJxKkQlRAHEBAgb4jtkNrJKiCxEBJmEmAAhIcELSRUQ9XDT4Fy4SohiuDiySvxsSKRANEISA6RlzMHBAWnfQ5rLEEMgHoew0UhklyBLQXwHEUFjQ7jwqIdwkdMzRATiNlzmQ0yGkJSrQbYRYia1SIjbIKENJzENh+RKTHG4CCRNwt0JUQ8h4WogDIhKyKgkJC9ARqch/RNIRgYNSkNGXCHpHt4Phic7iFkQF0PYEBLiH3iygwjCuXD1kEwCEYfU8ZAiGFIUfvv2DTKoKyAgALnhAOIxiGOwJgW4RRAGZEMFpEKCVPaQSWjIMY0Qb0Nmwr98+fL161fITX+Qs4EgshAvQ5oFkC4sZMqWhYUFcmAWRMHnz5+fPn36/Pnzf//+Qa5NhFgNadpDhoUhdS1kOS6kdoTohVSBkIwEOUQaMggP2W4ECRZIPQGZcobsUIIEAiT1Q2ZVITMKjIyMPDw8kG1LEFsg0Q8Zz4BU2JC4h9TKEBMg5kOq2P///798+ZKdnR2yXRhyzAgkjiCNGMiSYEjdDDnn5dOnT5C1XRATIHUn5GYIeEqALD6HXBkJmR6GtEjgVkPOLoWQkMIF0oOHK4AU3MgGQlwFSU4QcYhn4ekK4js4CXEYJG2gkRBDIGUc5OjQDx8+QM4kERISgsw1wLUg2wVxAyRlItsLVwxRAOFCNGKKQGyHkHCVkBQIafHAtUDiHWIdvHCEDE6itVGQMwjETAgJiX2ISyA2QtgQK9BEIBZBAhBiHYQNCWeIgcSTcMMhNkIMhKdJSODDPQgRx2843C8Qk9HCHyIINwHiF2QSqxTEg3ApCANNF8T9EPMh1R5cAcRTaLrg6iHipJJwwyHBDrER0uCGrC6EGwhxElo4wGVxJQm4ArhFEBFIXMADBC4LYUDUQNgQEuJNiDgmCZGFkJDERtA9aABiCzIJdxuaSggXbheECydxiUNcBQlDZBLuTkj4w83BxYC4EJcsxM0Q8yE2Qs5BgtSqkCk8yGAk5ChG0CYiSN0DKdAh5QLEdLiD4F6CiMC5EGUQEk0K4gIICXcTpIsJSUCQnsefP3++ffv26dOnjx8/Qi4CgozoQpbMQMyEeBhCQuxCJiGHY0B2K0F6hJBCDZJ7IfUQZJk0ZIXUly9f+Pj4IDUoxHkQV0G6ehDvQ46sYmNjg8TN379/v3379vLly9u3bz9+/JidnV1cXBxykDVkfPvx48fv37//8+cP5FgMyAg2pJcJGYqH51tINQOxBeILyKYdSIcbMlgK8TVk9B6SSSDVG6RjCvEpZHEWpCcBqekhbGS/QNYFwItviHXQxhcLC2RgQFhYmJ2dHTIlDzl5Ax65kN7/27dvnzx58urVq+fPn0OOx4I00v/+/QuZaZaVlYU4GBLLkJXbf//+5eTk/Pz5M8TjkLiAVJCQiQPImDxkbBZSykBaM8jVDCTwIXEEISEpB+5CuI8gViNzsbIhGiE1AWTK/8uXL5C1+pCWKCTGIcogJFZzsApC1GOSkEwIISG+gKiBhAkkJcBDCRI7EGVwQUg4QPwI0QspoyGpBSIOIeFaINZBSIhpEDYkSUDYEMWQJjmkTQw3BB6hWH2KXxCy+RBuFDy0IbMncOsgCRvuBbiZ8GwOKbAgToV4AZI24CZDGBCnQoIFoheNhJsD8S9EF9w6TAZEO8RASDhDbIeIYKqnogjEakjCgIQbZCIJUjJDxCHWQZwEYaOREEPQBJG58HCABAU8IiBq0LTDuXAGRBkmCQ8fCAOZxFSMRwRuEYSBTGLVBbEIqxRWQWT1kGCEkxD1yOEMEcFFQlRCXAhJqHA2mhZIcxNSAELCH/kgB9Bs3ZcvXyB6IFcRQIxDzh4Qo+EkpCiEaEEjkX0IiWOILuQaAnKINKSbBdH+9evXN2/e8PLyCgoKCggI/PjxA3InLvzgRkhahAwnQpwHyXuQWUZIywLSEWRiYoLMeEPWCUNqMshqWyYmJshwNCsrK2Qqmp2d/devX5C105BdtpCxAkhPFF5fMjIyPn369OvXry9evHj16tWbN284ODhkZWX5+fklJSXfvn0LqY1u3Ljx+vVr+DovSNUIKQIgZRw8L0FuSvjx4wcXFxek4wg59hKiGBK1kMXYkPCERCEkW0JKMUh9DLkdAb5U+9evX0xMTJDBakilDpmmhTREIJ1pyIHekP4uZIsz5DBOSUlJyLI9yHEWkKHLb9++3blz5/z5848ePYKcrAkewwa1YCDHb0HOLPv586eQkBA/Pz+k9QOZLYacMcLNzQ0ZcocsjYY0sEBpjgV0fxQrKytk4BrS5IIkFbiXkSMakk4gUhAS4kIIG56L4FyIeggJMRZS/UAyAGRMAuKY9+/fv3z5UkRERFxcnIODg4GBAbJiH9KQgpsAiQKIdkhihlgKUQBJ6hARSFUBqVwh7oEMRkFkIY6BkJBYgKiBFIWQ6hYSxRARiMkQWyADBhA3QFRCMikkwUDMhJAQ9RBvQoIRbg5k8htuCLI5EPMhuiD5C+JriGnIJkO0Q0Qg/kJWAwkfuBoIA9kBECdBNELSDLIIJEAg4pBaEDkwIfEIMQ3iPIgzIIEAcQZEFk5CFjrBpTAZEBshJMR8iJshUQApDSAlA1wNnIFmL9xSTFuIEYEbC2mNQToqkFiGBAJk8SxEGcTjEDbcXohrISEDdz/Eakhcw9XDGRBxZBPg6iFqICSeYh+iHq4A4jBIGEKkcJEQlRCr4Wy4e0ASSBjiDCQBKBOuEaIAQkJSFFQFBgVJe3CVEKfCzYErhyuAMCAkRBk83pEZEI143I/cI4KYAzk7AXR2FsR0iBEQNoSEiFBOQuyDhAvE/5BRTUjvB9KDhKxZhWz/hUzuQrwHKQ7g7oEwICSk2wcpjiGnUkA2/kLKEUjNB7EOYggkY0Pq4BcvXjAzM0tJSTEyMkK21UJGBiBXXkDuTOTn5+fi4vr9+/fTp08fPnwI6bVDssffv38hS654eXkhA9e8vLyQaw/ev3///ft3iAvhHofkBwgJOdISMv4JaUbA9+NCsjqkFIO4GRJQEB9BIgLiI+SyHpLlILP9kNYWRCUkwOENEYhdEO3ILQzITC2kToIcGsDJyfkBDCAXAoqKioqLi/Pw8MDvNIScvvnmzZu3b99CrlSCNCkgNT1k9hrSAoA0FyC1LLx2gXAhkwgQz0KyAdzZEJfDSXhKgDgeEraQsgnChotDuMjmILNx2QJZpfXt2zfIiWCQQXJIBx2iHWIsvJEEKW4gghAFkHIEEk0QxyCLQ5ZWQUSQdcHdAxGEpxZIjoD0HSGCkCiGKIPYBSEhIhASYj5k8SAk8SCrgchCTIM0CyBsSOEOMYGVlRXCgCRyiKWQYh0SFxAtEKMgInASYhdEASSdw0Xg3oTIIpMQoyCWQsINwkaOcUhSR5aFRASyXoiZkOIPYh1EBEJCVFJCQsykxASS9EKcDQl/SK6BZBbIzBE8QCBmQhQjhzYk9iGxAA8TiAKIFiJJSJhDFEPiBULCbYRIoZEQWQgJkUJmQ0QgJFwckwFRQBIJcRtJWiCK4bZDuMSTkFQKCViIIRA3QNhYzYEUHRAFkPiFsEG1GEQzco6Ci2A1i1RBSCKGmPn//3/IXhHIyBVkyw1kbRS8NOTg4IAse4Y4CZLsIF1hiDcgPofUhfCik4eHh4uLCzIFC6nPIJ17iL2QkgXSfXzz5s3du3d///7Nz8/Px8cH6edBBpMhXVjIcKuwsDAbG9v79+9///4N2fUE6WqzsLB8//79/fv3kM1RkK23YmJi379/By8C+/r9+3dIhw8SxJDqH9Jlh6xg4uTkhLgW0vHi4OCAzA1DHAnJOZBQgpCQkVtI7oL4HRIFaF6DtPohQQTJQpCggwz/QoyFhD+8HwaxF1J//PnzR1BQEHLm85cvXyCbjKWlpRUUFCC9duRi+vfv35CrKj9//vzixQvIDiXIZhiIFZDjPiAj58hlPSTtwqtqyOwIxM0QT0EiHeJ+iAchWiDGQsThKiEMuCBEPUQQk4SEACQA4Sohp4l9/Pjx06dPAgICkAV9kNYPZPUAXCVEI6T6RzMcEtFwbyJrgY/EQMpTiEqIdkgTBGIsXByyBwzuVAgD3k+FZF1IEEEMQWMjcyHhBjEfrhiSGeFciHpIAMJjAaIG7mC0th3cqRBDIFyIFjgJl4LLojkDogBiO4SEuAEuDglnSKRDkjE8VOEMuOEQeyFhBWFDrIMoQDaTGDbEBDS9kFEETO3IzkbTgqmYeBFIRIM6SeD1dJAVJPBsC1l6AolfiKUQ9RCXQwoKZBFkeyG6IOEDD0kIF6IMoh0S/hARSARhZcMF4SZA3APnIjOQFUPYcMX4lYGk8WK4R+AMvMqxSyI7BlkFJEAgJEQcrhLCgJAQKfwegWRkiCPhEQQpB0DLJiFGQKQhJB7j0GyF6CWehPRiIeOZkNFmSFsPMhwEGWKFdAjgSQFSB0Na8fClQ5AMAJnEhawGglSTkHQGyZMQX0BUQvwFGQyH2AKZDoRUQpDzHOAlETs7O6RQhmyohQwjQ27V5ePjgxS4kDoVUnDz8fFBbvx99eoVRAtk6B/iAAgbMqcL2Z4L6SxCZiIhtS+kroWQkOlkyIAthA3xNaRHCyEhrV2I+fASExJi8NwIL8XgxkIqGLj7//79+/Xr11evXkHWK0lJSQkJCUE2awkJCUEWzUEKIEiJADlmBNR2Y2GB3Nn869cvYWFhSEsFcm0lJL1ycHD8+fOHi4uLg4PjFxhAOjGQkXkICVliBjcfkhwhkQVxIYQNSbtwEXhKg0QovIxA48KVwRlo6Rau/vv375Ax9m/fvkFOtYQEIzxhwFVCjIK0HSGmQUiIOGS1GqTOgLsWsmYQ0v6DLOlH1gKJPoh2iEfgdkH8DglMiDJ4OEDiF+JIiHqICISEKIaYidUuSG6CS0GMhahH1gtJPBBlaCQyF6IRXqZgSsHNhEhBHAwhIV6GZDqIfyGKIb6GhCFyeELUQ8oBSJqHkBCPQ7I8xBYICTcN4kiSSIgLISSyRogIpJCBmw+xDi6FrJ48NsRHEPMhewghuyrg/QRIboLYCw98SJkACT2ICRAS2Q0QWUhIQrQjy0LYEI9ASIgIMSTENGQSogsSLxA2JglRjwwg6QFZBMIm6B64AjgDohEPiWw7MhtNC6aBcMUQBjKJphfOhWQ0uFGQqIF00kAlKkQdRBpCQkSoRUKcCDcNUjBBJgsh3Vb40OXPnz8hReHv378hJTU8K0JSDySdwRdaQ2Y9ISt4IaPKgoKCkNE8ZI9AChR4ChYVFf369auIiAhkcBVypjSkpfnu3TvI7iNpaWkeHh5ubm5I1QI5CYSDg0NYWFhAQODbt28SEhLc3NyQYfB///5xcnJKSkrKy8t/+PABUj1Dql5IRoK0MyC9VUjoQ5ImpJ8BOd8DeREyZMUcZNE1RA1k7TekXwsxDV4ZQ2IXMngI2UoEqdfhvoaPCkCMgmRayM0ekHkByCUQkMO/fv/+DbkkEXI7Mjy3Q3rzEJMh9RNkZRykywhpMUCcDXEYOzv779+/wTclckJOA4WU/pCBa/giL8jadfj2YkhZDHE5hA2vbCBc5GiFpCi4CLxkhIhjkpB0CFcPKYkgjT/IIsGvX79CD5YDd0EgfQ5MeyEegQQjxEyIXZBggTgekm4h4pAECUm6cEshI/MQBRASYhF8EgGiEuJaiC3IKQciC9EISUsQWWQSoheiBkJCzIGkSTgJkYJw4Qog5kMKRLjLkQ2HpASIXmRxrLEAcQlcCsKF+BfSQIRYh2waJBghaiDq4bKQkgFiKXI1jOZ4CBdZL8QEYki4LogD4FqQxSHmo7kcrpIqDEgag8QvZAMFZDsGJKVBHAAJB7hKeCAjxxqmsyHFKcSRcFkIl2wS4k6IdrjbIOkKIohGQtTABSl0Blw7nAE3GRcDHlZoLsFUD1EAMRkS4HB/QaTggnBxrIZAFEOk4Fog3Q/QfcMQzZC4gVgGUYqVRDYLqwI0QYh6iOEQuyE1MSSJw5sDP3/+/Pz5MxcXFx8f3+/fvyGzlZBqADLGC8l+8JVKkGuRIDcJ/vr16+vXr2/fvmVkZOTl5YX3SyA9LXgFDKknIGvBeHh4IEujIUdKQdQ8fPjw6tWrkOYn/MJEEREReXl5yIXEIiIibGxsv379EhQUhLgKskBaTExMQEBAQUHh69evkLYFxLUQP0KCF1JfQiyCFPGQGgviDEhVBCl9IO6EzOBCshxEJaRwRzMTUpVCkhSyFKQCgzQvIOEA6cZBuuCQiIDkHMgIM2RVMxMTk5iYGDcYQKooiDcha7sg4w2Q6IM4ElKdQE7NZGBggBxcDpkNhbTfIceZQQYhICKQvd2Q9AC5ZQt+3iekUIP4AkJC0hKEjZYy4Vw4A64YwkAj0ZRBIgXiR8iuuQ8fPvDx8UEm7yEOhtsL0QtJyZBpY0jlCglGiCyklQOxFCIOISEpGRJByDEIaZZB1EMiC8KG6ILYhVbbQZIQJJTg7ocz4BoheiEksmKICCRlQsSRPQjpZULUQMQhaiCJBG44nAthQPwOl4V4E+IRZEMgRqGJQwQhlT3EHIhfIKZBFMNFIFx4cQFRA69sIEZB1EBIuIEQd0IEiSEhGuEkJgPiJIhRkGQMUQMRh4hAZEkiIUEHMQpuCCR/gXpLLCz//v2DbGqAlDBo6Q0SFJDogwQOhA1xFSR8IFaguQqiDGIvRAqZDRGBqIGwcZFwNZgMXFrg4sg2IrPhCiDuR+ZiZcP1wgMQqzK4IMSpEBIuiMaAm4mmjLx0BYkaSKRADISQoKsdIDZBIgkiiuYUyrkQ6yFpBVLZQGoISGkOOWUCcpjXjx8/IPf7QhYKQgb0IJt/4I0+SOqEDAhDzomEjCtCbOHi4oIUo5CFWvAmJKRig0j9+PEDUu5AlgpDLmZ49erVs2fP/v///+rVq/fv30MuWVJVVRUUFITUNBAG5Jyst2/ffv/+/dmzZ1+/fv3375+goCA/P7+4uDjkdiOIHyGVLsSPkA4rZCr658+fkLwEaQpB5mgh5RFk0B6y1Bmy/BuiEpKwIGN0kDFqiAjEy8ghA6khIP0MSO8KEpLI6iGj0/B4h4y6f/z48e3btz9+/IBMFkC6GpDUBglDSPsGEokQWchKP4gvIDPZkL4vpPcMWUMOuS7i79+/8POuIU0HZmbmHz9+fPnyBTKnAPE+xEkQEpLqkNkQEUgihhdDFKZYyIj6+/fv3717B9kyB9nSDTEfXpdALIXUl3D3QwIH4kKI+yHRAVEMYcPFIYJwElkc4i9IPxuy0xoecZCaGGIUhIRUxnDtENsxyymIMrh1ECsgJiCzIakCYghEFh6eEL9D/AiRgkQ9RAG8uIAog5gJYUNMg7MhXIguTHdCPALRjkZCLIUIwtkQ90D8BTEZ00yIFggJVw/hEiQhZqI5HlMXRBkkECCOwVRDkgjEg8j2QtiQjAaxCJ79IStUIG6A2A7RDglkZDY8cOCK0RhwLRBxCAl3OVwWIgJxBoSNRkJUQgQhbAiJK34hshD1EIBmNUSQeBKuHc4gRi/EGRASq3qIlyEkJKghJFwLxDoICZHCag6kSwmRgpsGjx1QbxhiIiRDwiUgGqhIQmyBJBFIJQGpZiBDqZDYQj54GeJWSG8MsogXkiIhqRNSPEGOwoDsAYUcmwxZeAypgCH9NkiVA+mIMDAwQFqUP3/+hGxQgZxN8ffv37dv30LWP0NmTF+/fi0qKsrGxsbNzc3AwAAxlouLi5mZ+fPnz9++ffvx4wcDA8OLFy/ev38P2SYEmUCFbEqG1KyQqhcy7MzGxgaplSGdP0hVBxlgh0wAQ1wIDxNI/xgyHg6pRyGdWkgTBL5gChKekF4CpDqEhBIkx0LiFFIxQ8QhsQBJExASMooOqf4h8+WQUx4hKiG3GkPOHYPEFGTmHlLxQxwGMQeSciCD1ezs7JAbnCBnckGUQa4rhvTGIE0iyFI1SAcd0ocmJr1BHIZsKTG60PIJxBDIEipIawAyQg5pw0FCEqIFQkLCGZJu4SU7RAricYgWiEsgjTBI4EOqVUhwIY/lwPVCtMBJyF3UkMQA0YWctyGZAq4YYjXEIsgyaWQpiEaIRXD/QgZFIBUqhIRogTQ7IDZCPAvRCCGRxSGykAwLz4wQN0CMgggikxBxuBsgXAgJMR/CRiaRFUNshLgWrh7CgJAQnyJrh4sjCxLJhrgc7kG4LriZaJ6FOBUiC2HDtZDHgBgFiVx4uoIkKkjGgVyfClGG7BjMcMDlAIheXLLI5kB8hEwSrwuPSrgUxCUQEi5INoOgOZgKIF4j1Ua0nAgxFi0ukM2EJCp40QHXDklmiN4wRA8kxcMVQQSRSXg2huQKiBSkboCzIQkIzoUkIIg74BEM6Yb++fPn06dPQkJC4uLikJHPL1++8PLyQkpDyHlVHBwckC0xkPCCuxBSVEE2/0BW+X769OnDhw+Qw6EgpkF6ovC6DcKAVBIsLCzc3NwfP3588+YN5DRKYWFhyPg2Kyvrx48fX7x4wc3NDRkLgoxefvz48ffv35BjtyETin/+/Pn69evdu3ch1eqnT58gg42QQg3iZUgMgRcq/YL09SFDzRARZmZmyH2IkOEBSHUIUQARgVgNMZCJiYmLiwtyGglkzRekvodUnJCmCWS1LaRihpAQvRBxCBtiJqRvB7EF4uwPHz58/PhRQEAAEsvwoIbohfTCISkJEpKQVgJk0AxyJDhkXBqythMS75BzcSGVPWSFGmSiC3IFFnyKHVLDQbrREOdB0jQk9JBTFCThQhIDJI0hk/CkC9GITMK9A/EChAtpln369Ont27dCQkKQSXFIYQcxFtKMg4QtpB6FhBvESZAQhrQzINENdx7EfMigNCSzQNwMiQK4FkiOgCiGzNlD2BCPwFsbEMfAvQPJcXCVyOZDnAFJQhBHQqyAkJjugZjMzs4OUQDhwtkQB0CqYWRBiC+QFUPcBhGHuAGZhPTOISKQwIQ7HpkBNxDS8oa7H2I4hIQEI1wlhIEc7MihAQlGiDkQ2yGGQNIAXC8krUKkIIIQEq4dHgKQQIC7AdkciBbySEhqh1e6EEMgHoHENWT0DuIFyJQZ8pJJyEgVJBAgetH8AncwRBZO4lKG1V+QngZcLzIDrh5iIISEnDEMdzOEAZdC1g4PZ7ggRBmEhIQ5XAqZAVcAEYR7E86AiMNJiHpkWUwRuGJIQkXmwtkQXXCHIRsIV4PMQFYA0QsRgUQZqDeMrJogG5IyICTEIEgCgmiEWAAhISIQNRASWQSyTgdybgZkkBbS24M09H79+sXLy8vDwwMprSCLoSDakXMUZHkU5C6/P3/+QDY7/f3798uXL/DDwyDFKIT8+/cvZF8vExMTZHwYcpbhv3//pKSkIGugIPcfMzIyfv78+fv375DxcEi3FTJ4CzmSArKEClJt/Pr16+3bt8zMzJARaUivF+JaSO6F5C5WVlZI7QU5xBsSAfDmAqTchPTgIROQcAVwoyBLnCDHXUH6uJCUDe8JwcMZUqxAenuQEIOQcAWQihZiHSSfQ9bNvXr1SlhYWEJCgp2dHdLQgYyKwxMcZIAa4lrIDQ2QpgAzMzPkmHLIZQmQzUiQ2hdSV0GcDdmpDBnN5gADyDli8BuZ4IkHkq6QuZBwgIjAPQIRhJOQAIFzIdkbTTGmyZAl95Bdc5CGHcS/EO0QNmQ4AbLgGdKnhwQpJCjgkQVRBiEh9kJIiJMgjoeQEBG4LIQBiRdI/oIXbRAHQJwNYcMdBqkm0QThsQ+v4eDugZgMSZYQGyFGIdsF8Rea8yBuhpAQKTiJHObI1TDEHIgWSPhAvABxFcRJEHG4q+BmQsQheiGCEDbEzRARTDbEZIhKiF1wc+COhMhC3AkxByIFIbGaCQleiGKIAggJEaEbCYk1yEoRCAlpL0LSAKb7MR0G8TumONVFIIkKkgAghkOcB2FDSLhjMBkQBZBgh8vCBZEZuCKCVHFkM+nPBlXDkCCDuxvOwOoaSAEEUQPXiBnEcL2QVjCkioUHKCMjI+TAKci6X0iV/OXLl+/fv0PGiiFbR7i5uSEVGGREF24mxDoICVkJDDnBA3JtH6TGhYxLQ8Z7IfUipGcMqYYhG0Y/f/78/v17yEZhyJVEkEOkIX789OnTnz9/eHl5Ict2IAZCKu8/f/5A5lAZGRkhe3Lev38PqVAh2R6SgCD+gtSRkOIV0uyAHAYCGYaFjB5DinKIB+GVHyTXwQMQ0hWDTJZDMiGk6IQUZ5DuLNw0iIGQg7IhjoEYDichWRcSgxAFv379YmRkfPTokaCgoLi4OMReyMwuMzPz9+/fIfUlZGYUUhlDWruQM0QhQ9aQsg/SeIL0niFT+BBnQ1r0kDIXfh4I5HhLiEsgroJYDcnDkDQDISEicC9gZcBVQjwFJ5EZkO4sxEaId37//g0/QwYS3ZA2GSSdwy2CJGM4CRGHmADxOKTBAYkRiF7IjC8kpiCVBLJLIGkYIoKcciBjA5BwgPsIYiDEUjgJkYWEG0QQIgJhY5KQwIckLWT3QAyH6IWQyHoh7kQWh7MhDDgJSdXIeiGxBjEfYiM8fCDBAulzQKTgGuGhAQkcOAnXAjEWrh5iPpwLdw8kliGK4YJwZci6MNnIToLLwhlwJ0FMgxgOYdOChEQZ5CQmSPKAt6HhrS6IN7Hajuw8CBtCInsHWSMucWQ1yGyIekguQDYZwkZWCWFDUhScjcaAhC1ELzwGIWrQSIi9aIJ4uLjUQ+zCo5GmUuiD0hDLMH0Odz1aNsB0PZoIRCMkQSMHPeSsSkihABGHlOafPn2CXM8HqQshpkHKMnjcQMyEOBVSuUIWV//79+/t27e/fv2CdKMhtS+EhFQbkKVPkAT9Awwgx0ZycnJ+//4dfrAGpCKETJRCKnjIjB1klheyUQpi4P///zk4OODdcUjvE17lQPrKLCwskA46JBB+/PgBqR0hs4bIxQ0kNCB1FaRsgmx8giRuyF3CkP1dkJ4lpI0CCT1mZmaI8yDBCBlqhhypAbEXEnqQQIOQ8NIQEt0Q7W/fvn358uWrV68gPW9I+Q7pecMH5CEXSUFqeoixkFQBCWq4jyDz+vCiAWILpOyAOABSE0NGsyFxCmlCQbRAoh5uGoQLkYIEDsQQNBKuDGIgxHlY1UBUQpRB2lVfv36FbJmD+BdiC0QBxF7IMjRI/ELSJyRs4SQkBuGKIcUlxASIeogCSEUOcQAkscFdCBk0hnAhxSukmoenCoirIEkCMowBVwyxF8KFrx6AcCFGQVI+xLVwl0AUQGIHQkJEIOkKIgJhQxwMISHiEBshIhASkmAgJkA8DrcOHhcQEYheuCBcC8QcuDjcELgIRCUkBOBsSJMFbibcEIgCTHGIG+AkXAGklwwXR7YdbhREEM6F2AURhLDhUlRkQFp4EHdCFp1AshIkZuHZBOIMYuyFxCAu9bjE8ZiMy+8QcWQS4gs4icyA2AtRDHEhJN4h4iClqBiXOKoq6vMgLiTeXEx3IpsA7Q3DAwKS/uCmQzQjk3DNcAZcMYQBUQwJOzgJl4LnZ8jgHmS7zocPH7i5uf/8+cPJyQlZoszAwPDt2zfIhUKQU9zY2NjgJiPnQA4Ojm/fvkE6Xj9//rxz586nT59kZWUhFzlAKgYICRk7hXfvIN0dyEETDAwMP378gBevkJQNKe8gNTd8lBhiFGQmGHLyMKR8hG/8hQzhQiZB4ZUTpGyCLECDrAOHSEHCEN7NhdSLcBJy2hSkmws5tIuHhweyfhuycgoSaxD1kCQLmWaGXGUPyZmQsIKXuZAwRC6+4UUzxNe/fv16//7969eveXl5BQQEGBgYIKMC379///Dhw6tXrz5+/AjpN0O8AGkA8fHxiYiIcHNzQ+5phhzCBWmFQKoiyJw3xF6IwyCDBJCTTCC7mCAzzRBnwNMJJIgg6QfOhjMg4sgkRAoSGpDkBxGBF9MQxRBBSABCOseQRgb82F5IRoAEF0QZxNlwh0HcD5GCuBkSyJBkAzcfEjtwKYh6iI1wNtwWSFGLbDW8qIU0uSAqIX6BxyzEHLiNEA8ik3ADIdrhUnAtEKPg5sD9CFEJ8R1acwEuBdEFJyGpAmIRxF5ILEDcD9EFISG2QFRCROCGQMIQIoVGQmIBUz1cBG4I3HdwKWQRuLHIjoSEA5oUnAs3B8KAmAaRhVsKkaIFCbEIUlZA1ltA0gakaYjmGEwHQLRD3AlhQzwLiS9M9aSKQBwAISG2QEyAxDKETTyJmX+J1zuYVUJCHhI+cDZobQ3c0ciikJwDEUFOppAiFRLWkFiEq4QIQrjIZiIrQ44SyOAVpKX/5cuXJ0+e/P79W1BQEHJb7YsXL/79+/f9+3dRUVF+fn5IVQSxAmIIpFCAJES4q37//g0ZZxYVFYVUn5CRUkgFDFnRALk7DDJzzMPDAzmUEdIFh9RhECdBCllIRxbS8YWUp5AQhExtQtqkkJ4NpJqBHK4JKUQglTokDCGDt/////8OBtzc3N++fYNLQU6Ehkw/Q3RBLmmAdMQhk9OQFciQk7wgHSb4MMDPnz8hk82QfjCkQQCZNIK4BBKDkN4YPGogXEgdDMnbkKT/8+fPN2/ePHnyBDIaz8TEBFlC/Pr1a8iqckgThAF8e/HPnz8ht2P9+fNHTExMUVFRVFQU4h1ISoAEGqSPCxlFgMwZQyIO4kHwBDHoomjIqj1I/MJJuIPhDHgygIsgM+ChChGEKIbEGpoIMhdSlkEOFYesUYdrhBgI50LWdUNCD2ICpGKALCCHNMIgwQ6peiEqIYZAQhhiFEQXJJQgsQCJJohKiMmQ+g/ChrTkIOoh5kNyFsRMiGkQkyHqIfkLbjKkfw8xHKIMWQvEKIhGSMjDQwyevCE5DuIAiDkQ9RAROAkp1iEKkElIaEC0QKyAkHD1EO9DFEBa1XA2xBw4F86AmADnwt2MLIJHLyTokBXDow/iHYheZBLZCrh2iAKIFFwQ2VhqsSGxCWnQQHIZZNINkpsg0Qp3DJqlEHF4RMMZEHE0xWRwIckJEggQ7RD3QNjI4hARSEBBbIc7BsKAaIQogEQEnIToJYaEGEKMSogaiEsgbGJIys1HNgE6KI3pZ4izIHkDzoZUeBDFcClIBoMP5kD8ANECCX1I4MLFIdZDhjQhkQep/zg5OaWlpbm5uVlYWD58+ADprUIMh5yrADEBUjZBSvZ///5BOs2QI6Yhh2wwMTFBDouGqIGsioIsS4ZUk5CuKiQFQ85DhnQvIDfgQnwHObgKckoUpP6AiEBmPSGVLsQjkEoaUnBA1itCSgcICck58NoIsqaMl5cX0vWHhAxkbBYy/gyphiErjSFdcEg4QApByOA25ARsyDZryNXIkCsIIbZAQgxS7EIaE5BaFiICD0P4oCU8HiEMBgaGjx8/Pn78GHKHI2TVFTs7u6SkJKR3Dlnb/OfPH0j1/OLFC8g1zN+/f3/58uX///8h/XXIXDikwoAEKSQiIHP5kMCBxD5k0RbE+/BkA085kGIaEtQQcyBqICIQ7yCTyOrhaiDhjKwMnrEhauDVMKSpAVnrB4k7iHWQUIUYjmYOhAtRAEmckJCEWAoxHyKCrB2S5CB6kUl4PoJrhAQFJCoh5kCcBOlSQ0ISogbORg4ouOEQvRBj4SREC2SUAq4SIovMhaw5gPgIIg6pDCDBCHEPhITohbAhKiFqIC6EuAHiPIgsJEwgoYesC8KGmIZMQsyBkBDHQ9gQcyAqISZDTICQyCLIbIh7ICIQ30HMgYgg64WIwEm4RRA1cC5cAU0ZkFETyLp6+PQTvKGG1WqIO+Ehj8zAqp5UQUgIQEhIjOA3AeIerGqQ3QY3EKtKYixC04jLQDzuQTOBFlzQoDRWcyHOgiRTCAnJTpAwgstCin5IkxliDlwxRD18WhciCwkFyGYVyO1G//794+Pjk5CQ0NPTc3Z2/v79+5s3b+BbeD98+AApAoSFhSEmQLiQShSykYabm/vnz5/fv39nYWERERGBHPYESZ0QZZCaEkJChnMhpyhDlllBjuaAjIhCrIBMakJqXEhhB7lGEFKTQYpayEppiCykiIR0W799+wZxIYSEBxTEZMjNwVxcXJAbeSFBBFkdBlmgC2nkQkhIvxYStpBzsP/9+wc5jvv379+QQyghS8Ygo8RsbGyQ2xQgA/gQB8ALF0hMQZwBafVDqnaIGyDuhOyQhow/v379WkREhJeXV0hICHIsJTzuIL7m4+P7+/evrKysmpra69ev3759+/HjR8gEAWTGHc1kSKEJWRUPLzLgboCELSR1wR0JsRFiDpwNkcVFQkyAkPBcCrEaogXiUwgJVwBpsUGag/BNZXBDIPUxJAAhkxeQegsiDknwkBYbxJHw3gmEAWkGQZpTcG9CPA6xFx5TcBdCKgPkqhrNCxBL4b6AeARZDWQACRJ0kPiCGA4XhyiGWw2vVuFaIOohJkNcC/EdxFK4A5AZkJ1mcI1wBiTLQFRCzIewIYkTwoZ4GWI4xCKsJFwBxP1wNRAG3EY4A6IezoXYDmk0w9kQWYiBEGfgMg2iEplETiSQsEKWpS4bzVWQ5AdJUfCkgulfiBtwiUNkKSchboOQyOGAx16IFCQNQLRARCDxAjeKPLdRqJ08S8nWxQLptUBKCkh+gIQFsjcgCRRuByT6kRVDOj0QZfAcCzEHogxZL0QxpKsHWWksKysbGBjo4OAAOYsYcrDlp0+fvn//Dql43rx58+fPHyEhIch9RPBO7Y8fPzg5Od+9ewfpV0EOo/79+zekMw0pfb5//w65ko+LiwtSl0MGbCE92i9gABmvhrQxIfPEkK1NnJyckL1SkKFFyPAvpGr//v073GsQjZCpUEhvBrK3GLLmFrJUGLJFCrJBWUBAANIhhiiGVLqQyXJIcvz379+XL18gVSxkpRiEDamMIbuEIedVQdoWECcJCwtDLlGGbCuEzKlDHAmpQuDrqyFRA48UZAZkBTsDA8OXL1/ExMQgYQ5xFSTiIOUOJNtDqhZhYWEuLi4BAYF37959+fIF0gCCBD5kN+qfP39YWVl///798eNHiCyk0QMZPIAMTrCzs//48QNyxDck7UHcDIlZSM6EkxDDkZ0NZ0OCFM6FMCBuhrAxSciCdsiwirCwMKQRBumjQ5bHQzwOSTCcnJzIwQiJergyNBdCVvBB8gvEzZjegXQEkatDiMeRi1dIcxM5zCFmQrItpLKHp2qIFZB8DY99iO2Q1QkQR8LTAMRYeLaFBD4klCBJGuJ9iHqIvfBqDGIUPHlAuJByAGICRASSzeEicAWQVilEO0QQYjuk6QkXgQhCtEOcAdECEYHLwqUgvobIQki4CJwB0QUhIWogTkUTgUuhicPtgoQ2snsgUhASLo6mHW4snAE3B6IRQsK1w7mQkIekjb9//0IYEFnIshVIMQIRgQQgxMtoDsCs/OBaIJZCuBA2nERmwF0OYaCZDxGEuBZZF1wZnAEHEBvh4hAuhMTVvIOYD9GCRiI3K+FWILsEWRAPG2IspgK4w9CkcKlHUwbnQsxhgeR5SFmAHGEQabi7kU2HKINkSLgyyCAzJOIhCRouBbESogvChhQrvLy83759ExERcXV1NTQ0hNzdy8zMDLk0np2d/fPnz5AO648fPz5+/AgptSEFH8QEyO2wkCOaIV1SSOhDTtWA1HyQCxsgY6E8PDyQWWHI6DqkDoNMqUJWWsH9C9nwCjkiA1LAQTwI775APAL3FCQXQUjIhDRkGQUkKCCFLGRwG1L0QI6wgLgZ0leAVLeQRcgQh0G6+JBFQ5C1bJDtrRDTIK6CsCGdS4hHIPkQYibEeRASOYohIhAvwL0M50ISN6R3DgltSBcKHqFwBkQlpJCFNAUgp3xDJibhBkKSCqT2gngTMv8KiVBIJEICCqIFktggtkDYEHEqkvBiCNn7kECDeARS6UJEIBPzkEELiC8gxR/EPRA1kOof4lNI7Ygc4BBbIGogPoLIQnIfRBck70CiBtJugEQuxBbIEZuQvhpEBJmEmwBhQKTgRkEYkBCGj/HAnQ2pgCEZB1Mjso0QcyAkXCXEWAgX4k04G86A2AVRCdEO8SBEPcTjEDZcC8RVkLCCkJD0AFcAMQFiGqShAJGCK8NkQBRATIOwhzQJ8TskCUGSJSQkIR6EyEI8CBGBsEkiidcID22s5kNk4ZmOeGMJAohREBKSwAhqoakCiE9JtQJRDUPKBXhEQrIfJODgJCS5QyIYbh+EC9EIDwiIINw1EMVwQUjhDrnTxs7OztnZWVZWFrKTBzLhAblnnpOTEzL0CqlgINcPQC5jgFRU8EoR0iGAt+sha7JYWFh+/vwJuYIQcv4UZIQckoEhMQfR+OfPH3g1DPECMzMzBwcHDw8PpI2JvLkI4lN46od4DVLCQqpeSA8eMm4J0Q45iguiEV6dQ2rWb9++QSZNwfunQASkioJ00CG1MnKRBOnxQ3rnkBlNSOxANk19+/YNUl5DCjVIOEOKZoiDIVEAEYGogcQRJDQgrRP4AjRIGoC0SJB7VxAtEBKSbBgYGLi5uSHGMjIyQoamIf6F1Emg1YAsLPBdVd++ffvz5w+k6IeYDDcH4ip4HMEdBrGOIIlLPSSa4IZjZUCOZ4GEOaS/DklREMUQqyFJCBL+EEdCxCHJBh4CcEFIwoD4Du4GiCwkLiAa4SKQlhxEEBKzECkICfEdRBxuO8QcSGRBBCEKIIagkZBIgZDILTmI2yDuRE4qEGMhtsMtgvRW4SZjZUC0wKXgToKLQGxETtsQ30G8AMkmaIZAtEAEIY6BsCFmoslCpOAxCIlEiBUQKQiJrAsiMiRISEqD1L6Qc4EgKROSbiEBAiEhcU2GN+FhBWfgCRlc5sPFIQkAYhQkivGYhgng5qBJQQyECMLVwBkQcXqSyPkF2V5kdyKLQ9igJVqQBI3sdEjMQVRAZCExChGBmwhRBtEIF4RwIfkZrhdNFtJ/+vz5s7GxcXBwsKSkJOTU4i9fvsDLa0hPFFIiQGZJIWdfQNIfJLVBBgMhNkIqM0ivl5mZGXL0B6Qy+/btG2RFEmS8ETJAB0nBkPIUsu4XXmFAvAmxGnJ+G2R0DlLrQ5YoQ1okkECH91ogbQhInQ3xMmTt2P///z9//gyZeoQ0ESBLq+Cj3JAVZBCTIQUTpIsPMQSybgvSA4MceAI5/wQ+AgwJZ8hgNSRkIP1siB8hToWogYQVpEiCkJBIhJAQEchMM2TXE0QEXjcgJwNIKEHaMZDuOBsbG+TkUfjEOUQNJJQgLocMY0D6xJBqGHKlFcR3cOdB3A/vRUHMQSbhKpEFIa5FE4FwISEJ0QUpESCKkUsESGRB5oYhg/OQIQGIMyBTJJDBakg4QPwFMRM+YADhQoIFYjWkMQSJC0iigmiHxwgk8CHxDmm9QUyGKIYYCKkyISEGISHaIb6AVzaQChJiIEQKTkIshSROCBuSlSB6IabBRSBciPshJEQELV9D3AYhIcqQe9sQWyAkRDtEJSQuIA6D+xqiHU5iJjmIXggJNxPCgOuCyyKLQKIYYimchLgH4gY0Q+B6acHAdCHEFojDIGxiSLj7IQd6QFotkPIQoh2SkCAehCd4iBQxJNw9mAys2iEpFqsURBASCxAS4iqIOJEAV7hB0glcFs4g0liCykg1EB5ceExGNhPCBi3RgmRaiH4IGx5MkFwHISERD8k2kIoHrhhS0EMshiiD5GcICVEG0Qi35du3b6ampn5+furq6pD+H/w0JYgJkLyBzIb01SCNPkhVCjkHAyIC2cXLyMjIzc3NBwaQG4UhuiAHa0AmpCEJFFK3QbYJQQ7AgpRuEJWQRUyQohPiEkggQBI0xF+QUIKMXkJmbSEnYEDWMEPqbEiF9OfPn+/fv0PmdyEtA3iVDHE2vHMPsQtiPnzOGFIZQCoqSKcTchY3pC6HBxHEdkgNBzEBLgUxFuJgSDTBowNSx0DiCNLmgBzyBZkRgIhDrnOGG4LMgJgJqSQgY9SQuV6IvyDRDamHIJUKpAcPCQRIkEJqXPiBJPCMCqnaISZA3IxMQpIvsggxbEj0QdwMNwEuCFm4B7m3AzKzALEdHkQQp0LCBOI8uKWQoIaTcI1oYQWxFFJZwhVD3AMxFhImkLCCkBAtkANkIGog4QyJYkjih9sCdxV8XgCiHe5OiAKI1RC7IFIQETiJ7H6I4ZBQgpDI+R0iCyfRNMLF4XZBvAAPUojf4SSaayHa4a6Cy0IYEHG4+yEMCAlxBpwNtxTCgIhDSIhREPYQIiHOhvQr4IEJKcfgWRviHYhKCJtUEh6McAYuEwjaAjEBQuIyhAwAtxeeGCAiVLeIDLdhaoG4DZmEuBPaG4ZEJEQa3q6BeAySfyAkRAGkAQLJORBTIOUs3FZIAQHXDk8W8DwAuW0wKCjIzMzs/fv3nJycrKysnz9/hhziAVEGsQWydYeRkfHDhw+QUgnSnIcUZJD+H6RkgRyJDJn9FRISgpw7ATnfGDKmDblTT1BQEOJOiJshXTTI/QoQH0GGlCGlG/ycZIgWSBcHPs4M4UIMh/Rx//79++nTJwgbUlRBfAqZFf7x48fXr1/R5nohfRFIcQPpaUEOEYOzITt5IH6HjCJAbpSC3NUImV6FRB+kaQLZ/AqpwiFVGjzWIDEC50LUQ/TC4wii5s+fPx/BAFKaQzbFQsIHEuMQNsTZEAMhsQaZ+YYstYMHGkQBxGRI6wRuHcQ0yFYoSGsDsm8bIg5JAxBz0EiIAjRBuKuwikOcAa9IkE2ACCL3hiFTBvC+HaRtARkvgTfdIM6D6IWkecjgCjwHQZwBkYLEBWSMGhLykDiFa4E4D8KFhBVEGcQQiF2QAEduDUB0QQyHsCGBAPEdsjhEFtJrR87OEPWQzegQeyFRCbERYg7EXohPIe6BmAYRRxOBcOEkXCXEKOT0BvcIXDGcAQ95iJPgYQg3DaISjQsRhFgEYUNSGsSPEH9BZCEhA1EDYWM1CqKAiiQuWyCuIt4iSFxACjF4kEI24kOSLsTLkOIFl6V4rEN2D5wNsRSPLkwpiF4ICXESRA1cBA3gcioucTTtcCuIVw8xgVT3QHRhkpBcgykOScaQ/AJxG4SEqATNDcOdDq85kPXAdUK0QZIyRDNy3sBa9EDKEeSSF2IaAwODubm5rq4uNzf358+f+fj4IEt7eHh4IHUbxDOQrbqQkv3r16+QdZ6QEWZOTk54VxgyDPv3718eHh4BAYHfv3/z8fFBxns/fPgAuc4WcmgwZKQR4gVI3oPsEIV3ziB1AMRfbGxsnJyckM40pB6F9FkhfXfI2jG0Ovjfv39fv36F5Ap4YEK4EPdAelpw37GyskLukoJkJ8ihzZCV1ZBhcMhSZEigQXrDEGdDagXIwZaQ4IUsm4Qs8/7+/TsXFxckRiDJC5J/ICQkHiHFE8RtEBMgwQLZa/T379/Pnz+/efPmy5cvkGumIMU3RA3EDZBkA/ELJMHAZSFOhSiAkBBLIWMMkKYPpBKCa4H4HeJfuPmQBhYksRFJQvyLVTHE+8juQVYGCQrIKAVkmAEyXgKvsSBxBNEO8TWEDfE75FgSSEzBPQt3DEQ9RCXEUggbjYSEBkQBhIQYhdz9hVgKMRCSxtBUQkaqIM6GuwfNIggXohFiIGb1D2npwi3CNAquHeJICAlRD/c4XA1EHGIXRBaZhCuDMCAZEKIYYizEwXBxiDKICRA2JgmRxW8vxHBMvYNfBJKYIcECaR1CGi7wvQmQDA6PNbJ9BAlGSFzgMQSuDE0NRByZRFNAJMAVU/CyAm4OxC5c6uHKaMSAlLqYhkNcBReHRBw8VEHVMLIKSFkDz8MQbRAFkDICwobHLkQ93M8QWbgdkL4gpFyAaIdIMTEx+fr6QpZQiYmJsbOzQ+4yggyKwnVBSkaIdl5eXshm2Xfv3jEzM0M250DqHsjWHcjxWNzc3JCdnWxsbJCqFzI6Cln+CqkGII6EeAGy/BVyvyHEbZB+JDMzMz8/v5CQ0Lt37yB9bsioMqQmhsxDQ0hIFQ43HxIUkACE1DQQNg8Pz48fP7i5uf/+/cvKygqp/iFXJkAyDKTKgRQ0EBKSuyBRBVknxcLC8uvXL8j0OeQYSEi/Ez4zBDnZA+JliEvgnoXkWwgJMRNCQgIZTv748YOPjw+yzOrDhw+fP3+GDC1AzIFEInKqgFgNCUy4gRAuJIdANMK1QAafIdfYQaay4HMEkMobno7hToXopQqJ1UyIpyCuhcQjZHQassUcsiEY4lTIsjJIfEGiFZ7+IdUwJMYhBkLSLcRGSBEJr+ogp6pB0hvEvxAtkFiAGAJXDIlHiGJIwMLDGdKbhCiAhDPcHMgMCyQhQfRCSLRkBtELCVu4YggXYhekGoPoRSYhauDa4QyIAyAuhJgACQGIOXARCANiCDIJsQK5eQHRDjEf4kKI4RBxiK+RTYCIQEiISjiJxoCYCVEJYSObM/jZkBCAhAmEhIxRQ8YL4e6HBCnEm3BBUhlka4dohJDI4U+qA3ABeMRBrEAmcWmhqTjcPVhtgcQFXA2cwQIpUyCxCBltg5QLkDVNkHIBXqDArwqAZzaIYggJMRSiBTK19u/fP8h4L6RfCynjuLm5RUVFZWVleXl5ITflQdbKQpZAQ7q2EEMgZRxk2hXSH/306dOTJ0+4ubmFhYUhdRhkQ+r///8FBAS4uLgga54hVaOoqKiAgMD9+/chBT2knwepZZFLVciIKAcHB+QGw9+/f/Pw8EAuMH779u379+9//vwJGUyGzIDCSUhAw+ePIVxIcQwJCkhpAlcAsRo+2szOzg5Z4vjly5fPnz+/e/fu8+fPkK7wly9fODk54Z1UyGjt////IduOIcECqaQh3WImJibI4mRIHxrSjoHsrobUInD3wM2E52FI5QcXh5woycjIyMnJee/ePRkZGTExMVZWVkjvH7IUHHKbBaTjCJkLgIQnZHETZCQffr4mJHghK874+fkhm3/Y2dkhS8Qh7QbkpsnXr1/haRKSqSABi0bikUJTCeHiUg9ZVQdJzywsoG30kB3bkBwBGdODbKmC1LsQcyA1JSRUIa6FVG8QcyDFDUQlJD1A1ENISFaELFOAmAAhIe6EyELsgpAQccixLcgpCjJyAMkpEHsh6RwS45BqD2IanIT0qiFVIFwQwoBX2xDHQwQh6iEegYhDLIKIQxwGEYdkCsjQEbJ34HohRQREMUQjRBlEHB7aEHshCRjiTogCiBaIZyGGwE2GSMH9C+HC3QnhQuyCGAgRQd4ZARGBkHCVEC6cRLMOlzhcO5wBVwlh4DIHIgvxGpyERDdcCpkBaaXBVULKFkgkQopEeKENaV/C9UIcACExzYc4G1kLRCWEhBsCtxcuDgl/ZAXIbGQDIeLwaIWYACEho6cQBXCXIHMhbGQSzV64LriBcBGILrg4hAsnIcrgXDgDrh6uAMKA5Hd4ioIIwoMFrh3OgEQNRAHETGSXs0CEIMYhZwZIAQSfyoIYBynlIWZBohnChuR/SNKHZBVIKQ9pnUFGcSFZF7JC59u3b2/fvhUQEIAUGfACBbLOGWImxJUQ0yB2QW5l4OXlhfSlIBU25BgNDg4OyEYdiL2QGVPIvDKkqoPsQvnx48e3b98g88eQG4Qg/RII+9OnT5A64MePH+/evYPUPZC5Xnj/ElKJQnrekDCBk/CYgFSQkNoX0vljYWHh5eWFZBWICKQXDjk4ArRL6ceP58+f37hx482bN4yMjJChdUhoQ3QxMjLCA+fbt2+QNVNiYmJ8fHyvXr168+YN5OQsiGMgA/sQ9ZBqABIs8MCEjzpA3AxJAxBZyJ2SkPnvz58/v379+sOHDwICApDF6pAWCcQBkDTDwsLCz88PudKKlZWVh4fny5cvkFMt4cZCbIdMckMmmyGJAbIyHHKgB7zRAGlzQDyCnC3hIlRhQJwENwrChSRgSIsEstIN0kCElFaQ9gqkCQLJHRC/QCpXyBIqSOEIIeGGQxiQSIGkaoj3ISQ800GUQWyExAtEMcRV8GwMVw+psSCBDNGLTEKKOYgaCAmJL4gaiAjEFggJEYeTEAWQdALJjxDtENuRS1WI8yDOQCYhxkJIiF644chciAKIdZgKILJwB0CqeQgXYi+mFrgIxJFwE+Di+BkQL+BXMxhk0dwJiRdIwEImUyB9HogySFAgOxtTBFl2wNmkxhqtHQxxD4SE2IWcYiHiEBIS4BA1kOiAsyHpFsJFUwZaKQ2JQkjTG86GqIbohOiBWAOpOSAFBEQNsoPg9SVEC6QsgA/uQQQhFcPu3bu/fftmaGgoICAAqYYhpRL8sEPIaCdkfwukwwHpM/Hz80PO5YA0wH///g3Z4As5AxnSSIF3vnl5eTk5OX/9+vXmzZt///5BZkzFxcUFBQUhfUpIrfPr16+PHz++e/cO0ueDdKYhB31A3AZZwAKpWSHhAPEacghAwgFSckFqa0hXFXKRH6RFAqmD4adrsbKycnJy/vz5k5GRUVRUFBI+kCuYIL1/ePUAsQgy9QsZioR0jr98+QJxM6Q/CllZBlmjAXEJJKbguQ4SkpBmEySVQCyFmA9RBgn5f//+vX///sGDB8LCwlJSUvfu3XsHBpAbKhkZGSGdeCEhIWlpachdTNzc3OLi4pAV75BpeIixEAMh8Q4ZIIG0VCAL6CBVGnKYQJIiJCqRnQcxDUIihz9EBELiUg+RhaRnSAzCwxY5TCDr3iEJANI+gIQVJPogDoNUqJBqABLpEGMhIpBQhajEc/oPRCM8u8G9AxGHuBbiFwgJVwCRgtsIYUAshUQfRAHcAXADIb6GqMQkIaEB0Qs3B5JH4P6C64KEAEQxhISEIaTZhGwjxFKICIQNMQSZDTEBIgIh4Y6B+B3iADQ2siCk6IDbAjEEYhHEcDJIiHWYGuGGY0rRUwTifWQvQ2IcklAhHRXIbB2aq5AjF5cf0bRQzoVbBLcdj5nwEIYz8CjGLwU3AZ6icKmHuxBNAcQECImconCJwMXRzIGbj8mATDKCFktDohASRhB1kKITUtVB/ACJcnjhCOFCMiqk9wlJGZAMCSlfIHcQQSpISH8UMkn26dOn/fv3QzpbGhoaKioqQkJCkEFODg4OiAPgNTrEQEhfDXJeNOSkSUj/ALKQCrLWGh4EEMWQ+V1BQUEmJibI9hvIhcSQgVZImxFyT+KbN2/egwETExPklifI5b4MDAyCgoIQ90DiAGIFZHAeIg4JB0iXCLKaDGIyZIQfXh9DKh54NQypdSB1PKR5ISEhATlq+969e48fP4ZUq5DhUEhgQuqD79+/QzpnEBs5OTlFRET4+fmfP38O77JDjqGAXIUEGc+AOBUSQRA2pHqGFOKQoIaEM2SHFaTZ8f379+fPnz958gQydwA5mlEIDFhYWN6/f//27VtIXfXx48eXL19++vRJREREQ0NDWloa0laApCiIGyCNGEhDAVLbQdofEDcgBxpkoRzEhRDXoqVpPFxc6iHi8OiDM5DDBMKGLLuDsCGRDicZGBi+f/8OzyyQKICQcCdB0h4kyyBXS5BIhKQWSK6Ba4TXahC9EDUQWQgbEowQL0DMhAQaZK0DsvMg/oJXSxBXQQSRSYg4ska44RC74AogcQeXhYtDygGICXBZOAOiDO54CAOiGNkZEDZEMZyEGAIJfwgJSZkQL0MabRARiCxEI7yZAjcT4hG4OEQZQRKiC+JUiI0QLfAIhTgPbgtElnKSVAMhzoDbC0ldkHiHpE/IoA4kE8ENh+hC8yPcEEoYEJOJMQHuGKyK4bKYDPzqscoiC0JcCDcWWQo5otHEIeqRSYgCiAiEjUzCxSHWwaWQuXA2nMECqQkgEQMpBSA6IdUwRB0kXiF5CZIBIGogpQlk1BQydwVRD0nEkJQBISErmyCLnr5///7s2TNOTs4bN248ePBATU0NcpglZKoYMigHMQdSPUCaApDxKIirIJUTpCbj4+OD7PCBlPuQXAofkOHh4REVFeXh4YFc2PcEDJ4/fw6ZWoZcbfT9+/d37979+fMHsmabi4tLREQEcpYyZKYZEkmQwIHkfAgJDwRIFQsZtIQ4BlIHw8UhNRAkoCBSoHAHnyoFHxVnYGCQlpaGrAB//fo1ZBAYMtQJ8Q6kwmNmZoas/WZnZ4eE2I8fPz5//gyZEILckAg5BxvSpYM4EuJgCAkRgSz1gohASEjMQnIvpIkDEYEMNSsqKrKzs0OaO5BKFHKV5KdPnxgZGT9//szCwvLx48d79+5B3CMiIgIJEIh1cP9CVlxDUh1yEQlpr0Dmy+GDupBkADGBKiRyYQrJMBASLg7xGmQaBRLskHoIkhQhi4chLQZINQnPGpCUiZzyIQ6GzEFCcgGchFelEDXwcIC0tCBOgpOQfAcxHxIgyLkV0mCC2wtJq5CGGsRwiDkQBXASrgxiIIQLsR0iAkkSkDQPMQdOQhRAuBCXwEmIvRAHQ0hI+EDsxeUSiO0QA+GGQ9IeJNghdQkkjiBhBTcKogtiF8QWuAiEi6YSIotsI1wEwoAYBXEGxEY4G64AwhgkJMSREGdDqmGIxyHzSpDsDHcqJKYgCiD+gksNKgY81uAMWjsPl0WQ9AaxHaIGQkJE8CQkiALkQIaz4QyIGlBvGFKaQMoXSKJHjiRILoLEMVbrISUL3K1wlRBjIet7IbtOFRQUDA0NFRUV37x5c+PGjZcvX7558+bhw4fPnj17/fr1vXv3bGxsjIyM3rx5A+kxQxwDLwohqQpSnUMGNiH9YMisJMT9EMdAKmzISmlOTk4BMODh4YEsh2ZnZ4fcBQRJspDa6+vXr5C5wN+/f4uKiv79+xdyVwFkdBcSWJAEDSkRIEEBCU1IWwRSzUBGhODVLSQQIHUwZFE3vPqBdIAghR2k7oG0Y4SEhFRVVX/+/Hnx4kXIsU2QKV6ISyDdXFZWVshgO2TaG3KRw4cPH37+/PnlyxfIQDckDCHrgCC2wEmI4yHGwgXh6QlSrEOcx8zMLCgoKCsrq6KiwsfHB/EIJCdDYoeBgUFSUhKyU1lISEhMTOzu3bufP39+9uwZ5AZJyO28kOleSIUEqecgs8LIJQikGoZPmUPcj7UagEQHJPAhbGQSjzjE4xBL4f6FCCKbAFkAD1luBumvQ9IVRCO8mQXJGvAKFXLIKKQegjQjIJkCstQRbj6kdoEkUUhqgYzVw02DtCPh8QLvdMIdDDcKwoD4F57v4JkX019wlRAGGgnxHcRMiF1wN0CMgpBwBXAGxJtwWbg5cCdBGHD1EMPRSKyykNiHhBjEWAgJUQxJhxD/QoIdQsJdAlFGKgkJFojzICEANwEuBbGaQovgxkIYZJiGpgXChUwaQhYeQqbVIIkN4mZIcEE8AlEPsZ1yEmImLnOQ7UJmY6pHloWz4Y7Hrx5TFtlVEDYkuWKqhNuFJgUXR2NATENWDBeBMOAkhAHRDmFDUheyXtBKacx8AlkcBCl94PohuQIyYAgxAiICKZEhFkC0QPIDpGSBVJDi4uI2NjaOjo7i4uIfP340NjY+fPjwq1evHjx48OLFizt37rx+/frjx4////8XFxeH1ASQag9e+0LmSiF2MTMzc3FxQdZqQXqckNFvSPUMqfw4ODj+/v3LxsYmJCQkKyv7/ft3yP24XFxcnz9/fv/+PeRGQkgEw2sdRkbGr1+/vn//HrLKGnJNAiQEIC6BFASQEWNIIMCrYcgSJEhnF8KGuARCQsQhYQLJ3pBgh+wnhhj+588fdnZ2CQkJJiamr1+/Pn369NmzZ5ChZsjwIycnJw8Pj7i4uJSUFKReZGdnFxISEhQUPH/+/LFjx86cOQNpT0A6nZBqGBLrkOIM4maICCTKICTEMfCIgwQIOzs7Pz+/iIiIoKAgCwsLZIEbZK8zZKMUZFqagYGBg4NDUlJSUFBQSkrq6dOn7969g1RLkCEKiOGQ6u3Tp0/fvn37/PkzZGIYsqIe0uOERCUkuODuhAQ+nAtnQJwN5xLDgMQdxO9wYyFugxRPEEFIwoPs8P716xek3oVUmRASkmYg67MgOQVZO5pLIF6DWAon4QxISkDWAokmiDjEwRBXQRoxcBFIWEFcAvECPOtBQgZCIpsMYUPakRBZuC0Q9yCbBsnaEBJuPsQEZGVwKYgjIQogJEQEQkLCB9lSiI1wEqIFogzChtgCYUPEIXZBRCDGQkSQ2RCVEDVw6yBcIkl4+MC1QxhwW4g0h9bKIM01iC2QVAFhQ+YHIYkBcn8MpCcDCRm4XyAMiBY6kHAXQoKRGBvhKuEMYnShqYGnIoL+xWULsjiEDSEheQdiHcRwCAkXgSiACELGmeBSaAxQbxhSUMJVQ2ILXtzAqw14XEJaE8iJFVI1QoyGZAyIIRA2ZBObuLi4jo6OvLw8pKCXkpLS1dW9d+/e9evXn4DBw4cPb9++vWfPntDQUEg/FWIsxF54XxDiTshdTNzc3JC+LKSzBSkyIPENuUIAsstTQEBASUlJQECAkZHxx48fX758efToEaSohRybDOmyQ4apIed1fPz48cOHD3x8fBCLIHEJMRniAMhpVnA2ZKE1pOqF3DoMGY+FRBgkHCBsSLkDH2ZnYGDg4eGBDDJDekWQYp2Pj09fX5+Nje3bt2+QxWVsbGz8YKCvrw8ZHIaQ/Pz8wsLCfHx8jo6OIiIi7969u3v3LmTMADLXDumNQZwKiSMICReBOAziSPhBnhA1kJVukEXakPseuLm5IfkfUsHz8PBAlsjB7ZKQkIDc3/z69WtIhQoJPcgK+e/fv79///7r16/wqXpIrEFMg8Q4RAQSQZCEBHEMGgl3P5o4fi4kEpHVQLyPLAJxALy/DsokLCyQbjrk+i9IDxiSBSCxBgkoSNUIzyAQF0LSP8QjkECG2AgZF4GkE4iNEDdAqmEIG64e0tSDGAgRRB6ZgCuGMCB2QRTDRSAMSGMOXkDAGRBZOAnRCyEhQ1kQT0FcDhGHi0CKCLheiBpcXEj6R7YXubsPSSoQEyDehJAQH0HYENsh5kNE4CREGUQKWRlEhEgSEq1wF0LMgYQbxGEQEQibSDNpoQzuAIh74FbAu0mQ1AhJYHBZSAjDuYOfAfcmrZ2K3yK4LJwBD3YIA5nETOQQWYg4xCNwEQgXdOkNpMSBZHVItEGmGOEZDNLwh9SgkDlLyOQZxFzISCkHB8e7d+8gQ8SQIRHIjUlMTEz8/PyOjo46OjqQnbuQsxj///8vLS0tLi7+4sWLBw8evH///uPHj69evdqyZYuLiws/P//Xr18h5d3///8hu5Ig1RVkThSyFBDShoB0lCFNB4gWyDgMZOstBweHiooK5EofyOpfyGkhnz9//vLlC6RchtyAxM/PDxlEZWZmfvXq1f///6WkpH79+gXpiEBWPEEOqYHYCNlABZkuhRwjB5nZhWQASOhB8jOkbIVUM5DCAlKKQa71hcQE5EIFSKnEw8MjJiYGOfZSQECAlZVVTExMXFycj48Psk6Kl5cXsk2Ig4MD4ry3b9/6+/u/efNm0aJF379/h68whxxmAl+yCxnshYwMQ1wCGU6HhBik4QJpJfz//x9y5TMfH9+fP38gW8sgM5SQtAjpMUOqEIgHIWmLi4tLVFQUcuMTZECCg4Pjz58/X758+fTp09OnTz9//gyJUIhjIMEF2bQN2VUMWT0OGSGA2AUJImQSYhfEC3ASmYGsGJJQ0WThJkPCHJKMIU569+4dLy8vZFwacog3pC3y8+dPSGjDp4chgxyQ0g0eCJBRGUj1ABmghvRO4CRmcweSWhgYGCAOgPgOEjKQLAlxJMRMCAlJWpAECfEgJDHDPQ4xBEJCBCHn0EG0w0Ugjoc3FyDiEMMhkQtnQ+p+iFMhqwfgQQoJTIhREBPgToJUbJDkDWmZQaQgwQVZCwJxEsRkiHaIsyE2QkQgJDzjQLgQjXB7IVyIFMQEiO0Q50HshZAQEbjX4AyIeggXYg5EJYQN8S+yLXBZiHUQEq4YzkBWBmFDSIh6CAlXTAwDrgViDsRTEI2QfgUk4UFaz5ADB+EqIX6ExAXcHDQGRA3EQGQSrgxiGjw64OIQBoREdhXEELQkChGEhCqIYkDUuxDzISSyAogyOAm3CC4CYaC5H24ORBaThCiAmwZnoHkQbiykNwLxDkQxMgkxH2ImxPEQWYg4RATChoiDBqUhXWZIbofkBMhIMqQUgFRskPVBEEdAShOIKfAUCdnJCpmZgMyDQupIRkZGTU1NeXl5Dg4OiHZOTs6/f/9C6tHfv3+LiIhwcXH9/Pnzxo0bjx8/vn37toGBAWRRFfLhzJDxT+QUhpxVII5BJiG2Q9RzcnKysLBAhgc5ODgg+5c+fvz4798/5IXHkMOtICHw9evXP3/+/Pjxg5WVVVBQkJ+fH3KTCeQGe8gpkpDVVRDDIWEI2SMECR94/CEHOsSFkKCHsCEpFeIXZPL379+8vLwqKipycnIsLCyQqVYmJiZhYWHIpDgXFxek5w0vg/78+WNnZ3fjxo39+/dD3AlZmA1JMZBGAMRqyJJsyIAwpEqGpBiISkgVDimCIVc/QWpciI8gKiGOh5gGSQNwWcgsL+QwFsgat3///n379u3du3dvwACy7Rgygw4JK8hIGqSOh6RsiJkQW6hLQszHYyYkFiAeh7S3IOkW4lTIaD/EELgj4VEACRyIOCQhQaptSCxDuviQQIMEF7Iz4HohghBD4CTENIgb4CSavRCNkPQGaTpDqjqIjRBZSPUJ8SMyCa/mIcogJNx2TAZEAZyEWAExEFkQ7gBIrxqSqCDOhihGNhmuESII5yIzIKEECU+IMggJiRG4Soh7IEEBIeEiEHshXDQ2xFi4IRCNcBuRxQc5GxImkAIc0pSB9JIh/oX4CxIXcI9AAgQzBOAKKGHAwxCTgRXAlWGVpUQQl8mQNAmRhaclPGGCLAVnk+0w6PEdkKIT7hRINQzJ7ZDYgoxzQqyB9DvhdkOiFjIXyMzMDNmsBhlMZmRk5OPjs7S0VFJSYmVl/fnz558/f7i5uSEMiHXMzMw8PDyQSuXHjx/i4uKQaUhIlwJSGkKOZIJ0siHnTEH0QsILEnYQt0FSGDIbMr8LWTzMwMAAOb9JUlIScmAypHMPObzw169fkC3OkL4jpPv78+dPyI1J/Pz8kGFwyEEZXFxckOFKSH8UEgiQEQVIHoC4ChJKcNdCUjlEEE5C9EKqOnhPFNKMFRAQgPe52dnZWVhYhISEIBUYZFQTEjsQoz5//mxgYGBjY3Px4kXICixI2QqpXCEkJHyYmJgg65whCiCCkK4YpPiGOAky4w4xChKkEE9BPAgRgVRREBMgCQbSnoMEOCQhff/+/cOHDy9evIAsx4NYDR/mhbTKId1xSFMJYg5EHOI1iF2Uk5AEAzEHwoaYD/EXRBwSR5AmICQ6IONAkAoVUn1CdEFUQqIAEh0QNyOTEJWQ8IST8OCC2AjxLyRUIUkFIg4pRiGmwbVA6mMICQleiGKIAjiJ7DZ4XQjxCNwZkJYZRBZuIMQZcHPg4hBnQGSRgwvuQYgzIFyI7RDzIdZBer2QtAHRDlEJMR9iHYQNkYWQEDORSWRxZMfAxSHGImuBOAZCQjwLUYOfhDgJbgXEfDgXYj4kCUHYg4SEeArieEj6gUxLQTIdpKULCWdIusVMz0R6BOJ3uHUQXXAuPBlDwg3iHogaiAiEhIggA4ixEBFcaiCy+ElcekkVhyQbiF1w3yELQqQwSUgIwK1D1oupGHqmNKTXCD9DDmINpPEOuT4PEovwVAhpU0OUQaIW0h2EjOzBi29mZmZlZWUdHR3InQ2Qgy0hDoIkEchQJ2QQVUpKytzcXFFRkZub++HDh+zs7OLi4pCTOpAPcYQMtkAMgccuxGHI3oP7H1L0QPr0kDkeTk5OQUFBISGh169ff/78GbL9CXJkJuTwEIhp8FYk5GhlYWFhGRkZfn5+yPwxxOWQsgnuJEitBrEaUvrAsz2kukIThAQghITkCki5D+mhQlIkZOKZi4sLYjUkC0HqVEhbB6KFhYUFcuKmkpKSvr7+3bt3P378COnNI5fyEAdDBqkgzSmIgZBGACT6IJELmeqGHBICsQge5vAghbgcEuwQr0F8AVEJSQaQBVmvwAAS4JBYgCQAiAmQJAQptSGGQ9wJScoQ84kkIVbjUgyJGoilcMPhDIg4xAS4dyBpDBJWkLYCRBnEnRBlkAYZJNlAwhOiBhKPcBPgEQHRC1cP9yxEAcTxyLIQNtzxkMQM4UJcC1EAKVIh1kFkISTEkRAS3syCGAKPL4hKiF44ieZOiC0QEuJIiDchbkAjIdZB4hTChtgIsQjuU4ib4YJwwyHicFvgDEjKh3PRGMhugJgJEYG4E80xyHrhyrD6He4qZC2Dkw1JzBC/Q6ZOICUPfKUnpIyCBAik1QvxCDwE4AyIOB4SrhJiKZpKiBuQBeEi8NhHloUAiGuRYwGiC24XRBmchMjCuQQZeNRDpCClLiR8kP0FdwCEAZeCcCEkmu0QA+FGockic1nY2dkhuzIgZQGkTIcYChm0hKy+gTRm4XkDni4hoQYpWCGTvpA+JaQKZ2NjMzExkZCQgBw8ycXFBZnwgyyh+v37N2TvL2SmWUJCAnK41ePHj2/duiUgIMDLywupANjY2CAOgJQa8JQE9yfES3BXQcQhvoCEAoSEtBW4uLgEBQXFxMQgHWKIk+B6ISohFdL379+5ubkhx0VB5k0hx3pANuxCtEDiA2IjvHcCsRpeB0OKITgJLw4gqQ1NHKLr379/kHXRkHECSKUICX9IlQkhIeEDH4F/+PAhDw+PmZnZmzdvICvPIREEqfPgKQwyKgDxKcQciDJIhxhy7QRkGxVkZAIyJQHxFCSo4WyIxyGCyCSkNvr169fbt29fgwFknxgkGCE1PTwcIF6GuAeSRSHdJshIGrKxlLMhLoc7G5kLF4Q4DJKGITkCIgKPX0jEQRIAJONAzIFEJXL6hIQ5JOIggyWQkIGYAPcmRBCiAOJHiGMgJEQxJHwglRnEIog43BmQWhOiHUJClMFzDWROGq4LogZSscENgbsEYjVEHEJC1EPMhMgi+xouC2GgkRBj4SSEgewSiIFwiyBcNEMgXEiOg7AhYQJRDHEYPCVDBOFcuCwksUFiBOIAOInGgDgGQkKsQ2ZDRAYtCXEqZJYQchQ8ZJkkJMoggQAJE7gXIFLIQQqXws+AJ3isyiARgRy2aGxMgFULpjK6iSCHDMRStKCDCOIiCZZjLJA7fyA9QojnIU14SFcGwoa0oCHRAyEhOQGiHi4CL7AgtjIxMYmIiOjp6UEOjIT0GNjZ2f/8+QM5VBKyWxdybBaknmZkZPz+/Tukb/Tr169Pnz5BzIQMaEOKQsh8J6QDColOSIKDOwbOgIQdpFiHBBDcBF5eXsg+H0hN/OvXL8g+H0h7ArIAG9I/5ubmZmdnh1xC/OjRI0h3WVFRETIyDJnUhKRpSPkIyfaQSIKQkPCBsCEkRD3EeZAKCSIOKUYhBYSoqCg7Ozs3NzcHBwdk2Q7E8ZCaAB4vkMkCiIGQw8K4ubnl5eVFRERevHgBcR5k9TWk4INbBAlkiEbIwihI7QtZvA1Zs8bExARpOcGreUi1AQlwSJBCGtQQv0BEILKQyfg/f/68e/fu8ePHb9++/fDhA+QIKoiXIcdpQbRA2BCPQ1oMcIsgCognkV2Cpgsz0cIVQNwM4UKCCDIoDUkDkDWMkOoW4kh4TEGWaEEuqICkRggJT4SQyQu4XkgsQKpbiCDEpxBxiF6IMyAkJDlB8g7EYRASIg5JrhDHwz0O4UJiFpJm4CREDcRtEGVw78C5EJdA1EC8CXEJRARiL7I4xEyIGmQSoh5iGqT5C7cCkiUhXLgWiHoICRfEz4BbDWFAvAkJH0hIQjILJN7h2RBuJsQuNBKuGG4CxJ0QKyCKISZARCDswUNCXAhp/EG8AMlQkEkiyAlxkLQBkcV0OcRfEBJTFmI+RBxZDYSNLIuVjSwIMQQNICuAs5EjBY96CgHEC5B0AjEKLoLGRRZHZkOUwUm4+3EFNVwlqBqGLJmBrKuCNJwh6ykgPS14VoenbwgDEjTwGIXUlxDFkJFkdnZ2eXl5cXFxyHJZyKFObGxskNOGIfUxvHyH1Hzfv3//+fMn5BDjr2AAKaS+f/8OuXQB0nvm5OSE2w4vRyBehfsczoCIQ0jI4iNIX5CHhwey2Pj9+/eQ6gFuJqRTCDk4E9ILhxwG8unTJ4jj//z5Iycnx8vLCylk4TEBCRk4iRajcGVwt8FFIKUVZNEypOMrLCwMiSRIbxUSLxD3Q3ppkAoYMmIBsREydP/z508ODg51dXXI/l3IhDqkawsPK8hhnJCWBOTga8jdGJBltzw8PHBv/v///+vXr9++fYOEOSQ6kAsmyApbiJMg/oJ7CtKSg9xbDLmoCuIXSJqB1N8QP/79+xfSbIcU0Mi2QBRQhYSXTZB4gbsWwoBbAXE/ZI8cJHghaRuiAB6GEC4k5CEVAMQcSOBAIhRSfUJEIF6DkJDFfRA2RCXcWIjtEBdCAgpiBUQcmYQ4ANKCgVgNEYEYBUnMcKshdkFCAMKG2AvRCBGBKIaIQ4yCZAS4pcgugSuAMCDmQHIZnIRIIetCtgJiEcRwiEq4IRDvQwTRSIi/kM2EKICIQCIC7k2IgRAuRBmk6w9pFsDdCXEVRDEk9OCugkhB3ANRACHhCiDGDjYS4kiIByGRC6+GIeN88IIXohLiHUjYIovg8RdEC4SEWIQZSnBxTAZcIy4AcQayRlwqsYrDtaPJ4rIXkn4giuFqkFMOsiDEpxDFuEiIAyAkQfWgQWlInwnSPYJ06SDFJaT0gcyKQYpUSJ0EMRTiLIjrIeohbWRIwoUcRCUuLg6ZD4bctvvjxw8eHh5Ig/rdu3eQpACpYuETsb9//+bn5+fl5YVMbQoJCTExMUFO24BURZCuOSS3QIpvrAEB8RTELrhGeKcfcgYFHx8fpCqF1P2QoWbIKROQ/grkGBrIqDUkQUBO4vz58yekAoZUnJCggIQ43EaIILLbIKkcIgJRDG+tQ+bmOTg4uLi4IDugIEENqZAgS8Ygq9UgXoC0kCARBLERsslKXFz869ev////V1NTO3fu3OPHjyEroSDlDsQ0SNBxc3NzcnJCetsQEYjD/v79y83NDSnOfv/+/f3797dv37579w55CRLE8RAPQqIbkmwg3TuI2yDj2JBxMEjrCtJEgy/4gkQKxFJIKoKwIaUz3FiIIHVJ5NyF1WSI2+CugiQGSBKF+BpCQkIeYhrE2ZCeB5yEBBQk5cAF4Soh5SOEC1cJtxQSBRASYgXEHDQSUg1Dxp8gCQziNsiGZrixECmIXkjYQuyFex8yRAERhOuCq4f7FBIycHEIA24InAuxAlkc0uqCm4zJgCiGi0N8ARFEJiHhAyEhBRFcFiIIJyGpGkJCjIUEAsRkSJBC3Akn4c0OZDUQT8FNgFs3OBkQd0Lcj+xCSJsbMqwICTdImQBRAwkZCJsWJMRVkJAkyXy4RpJ0kaEYEmIQEhI+WA2BK8AqS7Ygi4CAwKtXrzg4OCBLgjk4OCBNeEifDJJ5ICkbkkYhGRLiUEiBC6kMIKPKkGwMKQLY2dl5eHi+f//Ox8cHWeoMGVzl4eH5/Pkz5FBJNjY2bm5uSOfs79+/kE4Y5OgMbm5uyH1/f//+hZx7BanzIMtk4PfiQcIFQkJCARJzkGwGsREiCzljAXKWMuQORF5eXhERkc+fP0MaBGxsbFxcXJBeO/yaIEiAQM6XgOx//fbtG+SkLXV1dU1NTSEhIcjIJHzAB9K/hAxUQsYYWFlZv3//DlmGjbwHBjIBDKl9IbuPIDUZ5HgQSPBCRkQho6OQJgik0YPWG4Zc6/v9+3dmZuYfP35wcHAYGxvfv3+fgYHh06dPLCwsMjIykJ1XkM3NkEwIr2Ag54JB9mh9/foVEhfPnz9nZGS8cOECpJfMysoKuRcZcksHfGofcnWVuLi4iIgIZCwaUjdAlppDrnGEuApSk0G6zpCFx5DogNTikJoA0lPk4uKCDAtDWirwGIQkPMgqekh0Q0iIAggbKwlJDxDtkBQCUQZxBkQcIgIJXkjxDXEqJP1DxCH7XyEeQatZ4dUqpLkDKdwheQFNJaTBCrEUnqEghRRkdAGiF2IgRBnEgxDFcPdAtMAnaCDicMMhhkA8AukFoklBFEBCA24IxEyIICRAICJwEmIgxG0QEtmF8EiE64UwIEsaIWxkEuIvCIksDslxkOwAqfsh5Qw8HiGOh7sKzcHIRkGkICTE8XBdcHvhQQfRCOHCtUAYEG9CFMBNgEvBxSEMXOJwB8CthhsF0UghCUkhcEMghR5kTQBkVBLS2YDkcUi+Q3MAxGFwd8KNwsOAZA3kGEFmY9WIK3zg4hBnwL2DK11hNRzZRxBzICRaDCLrhSuACCI7A8KGBAhEGYSEqEQjIcrgFsFVQgxBUwwPf9CgNPJ4ICT9QbpfEDYkQCHNJUgegJRNkEoCEkyQyUXIsX9//vyBrCV+9+7dyZMnJSUltbS0ZGVlIYdSQXqWEBshFQ/kRGLkcg1S8UDCHXLW45cvXyA1EKTugXTcIQ6DeAzNk8hcCBvickjdA1lQANl9y87OzsHBwc3NDdmyBcn2kMFAiNcgk8EQNiR2IQH9+fPnW7duvXnzRlRUVAYMIJO4LCws379/h1x1AOlrQsKan5//1atXkLNHvn79ysTEBBkYgPR9IZuRIJEHsQuyshESyBBfQ/ZWQZo7kHQP6SpBXAuv7yHlFxcXl7i4uIKCwt27dyFtI0j1D2l//Pz5E1IsQqIYYjLktIpfv35BlqT9////w4cP//79gzRTXr58KSMjw8PD8+fPn/fv379+/Roy+g05BeXPnz+CgoLS0tIyMjLi4uL8/PwQ90PCE5J4IEU2pGHHAAbwNArxOCSOIIGMFrkQlXAFYN2kEZBkADccrhliMlwcbi+kEQAZgYC0zCDjAZCTViH+glS3kOCFk/CUDFEDF4fYCLEOfowGxF5kEuJOSBqAVD+QOIJohBiCTCK7ARKMkOQNSaUQkyF1MMQEiDjEmxASrgZiLMQBEBIiAjEWogxiCMRJkMYrxDq4LJpGNBPgXDQGJIVALIJYAQkBSCMMIg7RAkk/EJfDSUgPAZkLZ0MYEL0Qt6GREOsgghBfQBTDSYgCOHeIMiANbuTmIKT0QPYdJBAgJJHehEQcJGtDQg/Chgc7SaaRAWhtPhlOQtYCCR9kEUiAQ0hIiIH6vcLCwhwcHJB7ciBegtRVkMFDSCECD1N4OQiviSEWMDExQW4m+Pfv36dPn/j4+CD9vzt37sybN8/KysrW1lZVVVVAQABSr0BOJIaUCJBl0vAxZEgJBbnU9ufPnx8/fvz69euXL18gHSz4Wip2dna4qyDOhrgEmQ0RgZBwcRYWFsjKcE5OTl5eXm4wgIz0QkpYSBEDqczgG3sg2iHFIiTs/v79++bNm5cvX96/f//p06cvX76E7PEVFBR88+bNq1evIDUT5FJFbm7uX79+CQgIQAZpITc/QtoB8FIb0suHTEZC7IWEFYSE1MSQ3irER5CIhJOQ8XlIsfX//392dnZJSUldXd3Hjx9DuumQkzshgQYJTIg4ZCU8ZFsRZIf0169fP3z4wMjI+O3bt79//3758kVQUNDQ0FACDH7//v3+/fuXL19++fKFjY3t/v37EJF37969ffv2zZs3MjIywsLC/Pz8kCNtId0siDshK+Qx3Q9pqUAKdEg2htdhkOFWiBY4CYkOOJcYBi4t8CQNMQQSPpBghDQZISEP6YpByjI0F0K0wKtDSIRCuBBL4ckG4kGIRRA2RC+EhKQrSJUJaVpBSEjQQWQhBkLUewXOAAABAABJREFUQ9gQiyD5FFJdQayDV2MQjRBLIWyIRoghEBF4LxmiDKIAwoaYCRGBuwSSViFFDCSmIAogJFwjMgNZL7I4shZI1oP4GuJ+uMMgUhASWQt+X0BiCmIdXBeEQYx7IBqHBwmpgCGHz0BO/4UkaUgCgOQCCAkRwe9ruEo4AxKqkOhAJnGZgyv84QCSuiDGwgUHD4OgwyDuhwQm3LOQBAxJ4ZCcBeltsggLC3Nzc0PKR0iqhew2g1TDyPohrSdI5EEyCcQpEBJiHEQv5GRHyBLoFy9ebNu27dy5c9bW1l5eXsrKypCqCFJYQFwJX4oMcR+83/b+/XtIfQYJfcgCJciIKEQl8uAkJO4hBkLUo7EhgpACC9J9B1fB3JDxT8joKLzMhXgKMpgDSbWQUIMogJQOkKYD+J7i9w8fPuTn54ccHQW5R/nTp08cHBwyMjKKiooiIiLc3Nz29vYsLCyvX78WEBBgY2P7/v075ExmSCUEWRME6XhBKgDIcmh4sENqaMioAKbXIKEKKcQhm33Z2dkhM8RPnjz5+PEjJyfnnz9/IK2lb0jgJxh8AQPIJVSQChjSD2ZmZubj49PQ0DAwMBAVFYUscZeRkVFTU4McBaqjo/Pq1atHjx69evUKciXUixcvXr58qaioyMPDA1lSgJz4IGwICQlSSBqDNyMg5QW8MoNEKzxNQyKRPBISp8gkxBzkogRuHTydQNRAKmD4CDZcEJJlIGvRIWzkagkyqgTxJkQLnIS0TiDWIWuBJ2wIAx7RkPwFUY/sBWQRuOGQFAWRgngELgURhHDRzIEIwm2EcCGxg+kFSDMCogaSHSCtaoiZcHE0Btw0TAMhIpDUDikcIIkEEjsQNsQiiBcg/oKQcDdDuBBbIC6BuArNGZDwgQtCVMK5cNPgIhA3wLlDkQHJVpBghCx0hazegAQ7xEeQcIAEL0QEk0QOW2RZuC4IA0IiKyCSDTEfohjiHogL4WyIFJzEJY5sDlwxFRm47IVYAbEdXmpBGJDAh5CQ3A3p8YJ6w5D5Qi4uLkgGgBQ0kNQMNxEyEIRZDUBmXiHBBFHDzc0N4f748ePr16+QibRv375B+kmPHj0yNDQ0MDDQ0NCAVOeQmTDI2Vs/fvyAjOhCxpz//fv3/Pnz169fc3Bw8PPzQ5oFkDlLyEFdkLwKL54groWEDjKJnKkgiQOSIiHnZkNWKkHWisM9CGlkQIISsmgcMsMHqVQgpx9zcXFBBuEh50KDl3V/5eHh+fr16+/fvyHV3Pfv33/9+vX06VNGRkbIvUmWlpaysrIQN0PmoSGZAVK7QyaAIa0Q+HgDPDQgIQYv/v7//w/xMoRkZWWFjKBCTgn9+vUrGxubuLi4urr6u3fvnjx5wsfH9+vXL8gYMmSh2ScwgFgHmbyHnDrJxcUFWXQNsUJAQEBDQ0NERARyRjcDAwMXGEAm9dnY2GRlZZWVlSHNkffv3799+xZs8CfI0Z6Qg1/giQ/iWkgigQhCbIGkVEhNBlndDZlxhzQskHUhRyhcnCADEvVYlUFSC0QKogxNBFJNQki4AggXkpYgzoaYAEmWkIIb0quGi0B8ClEGSVEQQyAicJ9CggW5ykE2HxJ0cBKSViGugpgDYUPsgrAhJFwWFwMiDjcZwoWXF3BXIYc/siCyOEQvMgmPX4jDICSkOkQObXhYwdM5srGQcIB4B07CFcDNQWbA2XAbIa6Ci8O1Q8TRlMEFkdVDBIccCSmuIQf7QzaqQIoUiEcgHoeHKoQLkcJDwls5kPCBk3AGkebgB3Bb8CsbPLKQ1A5JWpAQgAQIcuaCiEPyL2iJlrCw8Js3byAFMaSHB8kD8CwB0QyJM8h4Jjy2IBkJUqtDOpTfvn1jYWERFRWFnPr05csXERERyOqe69evP3v27MWLFx8/fpSXl4fU/ZAlwZChacgxHZAa6Pfv38+fP//w4YOQkBDkSgNIhw8yhQl3DORoSeQIgHgYmYTIQoIGUsRD1k+xs7PzgQHksgHI8C8k7CDDbpC1Y5BlzJAm5I8fP/7+/fv9+3deXl6IOyEda0gB8ffvX35+fsgtfpBbgfn4+H7+/Pnhw4dr167du3ePgYEhIiLi06dPP3784OPje/PmDcQiSF0IqYwhrQGI4RBvQgo7SDsJEnlwR8K9BlnUDeFCxjYgi9U1NTXv37//4sULyBw85GTvL1++vHz58t27d58+fYLENWRYHjICDBmshpywDW+WsbCwQE7PhswIQhZSsbOzQ4amRURE+Pn5JSQkvnz5Arml4/HjxywsLJD+N6SJBkkqEBdCfIScwCA5DdLphJzmBlmRB09pEC2QaIUYQhIJ1whnQLRD7IWEJzyFQCIFEtRwB8DVQ+IaTRzSoIQLQoyFcCEuh0QfxCLIKAvEHEjhCCEh6iFqICbAG8SQ7ApxAzIJMRziVIg4RATChhgFMRaiBs37kKwNVwxhQFRC2PDRF2RBuLEQNchSyGyILJyESMFJCAOS/CCehYhAnARhw/0C8QLEKGQvQLRDGj2YshARNBJiMqQpDLELogAiDkmr8GCHSEH8C2cjMyC6kEUGLRuS3iA7XyDVMGQEDh7IkNCA+Ag5kJF9hCYLVwZhIJPIujDZEJWY4hDzIeLIapDZEFkIiaweIkIfEpd7IGEISTAQt6GphKRkSFxAFIB6w3x8fMLCwgICAm/fvoX0gSCXyUBawZDMDymeICKQ1VWQAhRuJQMDAy8vL+QGXwYGBhkZGVdXV3l5echu4J8/f75//x5yase3b98ePXo0e/ZsZ2dnQ0NDUVHRHz9+QAIOctECpOL5/fv3jx8/II0DTk7Ob9++QdT8+fMHMg8N6SPCvQHxNpqHIVrQBP/+/QtZBA65qkhQUFBAQODdu3eQniskE0L8BSk3IaO4bGxskLOjITcFQbwP2QMAUQyZtIYE17dv3z5+/Pjz509mZmbISdT///9/9uzZo0ePtm7dCuk7/vnz5/Xr15D7KiCrgSAehwxEQ3wHaRZAzIRkFQgJ9yw8RiHNBcjY/u/fvyFXQUDKejk5OWVl5WfPnkGm2AUEBCABCFn7Bolx5LYXcgEEWT7969cviPmQBABZHQbxNeS6C8j0JORSSPj1i5A7Ad+8eQNpVaAlO4h2iHfgHoT0/yCjtZA6GNJlRItBSGqERC7xJJohcI1wcTgDkqggboM4G9JnhSuAtCcgaQASBRDTIGxIaEB8AdEOaVFBQg8ed5CKB6IRTRBiEYREDii4MggDQkIshSuDMOB9dLj5yJ6CCyIzIAog2uEkpDkCUQZ3D4SB5n40NRAuMgnJWRBbIGELZ+MxEKISogBCwqtPZMMhDoYogJAQEYgaiEVwEUwuPGogcQrxGiTuICYMAxK5pQI5HxdSB0OKGkgIQEIGohIejGh+h4tjMuAqISZAAhxiJlwKzoBrxwUgCiAkLjUDKI7LYRC/Q3yNXFLB1cNTFyRtQ7wAuroHslIJ0h6HhB1kBBhSD0HMhZvCysoKn7mEFKCQggCyAh7SZ1JWVnZ2dlZRUYHc8f7371/ICUr//v17/Pjx9evXIf1CERERISEhSG8Ysrv8y5cvkA4ZZHj2+/fvkO7Uly9fIHtmIAeDQAZyIR4gkoSECISEzDtC7iDi5ubm4eGB3JgEyYQQT0H8zsDAALk5CjIJzcrKCrnyj5mZ+cOHDwICApDLHiBD0IyMjJDLoxgZGXl4eCALayG1PicnJxcXl5SU1Llz59auXZuXl8fOzn7v3j1xcXHIEDdkMAASMZB6C1IFQjqpED9CZOGFL6S+hAQ+5PQxyIlXX79+ZWRkhLB//PgBOQtFVFT0y5cvkO1MkJVTEDMhvU9INQypXSArriEBBR/85+Hhgcc7AwMDxNcQt8G9CY8USOtERkbm/fv3nz6BhqYhgyUQp0ISKCRRQXwEEYG7B+IvSM0HYUOkkEl4akQWJI+N1SiI8yBugCx3gKQZyLgxJIVAcgrEUrh6SEhCWg8Qx0OCBd7GggQCZEMapKCHVJmQyhuS+CFqICZD0iEkAJGjHmI4pOECYcMDE5KMMasruAKIycgkxP1wH0FiBEJCRr/gVsODCxIUEHE0o5C5cDYk0OBugBgOISFGQdhw9WgMiL2QOXi4FFwLxMtwX8AVwH0EZ0C0QJqSEMdAaiAIiewdSHkIsRfZwGHAhgQjpKULyekQT8EDEBJKEEH8JCR8kA2BqIcbBeHSjsTlVIjDaGcvfpMxAwQ5acETPNzxoBuWxMXFnz9/Drni9/Pnz5DS59u3b/ACApKIISUCpG8ECWVIxQ5xEGSJDWR60t/fX1RU9Pfv30JCQpC9KwICAl+/fn3+/PmXL18+fPjw/v17BQUFLi4uyK0JfHx8kPOoIbtLv3//zsbGBum9vX//npubG7JnBlIUsrCwfPv27cuXL1xcXJAVyJCNTxBHQhwPGXmGOAziVYiDIWerQip+iO+4ubkFBQV5eXl//vz55csXePcd0pvh4uL68+fP9+/fv337Ji0tLScnB+m/QsZyIV12SJH68+dPyLQr5IxuyLZmSMXGxMTEy8v7/ft3yDz37t27nZ2d1dXVGRgYIAd4QQoReJ8JUiJAbmCEl8iQVAWpNeH+gngNUgrz8PBAZuJ5eXkhFyhBRss/f/5samp669atR48ecXBwfP36FTyxywWZtoQEF2RIHFLxQ8ZCICZDDtxgYGD48OEDZK4BMpAAaZ1A2jGQigdyDRS88wRpFkDCVlZW9vnz5+/evYNU/xDXQvwFTz+QYhHS+4fciAWp3SFhC2mNQTRCEiFcIzxxQ8IHzoUkBjgJiQhIuKGphFQzEEFIbQdJZpAEADEQIguZ5IbcVwOPLEiMMDMzQ1bnQVRCql7I3DYkNiH1JaSuhZCQ0X6IekiPBOJBZBKSaCFqIOohXoAEF4QNGZ2ChCdEBGIjpNkKqWkgJkDUQGoXiDgk4UHiGtJbhaiBmAMRh4tAGBASogDiVIgIhIQEIMQ6SOBDrIAEIyTuIJ6FiEBCD5IIIbog5iDX2XBzIMogUhAHYJIQN8MNhzAgJkBIiMchGpHdA9EIsR2iC9JIgpSncBKiEdko5KQI0QgxCuJOiKfg6iHaIbZAQg8iAlEAYUO0Q0iICEkkfHIE4hiIXZDkBxr8ZAHd5QOZdYIcVfv//3/IwBgks0OSGVbHQ5wESW9wB0M8CLcF06kQBZjikNkEiCPhJMSFmIqR8y+aLB7zISohzoaQyBZBZAmSaOZDuMj+hZgMIeHBAjcWoh4rF6IF0lwG9YYh9RmkHIFPBUFSCTzVQvTADYWIQ0iIHZD8xszMDLmhATKPCCnRIHtVIVcUQBZRq6qqWlpaCgoKvnz58sWLF2JiYsLCwpAeJzMzM2QU+sWLF+/evfv27dv379+5wLcKwldKw6eHIeUUJH9CXAhxDCYJyUjI4pBsBhm/hdT0kCQI9yNEMbwzBBGHeBPSYUUubSHbjiED3ZDpash2ZMgczK9fv759+yYkJPThwwdOTs4NGzZkZGRAbk2AxBykYIXUQ5BiFDnFQKxGJiH5CuJxSExBUgaEhLgcYgLEU+rq6rdv34Y0rSA7ejk5OdnY2CA1N7w0hGiBGAg5iANiIGTWH8KGRDrkWACICRAReKEG2fYN2crJzs4OiXdIaQWJBeSYgoQnXC+EAVcM8TLcOxAGsiAyGyKLn4SrR2ZA/AXRiCwOiRRIy/LXr18QV0GCAuJlZI9A9oJDKm9IsocYC6m2IeohwQuJcUjIw+MRUjtCmoYQjZD0CVEAtwiTAVEMiTJI8ELMR0tFEGUQKYhjIAogJEQc7nfkoIAIwrUjMyC6IHkQ4lpIGw7uTbgCSPWMZizEKLjLIRZB9EKCGuJOuPlwBRBz0EiIFjRBSPENCTS4aRAuRAqS3uAimNohIsQrQFMJ58Jth3gQ4hdICECsoBYJMRnZFojJkGCEsCGRBUlskMYxpECDxAUkyUHMgZAQXdQlkf0OsQVCUtcWyk2juqvgBkL6xBAXghpHnJycfHx8kIFHSLqElO+QXARpJkNUQ/I5JElBMjA8nUH2ZrCzs6uoqIiJiXFxcUGaV5AcyMbGBjmwgpeXV1JS8uPHjyIiIj9//nz48OGrV68gq4e4ubn5+fkhJ0u8efPmyZMnkE7n58+fIR04iBv+/v377ds3yFIpuJcgkQpJahA2RDEkOUIcCXE8xPMQNZCECOm0ffz4ETK3Cm8NQJrtfHx8//79+/r165MnTyADyC9fvvz06RPkLCpIj5ONjY2VlZWbmxtysBSydZDlWpApWFFRUU5Ozt+/fx86dMjW1lZLS+vr168QSyHj/MjVMMRrEHdCSIhf4OIQxyOX+BApuDIIF7IYTUdH58aNG+fPn//z5w+kowkZOIU0e+HhhhzjEO2QghUydw5Z3gWpOCHaIYEMUQlnQxwGGczn4uKCJK03b95AggViBdyRkNFaSOMPUuFBxrQhToKXCxDD0Ui4vXAGsgJIdMOl8DCQdcEdBnEnZE4E0uyD9GIhvoAYDnEkJINA7tuGpHlIswZS2MHjDpJrIFU73EZI5QExDWIjxMvIuuAZDeIFiBSEhJeYECmI2yAWQTa+Y1oENw3CgJAQjRDFcJMhZkICBJmEiENGUyCJAeIMSE6HhAbcEIiZEK9B2BApeOCg+RduFEQL3GGYyiCmwUnkMISEAMQEeAqHGAUhIXUwxPFwEYi/IEUfhA0xAW4FVgZcOyYDoh7iGLhdkDQDKYXQ7IKop5CEuxzTHIjVkJCHN/sg4QM5wRcey3AGxDRI2EI8ApGCGAWxAq4GwiWShOiCKEZmQ0SIJ+HBjlULXBbiBTwRissNuMThJuMxE9NJENOQHQMxhwVSQ3BxcfHy8kK6sJBlUJCEAsmlEOMg+QciAqmtIREDNYiFBdJjUFZWhhyYBZlghowAQ1QyMDBwcnKKi4sLCwtDztAQERGB3LP04cMHyMreb9++8fDwfPr06e3btxCTIXuBICukILMaP3/+hJSMECvgaQLiQrhX4QEE9zZEASTlwZVB1ktDDnOGuBaS1CAtRMhY/YcPHx48ePDy5UvIoaw8PDwCAgKQGV/IBiFI5QFZRA05PP3Xr1+Q5gWk8ubn5+fi4lJSUrp58yYbG9uhQ4ekpKQgo7uQEU5IhQQJXkhhBHEGxM0QEi4CycCQOhheQsFlIfEFCRbIUKqwsLC2tvbdu3c/ffokLCwMKf0hyiDakW2Ehw/EhF+/fr1+/RoyeAuZIYaHJ8TlkCIG4nJIWQwpoyFXaPDx8UE2pkNiHKIXYjLEwZBVaZCTLyGVN6SURHYSRCUkEOB6Ie6HxCNEAUQETsKl8GiBmAlXicyFsCFjMJBldJDOLlwxJIFBggvS0IRU1ZB4gbAhKQoe4JCM8O/fP8iQCcQKeBTATYYogwcsZAQPUoDCtcB1wRXDGZDJF2QuJHwgO+4gzoYYDlcDsRpiOJyE6EIjIVyIRkjDERLp8OFKiHa48yDRAame4eEA8QskiiHqIQ6AGAvJ+HB3QqQg5uAn4Z6Cp0ZI7MB1wU2Gi0AMh7sB4myIIFqygWtBZiAbCGfDGRAvQBwDJyGGw4MRwkA2k0I2xHxkEuIMSNaDWAcZC4U4CZLCIUGHbDWaCRCNcEPQVEIUIwuSx0YOOmQTKBeHuBCXOch2IbPxqMcqBbEF2QQIG5KWILLwMISkdtBQPGShMqTXws3NDdn3AlEN1w8xAsKFxxzECLhTICUUExMTZF8svFKBpG/IrCEk00LKFMj0rZSUFAcHx4cPH758+QK5BAJyytWbN2/ev38PMRwyNQu5cBCykgtyygTkpCfIaU3wLbxw6yCuhXsYzoBs5oEkKYgayDUPkA3EkBluyHwnZIESZL3V379/f/z4AZkChNw2AfEvZHU35NhkiPqPHz9CPAuZgIGvvfr+/fv///8hu7QlJCQuXryora1tYmIC8Sa8WQNxGCT8IX6BkJDSAVJsQepgSKcTwoZ4BE5Cwg3ChXTuf/78qaKioqioeP36dX5+fkifGHKMF2RKGNL1h7RyIDUuxA0Q2Tdv3rx7946LiwvSiIY4A1JZQuyC5GFkX0DYTExMnGAAqQAg3URIyoH4FOIvSB8Rcp4XvAqHpDSIL+DRB9EFEURmQ1wLF0djQEp/uBo4A2ICJIQhWuBSkOCFVKiQCIXMoEMqV0jsQ4yFRAHkCDaICCQ0IEvYIGEFqXUgFkFIyHlGEEshJEQXJHdA1ECcBwkiiMkQcyAiEKdCqjeICRASrhJuCMQcZC5cBKIFIoVmOMR8ZBKuGBL1kEYYZCQDXkTA3QY3E6IL4i8IG1kKoh4iDncVPFEhxztEDUQKwkYmIYkKkmYgiRnChrgfrhLOhZgMJyF+h5NwZbisgxsIqeEgXGTFcDaEAXEehETWAtFIRRIStlgNhMcRRA0kJUOav5BiH9JkhzsSEh0Qo+ABAheE+AtiFETNsCTRmnHIfkQOE2RxrGxIQMG1wBkQxSyQwSsuLi7IvUaQOx4gy2WR4wMS6JDsByHhIvCIgUyjSkhIQJpXkNQGObsYUgpDChpI0od0K1lYWAQEBCAX60LWG/Pw8Dx58uThw4cfPnyAdHbhHV9IyfXv378fP358+PABMjEJ6YZC+vHIXoXYAnEbxKkQn0PUQMQhQQCZjYYsF4d06CELViEbqf/+/csDBn/+/IG0LSADyJ8+fYKMWEIOgIRcVwxxG2QJIiQQIBOlkAzw/fv39+/f8/Pzv379+tOnTydPntTV1YUXGZByCuI8yFAExJHIRQOEDSn3IeUXxJsQr0ECHOIpCAkZI4UsahMQEFBXV3/48CFkXxmkxoWcCQpZdgfZCszKyvrjxw+IFZD5Xcjh0pAN3JCLLiBZF+JUSE8I4jBIwQdPuBCvQfZbQ1o2EEsh6QqiEWIRxL+Q8IQU7pCxdEi4QXwHJyGCEA9CSIgUJLggcY0mDpGCk8gMCBtuApwLudYasl4M0kqAjBJBsgbEI3DHQxor8AYEZIIGohJyQSQkfCC2QLwPcSGEhOcLSDaBGwvpssDVQBhwQyCtJYh/IeZDmg4Q7RBZiBaIjZBwg2iHeBMS7BA1EBGIOXA1kDYEXAEyAxLXyCKQ5Ad3D4QBIeGGQxhwEpmBbBTEAfC0DXE/svnIiuFsiDJI+w/iPEj6h5sGtw7iTYh6iAshIhASbiAxDIh2CAlxIUQXXATCRbYaknGQSbgayhkQz8Ktw2og3G0QN0DWtUCyLaStiewRuIFoRqGJo3HRFGNy4W5AtguNDZKDYWT1MDEQjV8c2VXIbJBO4jAu8yGJE2IGssnIbIgsnIRIwTUiJz9QNQxZpsTDw8PHx8fFxQU5SRiiCG4EJIAggsgug0QkpLsA2Y4mIiICyfCQHgPEBIgWSDEBL60gWQWS9CGnTEMO3roHBpA7gCGb2yAdYkjzDXK2A+RwCQYGBj4+Pg4ODl5eXsioIMSrEEvhHoYz4L6AuARS80E6hZAbD5FbGBwcHExMTJBNPvBx5t+/f0MGySFHNENqWUj1DA8cSJcRMtYKUcDAwMDBwfH582fI5ul///5BNixduXJFQUEBEjgQt6G5H5KdIIEMISGFLISE+wsS4BBfQ9gQMyGmQcL5z58/ioqKqqqqt27dgqzLgBxLAokmdjCAVO2QizQgd05A7nJgZmaGtzYgo6yQZcCQAzogNRak7QKxF1J8Q+xFtgXiQohPIe6ERASkvoHvToYc9ANZAQfXAgkKuPlwcYgfIbJwQTgXUxZNBM6F6IUEMmTKH9LBhRwaA9mNDZeFKIZUnxAScqoJJAAhlTQkYaNpgTgMHnEQc+BqkLVAQglOQkpJiEq4LZB2EtwQiDiERNMIUQMJc0jsQETg3ocELMR8NEGISjQSohISfRAD4WkSrh2uBdLkgohDSIgUxD0QqyEiEBIePnAGxDuYKiHqISQ8A0K4EBJtbADibIiDIREHMRMiDgl/iAjENEh8QYzCSkIUQ5wHUQARgXgNIoJsCCSUICTcUmTtcC3kMZCDF9MEuNvgUpDwgXSWIF5GDha4MjgDEiMQEu4viEfgaohhILsEwoYEAn73Y5oM14sphWwg3Fg4A009LnMIqocEBS5lcFsgCiCKIQ6DhDZkNAtUDUPajJDr9iALaCE9P4gREP0QPRASYgpcFhIHkA21rKyskJOEIWe1QKpMSHEM0QuPY0hRy8bG9vPnT0j/DHI/4Pv37x8+fPjy5UtI1fX9+3fIgPD3798ha4sgKRhSvUGkIGMpcPdAGBAS7m0IF+5yiJshRkEm0iAehwzRQ3IjpBR+8+YN/AxISEBBzqqEVNiQqgLZU5BkDQnAnz9/QrwJaTR8/foVsgaNg4ODnZ3927dvFy5cUFJSgrsKHkTwPAwJfEhyh7gZQsK9A9cLF0H2MsRhkL3L3759ExQUVFFRuX79OicnJ2QUAUJCbnXk5+dnZ2eHePbPnz+Q3U2QIzAFBATu37/PxMQEWasF6Q1D6ldhYWHIkR2QZhDcqZCaFdLQgbefILLIboYENaQpAOl0QuobSPDC2ciegvsUmQEPKGRBTDZcGZwBdxIyAzIwAPECZPADEtFwcbiD4SPPkBXRkPIdEqpsbGyQZeoQv0DiFG4vnAGpNSFJEZJrIC6Bxx0k+8CreUgugAQpRBdEJTIJcQYknCHlC8Q6ZPMhCQlCQprREDUQEqIXzsYMSYgjIakdYh0kTCAicGPhGuHiEBGIqyBsCAkRwWMjJHdAFGOSEBvhgQw3ByKORkIcDyeRTYNohDgGWRw/G64ezkAOQIiZEOsgLRJIpKOJ47eCWrIQF8JJSAaEnMMDaVVDYgqS6iCWwt0J4VKFhDgAEkrIJC3sQnYwLvPh7kFWDIkyNBEIF5d6iCwmiWwvJCVDQhhSxIEGUCFbzURFRaWkpJ48eQJJKPBFv5D9LZDMD+kJQRwHdwfEIEhnCNJ5hSuGXHwLqc8go2SQHaWQHbqQVbi/fv2CJAJIFXgHDCCKv379Ctk2A1kaDbmvF3JCCMQlkCsTIIUdJKchl1aQTioknUGKQogIvLcKKX0ge17Z2dnFxcUh1QZkUBFywPLPnz8fPHjw/v17iKcgA++QzjFkqhsSDpBQhlQkoCl3FhZI1QuZXIQcp8XJyfn582chISExMbFXr179/fv3/Pnzenp6+vr6b9++hYwQfvnyRUxM7NOnT9zc3BAfQYpaSJhDHAYRh/gLzoZM0UG4EMUQJ0E6cxAvs7GxKYLBixcvGBkZZWRkIAmCi4sL0j+GnOkNmZ6HNIMgVztALi1++vTpw4cP//////nz52fPnkHacdzc3EJCQpDLhoWFhQUFBXl4eCBD0N++fYN4HxJBkJl1uCA8rCBdOshwCGS9MWSVAOQIF8hFk5DRWnhKg+RbNM9C/IuZASAikAIakrYhGiHq4dEHSRuQWOPmBl34ATnUBUJC2gGMjIyQk88hUzlwcyDVGySmIKUYZOkpZGIeMnIAmaSApw24YojJEGdADj6DGAvxIySCIFdmwbVArIAEIPIYLGTqHVJDQwyBqIRXkxATkE2GKIMogAcURAGECychwQUhIeohKRbicni9AlcA1whJjRBlkFiAiCCTEHFISwKiEZKEIDMUkECAmAxJAxA23ASIFoh2iALkQIAoRiYh6iE5CMKGOA9SIMC9DwkciEaIGyDKkNmQXIDsEoh6CAkxHFkWwobIQkyDWwdRDJGCkMhSEMUQEmIIRD2RJNxAOAOuETJuB+kQQwQhs1SQoQ5IEoLYC7n+DhIsEDcgsyF60UiIdRDtyOEGEYErhiiD5AWIIEQBhISkN0hoQAyBqIGoh+uFK4C7DcKAk3BzICrhJCRXwk2GMCBWQ1ImxDqIeogsZIYUIgKRhatHFkRmQ8IK4lqIYrjDQMd3QDiQ6o2Hh4eDgwNyqS0kQUNkIXbDNWMyPn/+LCgoCDmI48uXLywsLLy8vEJCQpCRWEhhAUmyLCwsfHx8kOMpIB6AuAziSuS8BLEU4gDImR6QziVk4Q9kLB2yOAuiF5JiIGyIyZBQgHgEUmvCey0QYyEegRw7Bbke+OfPn5A6HjLGDjETUhxA2i8QMyGLGiBmQqIKkvMhlTpkKzYnJyc7OztkfhEyUQoxAdJ9/Pbt2+/fvyHj0pBRAU5OTsicKKTeQvYCJMEhJyOIMyBqIL6AsyHhCeFCusKQLt3v3785OTllZGTevn0L6f1D1MB3H0FqKfiSV0g+ZAMDLi4uISEhBgYGyHq0b9++vXz58v3795Dl4gICAkJCQhISErKyspB9WWJiYpAe5JcvXyBVFxMTE+SEL4jLIYEG8RGktobUbZAEAK9j4GkAEl8QEtmDaNEN8REmCYlHiDhycEEaXhCfQlIUxEeQJXvwk2Eg1Sq84IZbChGBaIdXRXBbIBZB1EC0QEIYMkoEqRTh4hCvwd0DEYeYCQkxSDKGGA6RhbDhQQQRhFgHUQxJbxDtEFkIG6IRORghInASqxSyICRBQkQgJkNIuAlEMiDuhLgKElwQjRCXQ0QwSYgaiO3IbIjfISEJcQ+ERFMDsQ6iDMKGGAVJexDFcHGICRA3QAThAQ4XhGiHGwg3AZOBrBLOxlSGSwQS7LhkyRCH+A7SiYInYwgDIgXxI5yEuxkiS9BGiEZc4YapHWI+vHCAK4CYAwl5CBsuBQl2iEbk8IGIQGThJLIuiCDENAgJdyeaMkwusnqILEQE2QEQcYgzIB1LeKDBPQKtEyHZADLACDlfmpeX9+vXr5DuI7JBmGkUIguxnoOD4+/fv1+/fn379q2oqCg3N/efP3/evn0rJiYGn/aHHDsFGU+G6IKQEHMgToQ4GlIYwWXhR71AuqGQjU8QNZBqGNKgg5RrcB8h50lI+EIsQiYh1kFuDYKUvF++fIEsDYOMsnJwcMAb5pDSE2Iv5MhoSP0B6edBzqmArOgGL+oCNWggA5v/////8uXL58+fIV0uyJK0jx8/fvny5erVq0ZGRkpKSj9+/Pj//z8nJ+fPnz/hTS248+BuRhaBhA9yksVkQ4aXIcPjv3794uDgUFVVffTo0fv37yEBDqmfIFUmpK0AmdqEBCakn8fMzKygoKChocHBwfHr1y9ItD5//vzFixeQ08J//Pjx+PHjt2/fPnv2jJeXl4WFRV1dXUBAQEREBLLCDpLsINdIQ5wN8RE8jiDNI+TmGmRgH14cQzwOUQ8pNSAmEElCtEOcAdECCStIhxVS7kCOxebh4YFEIqT9BMlXkHYMAwMDpK8PH4CFhCEjIyPk+DlIUwzSK4V0guFRCcnzEKvhrTp4IMOdB6l3Id6EGA7XAknDkOSNLAURh5iALA7JsJDQhngWIgtRCTEWTkKUITsSLoWVATcEwoCbDDcHvy6Ie+CFDHK8QNwAKZ7gsQ83DaIRQkIEIQ6AdM0hkQUxAe4kiDKIICYbYhTE2ZBBF0h4wtUjmwNRBnEthA2xHa4YmQG3C5kBV48sSAwb2WsQq4nRRVANxHeQ9A9p+0JyIkQj3CIIAxJWECkiSbhGSKhCgo6gXkzPQjRCSIh2iBqI++EkRApiKYQND3AIA0JCPAJRBheBqCeShOiFkBCvEdSI7HhI3oSPvrDA0w2k/yosLMzLy/vq1SuIJyHOhVgDyRLIliE7AjKV+Pjx49OnT3NwcCgrK7Ozs7OwsMA35EAKd05OTsiGWoibICTcDZCdppDiD9lwyIAepI8OKbm+fv36GQyEhYUhtx9CunSQoWP44C2kswVxM6RoQ7YLLg65ko8DDCAVJ6Rd8v//f8g9UZBBXYhpkOuHIV1nCAmZVocs8oLMs0JmfyFdW8iK6z9//nz+/PnXr19//vxhZmaGdLP+/fv38ePHmzdvysrKQq4XhOQHSMqAkBBHYpKQqIGEEoSN7DWICCR4IaHHxsYGaQRISUnJy8tDjvuGBDik8oOUiRCfQioSSA0NsRqyDg5ynJmwsLCsrOzfv38hLYmPHz++ePHi+fPnHz9+/Pr164MHD758+XL//n0VFRUDAwPIVmPIcSuQPdaQ5ARxG8QiRkZGyKg4cmsAMtKAnOrgmQ0SMpgkcghAnI1JQkIMrhJSWUIWi0IW63FyckKuyoYEC3yaA6IFUk1CwgpSI0JWUMNlQdM84CkJyNwwJAwhUwYQq+Eeh4QDXCMkx0H2E0OcDfEghA0xB8KGmAPXCIlrCBdiJqTPDbEIQsLFkfVCTEMj4aZBxJHdANeLJgVRAyEhUpgkpizENEj8wh0JiWKIayEkxD0QxXBjIcrgJCRjwg2BKIPIQth4SEiwQ0hItELshYcnxBxI+MOtgDMg4hDz4X6EMyDiaCREFplEU4DMhSiDeB/uSIiTkJVRwoaYBsn4kGwIqR4gUQMJB4gzIKtr4WyIFMRqiAshbGQSIg4PLjgDYgiySgiAqEdmQ0QgeQ3ChicJSJEOcT+EhGiExyCci8yAGIIsAmFDxJFJiDhWEuIeZIsgGpHTA5pGiN8hFTCchKgBnaIFYUFuJhAQEICsOoZMykJ6fhDLILECTwoQQYheBgYGSAf6169fhw4devr0qaampq6urqamJuRGP0ZGRsjgJGTcFXL9DtwpEPdBjIIMlkIWC0DsgncdINOEkInD79+/f/r06c2bN+Li4vBu079//7i4uCAHffz8+RNSYkIMh9sFqWWRExCEDZl+g1SrEL2Q3jDkiiQeHh5IxczOzg65CgKyqhxy5glkqTAHBwd4+JYNkjggdTBku/Dv378hveHfv38LCAhAVvpAzmf++/fvlStXIGH14sWL379/c3NzQ5ZnQwIEQkLiGC3MIVIQEp6sISrhXMj50pBTNn/+/Pn9+3d+fn4VFZV79+5B9lzBewDMzMyQ0XjIZC1yQEH8DlcJqa64uLh+//4NWUz+9u3bV69evX79+uXLl48ePYKQkEsgIBEEGRGBNMIgMQJJTnDHQybdIbu6Ic0FuAJkH8EzG5wBMYEYEmIvRCU8jiCVJSQGIdPAkJ4uhIQohrSNID1dyJY2iO2Q4gDSLoRs/YKwIeohJCQiIMMMkNoRkiwh6yEg9QekKQCPXIh/IVZDLIIogyuACEIyPCSakLVAwg2ywx6iBeJOiIGQHA3RC0/5ECkIF6IFLoKfAfEdhMSvEpcsJFIgboY4AOI2iI8gPoW7HxKAEGUQKYjVyCTcIoggnIuLAbEIQsL9DudCDIFwISREDZwNcQzEcIhiCBsXCXE2Lllc4pCSEGIXstW41JMkDskLkK4IpJyEnPAPsQgS+JBEC4ksYryJ7ACIOZjhhqwGDuCKIerhJCQE4CQ8GCGpBcKFOwziZoiZyAbCTYMLIjPgbIhG/CSyYjgbHnrIIhBzICkc0rKHlAbwihw0Mw3xAMR9bGxs/Pz8kKsOvn//DjmPAmIKmgWY1kCmV//8+XPv3r379++fOnVKUVFRW1tbR0dHUVFRWloaUq9DajhIxQkxE+IySARDOmeQ3jBymEJqYsjIKuTOQcgA+Pv379+8eQNZYg05w5mPjw9yXhUkJiCpB+IFSIRB2PDohHAhxRykwwepBSGLoiGnn/Py8kIGCSD9XUj/mJ2dHWIjZOEYxLWQ1uKfP38gI7Hfvn37/PkzpI/48ePHN2/e8PDwCAkJQfrKkEL/x48fT548uXPnjoaGBg8Pz48fP1hZWSGT65CogZgMcSckxCAiaF6A+BdCwhVDKlRI/xvS74QckSEpKSkrK/sJDOCmQQajINUPpFKERApk4J2XlxfS0YdLQVT++/cPMoQLGX/+8OHDs2fPXr16denSpU+fPr1//56BgQH5nkqIdZBIh8+XQBwMGS+Bp1eIIKTogeiCsCHimCJo4hAunERWD6kgIQMn8EXjkFQESXuQxfOQ2hFes0JMgLQ8IH6HpC5IgEAqaUg+gkwkQ4b4IAMAkPwCGeGH2AvJDpB6BeIeSFcMcmY1pGSEmAlxACS64VkX4hhInEIMR/MpRAFkqBYuBVcJsReiBi4LcTwaCc81EMUQEqIGwoaQEEPg5kO4yCREGbICCBuSxuAJG6IMQkKiG86Gq4eLQBRAbIHIQtgQEiKCrBgiApGFkHAROAMSzsi64LZApOBciBaISggJl4IYjpUkXiVEO7KlWG2EKKOEhBsLSZ+QNMbGxgbfgQJJjRArcLkfYghEDRqJ7AVIykFTgAwg5kNMg2iEiEDCFlK+QUQgxSMkfUJE4IZDlCEbiywFEYdYAReHCGJy4eIEGRADIcUXJC/D0zZkdBbChStANpAF4hlINmBmZubh4REEg48fP0KWPUO8BNEMCReIfoitcHdD1iIxMDB8/vyZlZX1zZs3L1++vHXr1okTJ0RERDQ0NHR1dSFDr5BiCz73AymRIeZDSgeImRARiF0QEtKIgFR1kGMjP3369Pz5c0hpCLk0AlJl8vHxQfr08JoDUtJBSiWIy+ExBzEcslUUMr8LWRAIcSGk+/vv3z8JCQlhYWFOTk5IrQOpfSHFMaTYhQw4v3v37sePH1++fPn69SvkJqjPnz9Dtl29fv1aQEBAWloaMvvIxcUFKehZWVmvX7+ura0tKysL6fEjTyhCnAcJEwgJiRFIuoSTECm4p+BqINOokEM5IIvOvn79KiwsrK6u/urVK8gtSZA2BxsbG3KFDdEIMR9yvySkZ8/FBbqdCdKcguQBSF8ZMrHKy8srICAgKysrISHx9OlTyA1anz9/hky3QxZhQZwKj3eIIRAHQ6IJ0uqCRBZyVQ2JOEhqhuiCBw5BBiSdQ9pbkHCAjEZAhmeQR5IhcQpxJMTBcKfCgxdiDiRwIFZDzIdkEEgFDFH85csXSGUJsQ4S43DFEJMhPoLYCJGCmAwp/iCVMcTvkMQPkYXYC2dDrIOTEPUQWYggpHiF9J7heiEMSL6DOAOZhDgJbgjEHIgLkc2HGwKJRAgXKwkJH7ixEDUQGyGCyMZCLIJHNFwKrguZAenlQ0TgJCRhQ0yGkxAGxC8QMyEkRBfEUogIRA1EBOJyiAiaLFwjGgPCRSMhJqAJ4udCrIbEAsRq/OpJkoUbCPEmJMQgQ4OQoWlIBoQowxrI+K2DOB7ia4ghEDYuXZjRDdGFph7iWgiJHDLwtASxF6ILYgImCUkJEDWkkhBfQMyE2AURgVRSkPoUkrsh+Q5enUFKA0jbGtLuAfWGIdZD8g8TExNk9RD8ulyIBRDLICohJFwEzvj+/TtE8b9//yCn+bOwsIiJiX38+PHixYt37tz5+PGjpaWlqKgoZEgTUtNAHAoxBBKCEBEICRGH2AjZ9QQpoCHrZSAbjt+9ewdpa0AW2XNxcQkLCwsICIiKinJwcEAqPPDRFCACUtpC3AkxFhJ2EIsggQI5EQnS84YszIYcOi0sLCwqKgrpwkLGzH/9+gUZ5oVPVEOOj/7+/fvXr18h53tAToaCbPqCrOKBHJsMGXtnYmLi4OAQEBB4+vTpnTt3pKWlIfO4kMXqEBeikcg5AeJ45FQIUQyJTQgbEussLCyfPn2CLIP/8uULAwODlJSUgIDAu3fvIGPRkGQB0QIh4dEBCRzIXhrIEm54AELm4yFuhgxoQy7wYGNj4+HhERMTe/ny5bVr1yBHf0DyDEQvsuEQH0FsgVQ8cBKiBdk7yGyIO4kkIdkbYjJkCBo+HA2p+yFpA9L1hzQ7IEvzIMELaRNAfApxFYSENEGYmZlfv34NMQdSa8JNg0yRQEh4IEM8C8mraAECmZaGWwpvYkK0wD0L4UL0QhRD3AMnIaGKrB5iHcRAuDhWBkQlxAqIAnjoQbjw8gviAAgJiVN4moSrJJIBj1mIFyCegocY3EaIaRDFcBshDIggxAEQEWRdEO8gk5iyEEshVsDZyO6BWAFRADEKwoZYCtcCEaQiCQlhKhoINwriC4j7IT6FkJCdIPAOMSQ8IQfDwfUSyYA4HmIFcphj1Q5JacjKIC6EKIawIS6EkBBxCAmRhTgVzTpkKayGw9VDjCKShHgNWTHEdkj9hTy5BnEtpDSGnCsAGRXj5uYGVcOQm+ohLoNsthESEoKMS3/58gWSmSFnFECG0ZCtRGZDTkxkY2NTUVGxtbWVlpaWl5c/dOjQuXPnIDkfUiF9/vz5x48fv3//FhcXh6yLgSw/hgyAQ0QgU6ffvn2DXPcLX1sEOQkZMm8BuZgIcqs8pDKADAW/fv366dOnkNF1SM8YcucxZLAasoMIUhZDXAXJ5xAScuC+oKDgazCA3LArICDAz8///v17yGjh169fIRc8QK7ghXgHUh9/+fIFUg1/+/YNcpgJxOWQlWX//v2DXCX5/v17UVFRFhYWyP0QkKOqOTk5L168aGRkxM3N/e3bN/j1TZAQhkQhhA3pVkJKfHiShUjBIxGiHuJNSJ/+58+fkCsXIWdzfv78mYeHR1NT8927d69eveLl5YWcDga5TgpiLGSIGJ5iIIEMiWXIkjR4zwxS+kAmOyFrrCA7yr59+yYlJfXjxw9II4yJiQky2A5JqZA0CsnYkPCHLNSCpAHIOj5I0wrS6oJ0QCGxBml4wX0N8S9ECtL2hPgdIg4hIbUjJNwgG5Mgc/mQ7AdXDxlNgvgI7k7IweA/f/6EX8UBmVWBtHAh5kO2XUJMg3sHIgWJaH5+fj4wgOzShgxuQ0ZEIHU8xG0QSyGlBiQzQ8yERC7EYRCVcFsgghCNyIohhkBkIYEDmaSAuAoSehD1EBLSiYfEIEQXRA1EL/IgAeT8FogsssMg5sDFkRmQeEEWgbAhfoFbBzcBngghyiC+gyiD+AtCQmQhupBbDxA/IidRiEqIOci1KUQcTmIdLYDLQiyCcyHNMkhEQEIJLgVxP5wLZ+AKB7jJEH9BSIh/4X6BOB6S6iD5Gi4FNx+uES4CYcDNh3DhJFwc4jDIDDHk/ADIHnpI+xtiLJ7AgfgXogxuODxtILscogZuFMQBEBLiX4h2uAiEC9EFYcNJSDxCpCAkpJSAWAcxAZmEuAeuEmIOGhciCCfhsnAGPMwh6Q2uElKgQYYQfv36BSn24c10yI4eyMm+kBv54CUqqBqGZ3WINZDxOshKJcgwGkQcbhkkuCH+gZOQwouFhUVcXNzV1dXQ0BBSf3NxcfHw8Hz8+BGyoYiNjY2Pjw+ye+f+/fuQ3ipkcg4SoExMTJBKGlJeQBbsQA6ggGxmhYQvxP8Ql0PWoEI6LhBxSKn9/v37r1+/QqYqISdmCwkJQQpETk5OyCwvxEyIUyGBC+kQQzwO6RhB5oAZGBjevn0LmfGF3EIBuT0JMuAMCXTIJTwQV7GyskL6zfBRTUgfFNLVhkwAQybCIWXf9+/f37x5c/78eTs7O0j0wMMWs8EFkYJkG+R4QYspiBRyKoT4ESLy//9/UVFRGRmZT58+/fr1C5LlIEEBScqQmgnSq2NhYfny5QvkilxIfQYpBZCdCokaiKUQElKR8/DwQM7nglQ8EClkEk0j3JEQB0C4kIoKwobohadDSNaFSEEamxAR5MIREoaQe68hnWCILyCjHXCVkJIUEoOQoIAbC3Hk////v379ClEAz3Xw8IQ4DG47RC8kYCFbAcXFxSFNTEjygMQXhIS4EJJ1IfELMQdiONxfcMUQNRBXQfRCrIO7ARI+EAVwQUgTFlLzQUiI+ZAYhyhDNgeZDZGlOolsBcQxEBLifUzrICGATEKCAkJCSgCILrjJEAMhJEQjRAFJJEQ7phayDcQ0CiICj00IF06iWQRxD9yPEO/DFZPNgNgOKX4hjQxI8xoy1orHFrTiCO4AiLMh6RDiZrgUVRhw8yGmYbUCWRBS0SB7BO5liAnEk8hWw8sEyP4OSMcVcik7ZCQMsvEVvgAFPjkFaY6wQPRDnAIp+Dg5OSHLgzk4OCDHC0PsQ3Yfpgikl8bBwWFjY6OhofHp06cvX74YGhqysrLKy8v/+vULPjEMv5UIMlYJ6aFCSkBIbMENR85UkH0jENfCvQqpcSFhCpGCNBUhCQhiJqRmhVwhBSEhZSJkJRekloWMUkJqX9DgNTs75DwNSPxBerHPnz+HX7DIxMQE6b7/gQFIMoW4HF7AQRwDKUMhs87s7OyQ6XMW8L2QkLXHkO3U379/P3XqlL6+Pg8PD6SSgwQ4pD6AsJFJSOBAXAiZ20OWhZdi8IyKzID06kRFRVVUVJ4/f/727VtIxQA/ZwNeM0H6ppCsCDcTUgNBOq/w7AfxO5obmJmZIae4sLOzQ6aTIVEMVwbRBSHh5kMCEGIpJJlCdEG8AEmrkGoGYg4k3UJkIYbA3Q/pw0G0wJuikOEgSPKAtCQgbEiTCOI7SNxBAhmSzCDi379/h6Q0iJMg1kGaoRDHQEiIkyBLvSB3h7x79w6yVA2S2CANC4jHISkEYiA8PCExC/EU3DSIGoh1kK4exOUQZZCMAHEAhA0xH170QMIB4jVIwMLDB6ILYg7EbcgOgMjCSYgUnEsMA5cWtHiEG4VVPdw7cGUQEbhn4VEDUQAxBOIpOIksBWEjkxAtyCIQNn5xeLzgUgYxhEgS2RCIs5E1oslCpCh3ACRtQNIzpE8MaTJCCltI1sBVFkESJMQlEBPgbHh6hoigeQfZLxAAj1AIF07iEocrQLYXzVhkvRApSI5AFkc2B5ONqRKSiSC+gwQOZITsx48fEClIHcwNBuCdsKAbCiDroiB1MCTnQtI/aN8wJHAhNkFWKkEG0CD9VEgLHR588BoCoh6SASARBqlO+Pn52djYhIWF+fn5paWlTU1NIe6DnHHBwMAgJiYmKSn5/PlzyMqmv3//QqZLIR0USBBApCDD4JAOGcRvyHPDkBVkkClJSOBCSEhWhAQQZDPc79+/Ic0CyOQ35HJlbm5uyG0WQkJCkOuVIDUlZJECpHiCHBoFcRhkfxTEOsjuOsjIASsrK+S+ekgLCBLQkN45pHiF3JEAcQkkbiBnaEMuZYIcLAUJzGfPnl26dMnGxgbSxYeHLYQBiQJI5EF8ChGHpz9IRoIogyiAF99wLpzx48cPfn5+cXFxyLgxPJAhS4UhIwEQv0CGUyArfiG3U0PUQKpJiMshsQZxCaQQh1RakB4/Hx8fZPcwRAqiGNmdaCIQj0BMgCROSD6HaIH4GuIRTI0QNZBqGBJxkBCDVLeQdg8kuUJaGBD3Q5IorE31BzIAAynaIHUwRAqS+CHiEBJiHcTjEIfBnQQRhAxlf/369TsYQFpvv3//FhQUhDT4IJ6FNKQggyUQEyDaIY6Hq4FIQdwMISEJFRIaEBGIwyDpHyICcSSEhKuHcCG2QMyHGA6JI0g5BZeFK4BYBFFJFZIYAyE+gpPI9kI8CA95SLMJohKiDOJNSHpAFsFlL6niEKvh4QMJMYhFZJPIboC4H2ILxEBkWYgIxL+QoMCUhajBRULUw/XCGfCmMKQQhhS8EFmsRuGRgqiHWAQhISJUISH2wo2FM+CGw1MyWhhCNMIF4Vy4RggDLg5hQEiILkiVBEly8MoIskYKUjVAtt7w8fFBqgBIdQAJWEi0wl0LqoYh9kFKOkg7CLKvhoeHB3IdISRtwfVAHAEnIdoha5Ihk3Zfv36FTICxsbF9//6dm5sb0n2ErCVmZGTk5ubW1tb+8eMHpHiCbCqFVJ+fPn36+vUrpO6HmAyxCOJ/SIKDpAlIMw2iC+JCyGojSPENEYH4Fq4eUqZD5jsh/T/IynAeHh7IliR+fn7ImcnwtQk/f/7k4OCAXFcHOecS0pvh5eWFFJGQEWmIUyEzAZCpU0ghC2FD1jtAGk2QOhtylBgkIiHDpJB9xkeOHDEwMODh4fn16xfE4xASHvgQSyHWQQQhfoQUBBARZFlIOEBIiEo4++fPn1xcXPLy8l+/fv348SNkdxZk8IANCUCOYWFhYYHcaQHxPqQ+g5xGDrEUQsKthqQ5SIDDZ2EhhiCrgeuCMODtBkg6hEQ3xMuQFZsQvRAvQJIERCNEDYQNMQSS3CG1DoQNEYcHAjxVQG6G/vnzJ2QOGBIpkBF4SODDVUKaaBB74S6BcJGrPYjzII6BeAG+MAJyhMuXL19UVFREREQgZ3JBhlIgjoQYCzETYjuEhHgEYiZEDYRE9jjELkiOgLQY4J6FMNBCAKIebhfE2XASYj5EI4QNcQmmG+CyVGQguwriTki8IIujORWiDOJINGUQKeSwgvRCiHcwpq+RrUBmY6ok3haISjTTIFxkEqKMiiSk9ICEJ8QiSFKBFJWQkhZeruK3F+J9CAlXCeHC0xLcOrgCSKyBKBIxxGSIyyFsCAnxBdwwTC4kSUDEIWy4YmQGRAFEBMKGk5AKGJLdINUw5Bh8yMgzZIsNLxhA7oeFBCkkEUIcDPc1dMMSpAkMKUrY2Ni4ubklJCRevHjx8uVLyIpfuN8gKuFcuPu+f/8OL6AhfSnI5buQ+V1IGQpxDeREQ0gEww/0h68uhix9ghwxCG+IQTbSwO2C+ByeOOAdTUibFzIPDTnlA7LGB+IvSPBBurOMMMDCwvL48WNmZmbIAZwCAgKQG5che2wgZR/43npOSMMC0uWFBCXEGRC3cXNzQybeIYuEIVxIFxOS5iBugPS6IOOBkK4PHx8fpFsJCaJ79+7dvXtXX18fEs7weIL4HRJ5EI9AogAStXA2XAoiAlEP14vM4ODg+PHjBzs7u7S0NGSlG6Tmg8QLpOUBGUuBNLD+/v0LGcuFewrSTYQFJIhGNh+07gBcc0MWvkFODYO0kyCuAmlgZISUhhDXwkUgXEiIQRp2EG/CzUdu4SKbBjEBQsK7wpDIgpytDRkOgreHIBkJUkdCFiXALYVEB0QvJBbQXAURhAQ4hA13HkQlhAuJR8gAMuQKUchQCqRpIigoCGmiQUyA+AtiJoSEiEMGtyH+gvgXIgshISIQEu5+SMBCBCH5AhKGEAUQ90DE4SREMdzxEMPhlkK8QzYJMQ1TO9w6uE/R1ECKSHgdDAkiNDVwLtw0ZAbEC5CohLAhJFwXMQyI+yF5GeIkZF0QWUgA4nchsi6sbIhREBKiAGIdsgiy7yCWQlSSQUJ8BDEEYgXEcIgvIKUBpKCDpBwIicsiiF548EKSGVwQYgtELyR9QmyERD1EGVwEJEoWxjQBEoAQwyCyEBE0EqIAjYSoh7gQIgUXgQcLpCSE9McgHQ9IHcrDwwMZYYVkeUiwQEi4gRDToFc7QNIopLEPWcQrKSn55MkTyPnSkMWTkDILEnxwU+AMSPcOogYyAwqpgCELdCEmQ7pQkDlFyI4gCBsiDrlhCXKwM2TsDmIa3N3I8QQJQXhAQDwDcQykGob0YCAKkKMfYiYksCAGQlp5nz9/hux8hQzFQ+okyFZayOw6Ly8vZH0ZZKoPUidBkikbGxuk7wsZrYXUWxCrIYdgQ6ZFIWvCIUEBOeTo169fkNXUjIyMkJHq379/nzx5Uk5ODtIvh5Q+kOiHhAM8G0CGMSFegCiAkMgikDyGLALJXZAl8RAv8/HxSUpKQixiZGSELCiAeAeyygzSvIA49c+fP9++fYM0bpiYmCDjHJDyHeI8uF3wBVmQ+gxyNgikDQRZEARXD9cCiSaIafBFIhAHQ6QgHoREPUQXRBbZKEhKhhgCqWAgshBdkEiBNFohu8ggaRt5zBliFyR4kZ0KsR05/CHpDWIyZCsXRA3Edoi9kFPMIN6BLDp9+/YtZFSclZUVMnEO6Qf///8fckQX3BCIS+DmQLhwS+FRBvEyhITohe/5huQLSJqHJAaICMSFcAMhutC4EPWQZgRcAdkMiL2Y2uHxCPEXRAEkWuFsiPsh4QxRBtEFcSHE2ZBQgpAQN8PVQAZmkBMDRAvEfCJJiPshJEQLMhviKggJcQNEDfEkxC8QP8JJyLJbuPchpkHMh6c3uDchsmSQEKshYYLsKUiKgshCnARZQovVCki9AHcMxJEQMyGCyLrgspAQg5OQEVlklQTZEOchK4N4AS4OcTlEEEJCrINkH7gsXArZKIhKiAhEAYSE+AuuF1LXQCpjSE5nZ2fnAgNIcQrxL5yEGIhMQgelIWkUsg8BsqMXcl0SZHsr5NwGSBEG0Qx3DZzBw8Pz7ds3yB0MkLoHUntBBlchXRPILlvIbhZ4ZQkJDsiqWjY2NklJSSEhIUjnGDKIDRkfhQyyofkfkkAhDoO7BCIIcTPE55DQhFS3nJyckAEESFEI6e9CDuOEnPAMqXtYWVkhneDfv39zcXFBDoPk4eGB9H35+Pgg/V3IjXgQn0JiBXJVHyRK4LUO5DwQSGsD0tGH9IEgrYGfP3/y8PBAfMHDw3PlyhV7e3sBAQGIjyCJGOIRiAmQKICQEFl4sMC5EFkICS/U4AyIOKRrzsrKysfHB3Eq5EgsSNsC3s6AMCD16OfPnyF7t/7//8/NzQ0ZQoCU6fBMCzEcMicKn2SFZDDIljO4X5CzLkQXXApuJmSoA0JC4hGewSC+hpBwjZDiCaIdLghp7UESJ2QrFGTSASICMRbiAAgJr4PhXIgaSIxABJGdAfEd3CVwBRA1kJoesqPp9+/fHz9+hCQSXl5eyDZ6yDb9//////79GzJiBHc5PFQhVkPSGKQ3DxnKhvgXHpKQjAbJU2haIK6CJ3iILKQFAKm3IAowkxDEF5AQwJSF6CJIQqzDVAYXhzCQSYhiuJchnoKEDCQlQ0g0h0FcCCch6tFIiMkkkRCHQbRAnASxFyJCXRJiPqTBB/E1hITYAvELZEQNLgJJe2Q7CR7FEAMhpsEzESS9QeoFSMDClcEZEHGI2yAkxBDkcIMrhrRuIa6FWA0hIVqQlRFkQ+yFGIVGQriQwIQ4A0KiiSMrwLQOogWZRFMD0Q6viSFtPsiMJ2RVDaRwgIQJxLUQz0LYENNAg9KQw5MhR0lAVED6hWJiYkJCQi9fvvz379/Pnz8hXSXIimiITyChBjHu69evnJyc3759e/fuHWSODbIwFVKAQiISUgFDljFDqlVIYoJkJ8i0tpSUlLq6+rNnzyAj25AVxZDz7iFehVRd8BFpSGcL0vyHmAnxNsSFcBEIF7JIG9JggSiDhC/EI5DCCNIRh9TZP3/+hFTbDAwM379/5+DgkJaWhpyiBVkDLCgoyMnJCWl2QMarIRUPpAEBqVkhtR3EAfD6ABKMkEITsvqJhYXl69evf/78UVRU3Ldvn5KS0u/fvyHLiCDlOMT7kGNMINEECVW4d+DZBhLlcBshMQ0JZAgb0i/n4eGB9MJ5eHggNzv9+vULcs8xxGGQIhtSxDMzM3/48OHt27e3bt26c+fO169fBQUFJSQkhISEuLm5lZSU4JPlf/78ERAQgJxwAhnzgEwQ/P79m4+Pj4mJCTI/KiAgwMjICAltbm5uyHoCDg4OyBAx5BgZyCo2eFUECU9I1MCjDNKChKtBFoekTEg4QAaEIRPzkBiBFHOQAIHogpMQLZD2HCRUIbZADIREBLxkhCiASEFMg8QLJO1BkitkyR6k5QfZNfT48WN2dnbIWW+QoXLIbmbIHirIPAVkhAkyWw9J5xDzISQkuUIGYCDxBXEwJJQg0/YQH0FiEOJCyDAMPDFAFEMMRCYhSQiiBWIIsiweNjxlQoonuEo0A+EhDPEFxBlwV0EUQ9TASYggpNmB7CS4I+FGQayGkPClecgpBO4qTAbcNDQpiL/g7oQ7Fe4SiPMg2iEjXnCXIxsFL3CQNUJ6vZASCTl1QRISxBxIMoM3myAWQQSRzSeVjeweuJPghkBkIX0kiKfgBS+kKoUMO0O6FnAnIZsDEYQbCGdAcgecCwfwGgHia0gkQkIGrgbCgJgMcSFEMUQcIgLPnhAunITogrgQEqcQKYh74NbBGRAz4eZDFCMLQvqT8CIFUvVCchxEGSRhwEUgJsPNgYizQFInvJSBuxIy5AjZ1QMpJiBpApLWIRZASIgWHh6enz9/fvr0CXKXLaROgtQfED9ArIeEDiQRw50CDxRILQW5Q/7z58/wmIZENkQZmmmQjIGcDuCFEcRGuC6Ia5GthkQDsgKIXyAhC8kbkKM5IKMxkCISEqyQwywhq3sgYQLpZEOWcUFiBWIjPKsg+xciBfELJPAhIpCxXCYmpgcPHigrK0M27ELaSZAjOCDK8JMQX2CqQXYAJHAgKiFpAFKdQwp0iJMg4hA1kBuZIKdtMDAwvHr16s6dOwwMDFpaWoyMjLdu3RIUFBQVFRUTE4OMw0Bcy8zMDDnsDN7IY2RkFBERgawbgFTSkLCFXHcNOfIacnkGZDczZOM1pDEHaWxBSIjvIHEBcSFEBJJmIO6HxCCk4IBsJIDECyQRQnQhhwkkOjDFIeohKQfZFogIRD1cHGIghIQ4Bi4FVwnJSm/evHn06JGIiAikMQcp5iDhD0nVkJSMHFOY/oU0JuApGaIRsrsPbh2EASEhi/AhLoekfEgBBCkO4E4llQH3LyQMIW5GNgRZAUQcogbSp4ewIWrgfoEbBXEnRBfEF8hsiAiEhPgLHl8QZRDtkKCDsOHimAyIOZjikFQHNwRNAUQcTqJVGxAzISSkrIB4De5OSHqAC0LE4TELcTPccIg5cEE0l1CLCwlJiGmQEgzickizBuJUePkAdxtcPcR5EGUQQeJJSDJAThJYzYEogxgLZ8MZkNCDyCJrhyiAkxBb4MogDIgshI2HhOiFk3AvQxiQwIGQ8CiDmwYXgTBYID0eSEBDhCBKmZiY+Pj4REVF+fj4Xr9+DWmYw0thiBpkEnIb/L9//27fvv39+3dImQ5xEEQZxHB4aoZkfogUhIQUnaysrHJg8OzZsx8/fkAEIXohyiBhCilbIS1HeE5GTg2QIgwSGRBxiHZcQQxRA5GF5ApIPwZyiyK8NwMZbYZkM8jIOWQQG7KSCFLGQQIT4k6IgWjuRw4WSAMC0uNhZWWF1BP///+/ffu2kpIS5IB1yGAAZJEUxAq4CbhMhoujOQCSaCCehbgQYhRk7AEycApxP1oC4uAA7XuDHE8mKioqJSX16NGjjx8/QtpeX7584eHhkZSUhBzVws7Ozs/PLyEhAZlch0yNQ3wH6Ub/////x48fYmDAysr6/fv3hw8fQjrN8I1tf/78gSwsgLgWknLgUQOJTQgJ9ywk1UF6DJA4gtTrkBPW4EkCOUzgKQRe7kBkIdUShA2xBRJ0kOCCOAluL0QZhIQohpCQmhUezhBBOPft27d37twREBAQEhKCHKcFCXlkd0IsgrsNbgLcEEiRDa/vsVbDEDdD9ELSD8RYOAnXDlFDEgkPFriTkLUjhwnEF5BAg+uCtNeRtUDYEI0QEiICiRGIdmQfQUQgshBj4a12iHaIN+FaIOohZmKSuGSRxSFpBuJfZHFkKyBq0GTh1sGjCV52weMR4gWI4fB4gXgBkrDRMibcTLgWZBEK2RD3Q+yFOAbSRYHPjkFSLLx4hIcAnAGJAuKdAVEPCQQ4G4/XIOGMrABZF8ReiC8gbDgJsQLORTYBjY2sBs6GaIdXQxD/QloqEDWQkIFbDXEVRBlEAYSEiIMGpSF8NLshk3+CgoKQbUuQ7ghy3QnRD9fLwMDAy8v79+/fJ0+evHv3TkBAALI4FlkBxOmQUgbOhpgDT2cMDAzi4uIyMjJcXFyQPVjwDAb3A6T2hSyrgSdoSHsC0pmAa4EYDtEIKQUg9sJF4AyISogzIEEBEYEMoUMKL8hRw5DqGVLCQmovyNAxZCkTFxcXxHmQsVPIWCIkMiAkJECQ2ZD0DRkJgMTr379/P3369OrVK1lZWcigN2StLDzNoWmHeA1iMpxEUwMXh9RPkMEfCBvSeYK0c+EOhgcFRCNEnJubm5+fX1JSUlVV9ePHjz9+/Hj//v3Lly8hnoWc93Ljxo2XL19qa2srKCjIyspCohuScv7+/cvLywsxWUpKysfHR0dHh5mZ+dWrVwsXLoScuQ2ZFIecdAG5rgPSIYaEDDwEIK6CkBCfQkjIDBakHwxZigUfn4BEPSRaIYqRtUPYcBJywhokJUAE4VqQMxjEdxCTIcogJEQxxKcQEYhRENshwf737983b97cvn1bUFAQMuwESY3wJI1sESRJQwyBlN2QghviTogDIJZCrIOIQNjw/iWEAVEGJ+EMiGI4CXcqXASZAdEFsQVOwhVAZOFciH8hgnBjIbogCQPicYgCCBstoiF1D4SEGAtRDCEhIsgksjgkFuB6IVIQElkLhI1LHLJcAGIUpJqHewSiBSIFcTyEhHgQ4neI4ZBkCRGHZBlIXEMMh6iBRzTEEIixkJTABAMQG+EKIKkCop3qJMRqiF2QpjDcdkhJCHEhqfZCDIGHIbIXIIKQUIKwMWVBGsAYogBCYiqD2AJWCD01E6IGLg4vOSEmQEiIeggbrhIiCCchGR9e1EPMgcQdxOWQmIX0suC60GyHpAfQphKIfoihENUQ6yF9L25ubsgNd5CpNUirB2INnITE0J8/fzg5OX///n337t3bt28bGBhApoohq6Yh+R/SlYGkP4gI3K0QSyHO4uDgEBUVFRQUfPv2LaT0h5Q4cE9CWmTwahhSQENGziE1IqRGgYQg3IMQ3+EiIcogSQqiERJkkAYORBZSJUOcBBkohty2C+m1C4ABRCW8koMEDiT7YLUa2XxInxgSF0xMTI8ePRIQEBAWFn737t3///+5uLggFkEcCTcN7lpkEbgaiHsgzoAogIhAdMFjAeIpSFMGoheiAKIF0teHxBHkXmpOTk5JSUlIHfD69etfv359//79169fL168uHPnzpcvX54/fw5pu/Dz80Mum4Ivc4OcASIqKmpiYqKhocHAwPD+/ftHjx7t3r3706dPbGxsX758+f//Pw8PD2RvG6Qa/vPnD2RrNSQxQIppiFMhJSzEwZBzQiCdYMhMMDy9QTwLSbeQyIUHC0QvnAtnQMIKQkKCAmIXhITEFCQNw9VAii2IgRASEm4QEmIIZFE0ZKjg8ePHkHu3IBeHQOY+IYohvoM4FZ74IW6DKICwIcrQSEj1BnEAXArSdoRwIV0cSLMVogxiGtyFcEGICCYJCUkICYkUiFMh5kNIiAhEL9zNyFx4UQ4RhJAQlRCT4a6CG4gsAlGPXNXBdUEMgcQURC+EhGjB5Ttc4hBLIWZC2BAvI6uHsCFq4PEFSR4QEpJgIGECcSdEMaQhDjEW4kiIUXA2PFFBvAMxAaIe4h2aksi2QzI13DsQ90PcCXEDRATCJkhCsiTcO5jxCDENQsKVQbgQEh5QEC7cRrg4PJQgInAFuBiQeMElCxeHRCWk6oGnBHj9CFng8vPnT8jSDXisQdyA5lRoNYxsNMSrEDsgVwgLCQkJCAh8+fIFvugDrgbuYkj99OPHD0iH5t69e3p6epACEV48QVpSkFoHUt1C4hJCQlwGcSVkjY+kpOSjR4++ffsGKa0gjoREG6QNAhm/hYwSQ5aeQsoUSE0MsQhSWMPdADcEFwNTHBIUkHwCsR1SWULm8xgZGd+9ewc5lhkyuwm5OA9S70JiBZIOIF6DeBMSgBC7IMECKYwguiAqOTk5P3369PnzZwkJCcgOY8jgLdwEiDKIIZgkRBbSbIdkEggJtxrOhSR9iEpI2QE3DWIIRAtkpTTkXC1IqoKsBoS3eCCTryIiIr9+/YKczPX//3/ILqw3b958+/YNcroy5GxqDg4OyCq2V69eQUZNPDw8njx5cv78ecgSdx4w+PDhA2SdNqQggCznhoQnpN0A8QVEFuJaSFUNmbOH9IMhsQ/xGiTFQuIUEpIQcYiZEI9DzIFkLYgaSAhA1EBshIjATYMrg5iATELMQRaBKIa0MCAnmz58+PDu3buioqLwVY3IGQRuL4QBSYqYVkMcBkn2kECAWApPVBAF8JYWRBwSlRApiHo4CXEnnIvGgIQSJBwgfoSQ8NCGByxEDZp2OBdiNXIMwqXgGiH5Dk0cIojsDIgCiLMhJCTE4FZAGBBl5JFwd0K8CSHh7oRECoQLcR6kpEIurCEOgzgb4h4IGxIRkMjFFEcWgbgcogviQYiZEHFqkXDzIQZCuBDvg6oNFtApyJBRGbivISrhJH5XQQxEVgNho5H4DYeHP9xSOANiPpwLiRQ4F2ILhAthQ0iICFwxHvMhZQik9oGEAySOIHoh3RLIwUeQM50gHTOILcgkxJ3QQWlIooEYAfE5RJqLi0tUVFREROTNmzeQPgpEHEJCXAkxFHI0NGSD040bN+7cufP//38BAQHIvCAkz8NtgRT9kAoYnnsh9kJuxuXh4ZGWlubk5Pzy5QukEoLYCAkmeK8aEgqQrg+kdQ8ptSG1BcQWSLcA7lR4YEFSMMRAZEFI+EKsgzgYohciAskn7OzswsLCkH0mkOnbL1++QEKAh4cH4hKI7ZDAgdS1EA8ikxDbkUlIQocsaIKMgX/9+hWyOhqy2wfSsIA7GGI+mgkQp0JIiHUQZ0NE4LEMsQtuAsRMCBfChpAQwyGr7SBtYchcNcQcyCAwZP0tExMTZMxZXV395cuXnz59+vv374cPHyDHg0DmhiGnpUImfX///g059QVy2YaNjc2nT5/u3bsHqeAhS7QgpTmk8oAELISERCs8EuFegxR5cBLiHYgX4IohEQoJGYhGCAlXAPEaXBdcHNJYQQ4WSMDCFUC0QEyGsCHxhaYAXpBBCt/3799fu3ZNQEAAfp4aRBziKoh/IeEAMROSRCFsuPkQLty/EBMg+Q7ZBIjjIbIQNsQWiHZSSYhPIe6BsCETHHBn4ApJuAKISyAkxCUQc5BdgiwCiTuIsZDsiawSzoZLwf0IZ0DUoIUbRBAPCbEXYggka0OsgJAQFyKTEDWQIg6SGiEFHaQ4hpgDyYCQtAEPAbgUJDQgToIIQnwNCTqIeogsxASIOFyEKgxMM+H2QloYEC9D7IIrhjAgJESKeBKuC2IyhIs8aA8RgRsI50IYEBISIBA1EHMgbDgJEYQohpAQKVxsiCwyCTEBEr+QtAQJGUhR/+vXL0jHA3KkFaQ+gmhBJuHuhFbDED6yIyARz8HBwQ8GkHIWkscgRQ+kAwd3Gfzkga9fv+7fv5+RkVFXV1dPT09MTAzSfYR0myCpE5KmIX6AOwtiFBsb29evX9nZ2YWEhCA7eSAJHZIoISRcC6QXDjmbCVJPQLwASd+QcIFogaRgiDfhJDID0o2AKIM4DyILCQcICbEXYjgvLy/k4iDIUV9fvnzh5uYWBANIpxzeVoCYBtmhBCmwIBkSYhpkxBWSOZEdz8DAICAgAOktQeq2nz9/Qi6cgAQUfhLiawgJUQlxNoQNsRruQYgLIX5EJpGLfnZ2dsipHZDdC5DYhIQw5PQSSPizsLAICgpClh19+PDh/fv3X758gUxwMDExffjwAbIhCjL5/ePHD0gJ9e3btx8/fujo6Ny7d+/Ro0eQcZTPnz/z8fFBHAmpTiC5EbIzD9IggIQYhITEHWRDMCSEId6H+A5ZDSQQILLIJMQuZFmILrgayEYvSBBBFEOkIK0EiAMgUQwPYbgJEGdA1DMwMHByckLOy4ScF/vo0SMJCQlJSUk+Pj5IeEJUQprSkFN4IHkHkmsg4QbJjxC7IBZBHA8ffIZUwJAVDJDIQi4yIFZAtFBIwt0AYUCCAm4+mt8hdkHyNcRV8MQJ8QVEI4QNISEGQjRCRCDaIbEAIeHiEGXIJMRACIksTgYbYgiktIWkBHiMQ0yDhABk6RlECpIaIbIQ/0KKUIh2iIGQpjbEI3BxRkbG379/Q7iQEIAYCIlfiIEQLRBL4SK0Y8AdAynlII6HuA1iKSQW4CRcAUSWSBLiHbghcD9CGBBDIIkKogbuADgXTQQiDtECkYJYAWFDDISQEJUQNn4SYgKEhHgTQkKm8CBbbCDnNKOZCY9EuO2gahguCnElJKAhi6IhJzlALu6FbEaCTNFB6hiIekhhDcnq379/FxAQ+P3794EDB06ePCktLS0jI6OtrS0sLPzjxw9OTk5xcXFeXl54sQVJjpDyBbIY++3btxISEo8ePYLUPZycnJBTqSFlFiQaIHUAZA0zZC4Nko3hXWF2dvbv379DxgogzQW0eg7iR3iowYMD7h5kKUgOgUxIQzI/xKmQzh8kcCC5DjKMDzEcEqoQlZCTFCEikHIQ4hFIrwiy0wniWri9kMO8IMUopOKB+BfiGEhmhjgG4nhICECqK7ghkIMkIQkFUmRDltohLxyAa4QcH8HOzg4ZY4BUt5DIhWyMhqxDhhwFBTEBEumQw0kgo9aQi5Yh9nJxcf369Quy4O7mzZvfvn0TFBSEBAg3N/f///+fPHkiJiYGcT/k1g07O7v79++fP39eUlJSUFAQskMMogDS5ILUxJBiCO5NiAIICQlkSPqEBC9kgBeSoyAhCUlvkEkNZEPgJsB9iikLmQ6HpHy4LCRsIdrhMQuRhSQ/SHxBFEASAMQEiDv//Pnz/fv358+fX79+XVhYWFlZGXIZKD8/P+RgGcjsBjweIcU6POIg6Q2ZhBzdBUkMkDiCOABNDcQ9EGMh7oE4HuJyCIlWgkCCEaIMklkgGuFJEZIfISZDggXiTrg5cAbEEEgCQzYWIgKfdIAog7scrhLOgBgID1W4eyBehrsH4kKIpyBmQkyAaIeQEBEICVEJITHVQ/wO8SbEgxAXQvTC0ypEI6TGgiiGjB5B3AYhIRoh7oeoQXYMsgMgbEj4wGMNohhiCMSPEDegkXDz0cQhZqIJ4uFycHBA7t2BeISZmRkyuwQJZ0h6htgFSX5woyDuhJBwQUj4IAtC3AP3CFwKkwExBBLdEHPgIhBnwLmQUIVwIa1YSN6H6IW4E7kbBlcPUQDRiOwkeCEDl4Iw4KkCMjf8/ft3yKQqJIXAqy14FwJSOICKKbh+iD8hJMQdEEWQW4G5uLggp1n9/PkTogbeHoSYAMk28Eri379/79+///fv36dPn16/fv3nz59Xr14xMTHJy8vr6Oioqqry8vJCQgTidEhYQM43gBjFx8cnJib27ds3yPWC8OhBDg5IhQE5NRO5fwAxE540IXqRowrOhkhBfAQXhPgIQkKSOyRAkEX+/v0L6bJDBqUhEQPpEUJMgwzaQHrqkHITYggkauFuw2w6QZwBmSaEdIPgPWZIyED0QnIjmvshLoQogJgDCS6IMogsRBxCQlSiycKl4OpBCQV8MyPEJRBdkI4axDvIKiFsyBAIBwcH5CYrSOcPEjKQ0WkmJibIYDVkxhdSWwgICNjZ2X39+vXly5f8/PyQWwXhzoNUohAbIUUYxKmQgIWQ8NYSpPaF64UcGgopQSC64CNFEAfDSUjAwrloDHhUQgIBErwQqyFJBULCdUGUQbhwKUg4wAX//v377du3V69e8fDwKCgoiIiIQPrEkOkYyOE5EMUQEhIOEDbELxBnQNwGyVaQJikkW0FIeFBANELKSohieLMGrgbCgBgLUY+LhHgQEmiQqIHrhWiHkLi0Q9wPkYVohIhAjIWLQIIOUiJBQhuiBU5CFMC5cI1wEawM5IhAVkCkdohTIb6GsOHhgFysw90GUYnsNQgbUl4hOwCTDXcqsmlwNsQcCImpl+oikHoFOV3BXQIJBzQb4Y5HE4dEJR5ZTPUUioAsA2Nkc8ACoJVicEFIAkAm4VIQD8KDGqIGTRbiL8gKFUjHA1JyQvqfkD4hJLdCEgwLsn5IcEDSCqRBx8DAALmDiJeXl5OTk4ODA373EaQchGiBuAzSdYNkbMgBSUxMTN7e3pBdTJ8+fXrx4gVkwFlERARyAS2kloW0miFtRhYWlp8/f0ImRCF9JkiXCDIXCLEO4nOINyCnS0I6lJA2DiSAIKZB2BA/QooDiF5kEuJ4iK/hKiEMOIkcT5Cm1qdPnxjAe7S4ubkhpQPkvGVItxjSJoB0giEBAgluiF3wRAzZfvf371/IZVNfv36FdPohc8NcXFwcHByQiICciQE53AOiHdlrkO4d3LVwWyAiEKsh8QWRgpDwQIAYBeEihwNEO0QxGxsb5PIDSHcQ0qCDtIjhyiCxA+cyMzPDrxnh4uL68uULpOiH3LvFzs7++vVrSBccknIYGBi4uLisrKyeP3++e/duyHmfELdBzIQog5wwBRGBJHdI7EDSAyShQ9wMkYUXFpCSEeJISBhCeo1wxXC7IHPAcCsgDEj4QNgQG+EaIUui4IIQNRD1yCREHEJCFENshAwnvH37lpGRUU5OTkZGBnJYN6RVB0m3kKCDqIfbC3cnRBaSDJBNhkQ6xA0QeyFhAiEhbUdI+oSYCQ8WiEVoGuEmwLVDRCC6cCmGBDgkEULUI5MQiyAicBMgBkIEIdEKcSqkuQCxHUJCDIewIeohBkJMQDYQIoucvDH1QtRg6oKIYyUh1kGMgvsR2Z2Q6IC7EFIEQ3TBSawmQwQhJsNJiGlwLiRwIHEHiWvM9A+3GmIg5SS8FQgpCSG+gLsE4hiIpfCxK4ilEGcjs+EiEH9BpGhKwlM73BaIGyAk3PFwWXicQrIh3F8QX8OTClw9xASIYshCLcgth5D1NBBdcDMhdTOokwPRADEF7hSIZZAaDjI9DLk0EXJSF6QIhpgFH0qF9NsgdQZEAT8/v5mZmYKCwvv379+9ewfZf/zt2zfIHUrwggZSb0EcAOnBQM5tgJTgkN20HBwcX79+hbgK4hNItoSoh9d5kGoY0g+A9K4gHWVI0KCRcBshDHiAojEw0wckIuFLxyGjMZDQgOxzhaROiKsgQ7WQXj7EARD3Q/IMpCv8798/yKnUkDVZkH4kFxcXZAkYxFOQIWJIHoO7EGIghISULxDDkUlInEJEID6FqIeIoJHICiBsuLGQ0WxIxQDZAgRJQ5DQhpiDHFbwbAk5oxQ+IAOJ0C9fvkCO4oL4DlKNQVpjfHx8Ojo6Dx48+PDhAxcXF9yzEMMhgQ9hQ0jIqAOklQYxAeIYCAmpnyBjEhCrIbU4xHmQhArxKUQ9hISIwEm4GyC9FoiZkNQICV6ISmRlcHPgCuAMSPhDHA8ppyALL/78+fP58+dnz569fv1aXFyclZUVMi/IysoKKbshtkBIuBsgTUB4rQNJh3DDIbIQGyEaIc6AOBXChohDBlog2iGyEHFcJFwvxKdwLiRYILogghASl5kQcQiJ7E6IsRAS4h2IX+AqIYIQwyGWQhRjkhDHwEmIFggJ0QiRgohAQgDNJRAFeEiIpRATICUqhISYD3EqhA0xH+ILiC6IsRARiAkQlRBxZBGIOZCohyRgiAjEtZDwQTYfIg4xAWI+xEwKSUhigzgSUsxCyjq4RRC7IG6DCEIUQ+yFiEBIiDgEQNgQNbQj4fZCAgdOQmyEuBw5XiAK4OIQZZBmFqS0gYwKQ8QhJEQ75FRjyLg0ZG4XEm7wkh+iGOIe0NwwpJcAEYWQyOHCzMzMxcXFz8/Pw8Pz/v17SHULiXJIYxzCZmBggNziAEkHf/78ERQUtLCw0NTUfPLkCWReGUJChhytra05OTm5ubkh+R+y6xdSA0FOQGRhYdHS0nr79u39+/c/fPgAMRbiPAgJcSSkXIYMRUIqCUhZCbmPD+JniFfhGQOiHTlkIQogIY4siywCYUN0QayD3GwFmUeE9BE5ODgg2QM+mQfXhdZxhNgCagexgAYkILuQIaO18A1XkEoIXhFCBoHREiskyiERDGFDTIawIa6FyEJcAiEhsshsiAhcPcQQOAkZHYWohwQ4JPAhcQdPjhBBCAkJbUhoQNoQyOkV4qQPHz58//4dsqwf0tH/9+/fhw8flJSUbGxsdu3aBRkIgRgIaXjBbYdUURAnQXrJELvg4pCuIaStAOmXQ3wHmbaBtCQg2iEkPAQgyiB+h7AhJEQZJGYhtT7ECkiMQNInckKC6IK4CmIahISIQ0iI1yAxCxkaefHixZMnT2RlZUVFReGpF1LyQrRDSIh2SFKHuxziQggJ8SDEfIgCuEYIF0JCFEOaQZAog5BwjRBdmCTcpxApuHsgBkLCBCJFHglxHpyEuAfSaoFbDWFASIgtkHQFH/9AdhVEARoJ1wtnQBTANcIZEHGsJLIaSFkKybOQQIC4HMJG046sEeIAZBKiBSICZ0NyASThQUyGKEAOKEgUwA2HKECzmkIuJJwh0zrwngakSwb3OyQhQSyCuwHOgPgIQkIARCWtSUiwQNwPCSgICRFHZsNFIE6ChDCEDSnzIetjIIkNkjIhaiAkpIsIWTINuUwBUrDDZSFGQbI26DBLSEkBCQvkYIJYwMDAAJkEhZwj8e3bN3htBw9ESB0MiRUI+ffv31+/fkG2hEpJSfHw8Ojp6UFONeLh4ZGVlYUPOENCBN7eh6wGghzjoK2tDdmlc/ToUcjwLMSpEJ9AnApxNqRLBD/QA+IGyLg0WukP8TwkiCEkJOgh4hASUxyStuDikOMXPn369PHjR15eXkjPnp2dHTK6CHESXAvEtRCTISQkL0GUQTwO6VOys7NDohZyLwKkkwQhIaZB5qEhhsBJiPmQTjnELxB3QsQhJTWuSgKiBhIFEL0QiyAmQEIYogZy+xYkhCFbiSAuhy/ZgyiGew1SHkHiCxIdkOwKqUchnWPIRSCQfj9EOyMjI+SQSwMDg+vXr7948QKSmSHGQlwIcRukBQBxGzwoIKMLkLNUIRZBUi9knQGkffr169fPnz9DkjGkOIMYiGYUXBDZUnhAQfwFCStIPELaYRBfwN0DcTwkm0AEIbZAzIEHEcQuyEjSixcv7t27Jy8vz8fHx8PDAxlZgYxLwV0CqZ7hRkEcACEhDoP4C57yIbEPcQZkQAVZBOIwSGMa0rCGmwwpIyAKiCQhfkFWDAkETHGIGngYQnwHCUCIFogCZBKeDJAFISZD3AwpsiAkXBzicbgWiBUQEiIIZ0McAxGEuAfChhgFYaORkGCHKICTEEG4vRAuxBYICTcEzoUw4CQaA64eHr8QEYjJEDbEdohGuAjERxASIohGIqtHk8LFhccOpNeEnEggQ5uQOgmiHdl8OBvubAgDIg4hIb6A6KUFCUknyLYgs+E2YgpCNMIVQEYHIQuZIZECVwDxCEQlZGEHIyMjpI6AjM5C8i9knQok9EBXO0AyLZopkB4MJN2zsbEJCwuLioq+fv0acoQhZPsNRCPEVsgFvZB6CNIH//z588OHD62trfn5+SGOhgy6/vz5EzJQCQp+MIaYAxmfhM89//r1S1BQUEtL69evX0+ePIGcqIXsYUhIQUpbSKEMnwyHDJXAcyPca5CggWiEsDFJuCyEASEhyuBsyJHIkMF2ERERbm5uSKaFjC3DAwQiCCGRe2lgT/+H+wUSyJClwhC9kMCHZGPIFClEHO0kE4gHIQUrPG9AnAqxAmI1pNCHmAAXgfgFEjLIbEiOhYhAtEDYkKOe//z58+XLF8jadUhzD179QDRC/AKpPOBDVZDeKsQuyP4uyOHVv379evPmDeSmB8i4MeRQi2/fvnFxcVlYWJw4ceLVq1cQr6H5AlKRQ8yEexlyERYksUEGjjg4OCQkJKSkpCQlJSHdzc+fP78GA0hKhuiF+BHCRvY1xHwICQk6SKRASIguSG0KYUPEISYgsyEiEHMgmRDNOxDF//79+/Lly/3792VkZISEhCBzGRCVkIoTYgKEhLgW4iqI+XARSNsLogzuMGRZePKAMJCTIkQEEo8QE5A1YrLRrIZbB9ELkYWwMfVCMj5WcYgzIFIQMyFGQYotiAjcWAgDLTtA1MBNgGiHkBBBCAkXgTMg4nDtcAZEHI2EJ3uIMnhahTPgxkIUQIIaYgiyH+HiEEEICUkVEI0QLRASzUxIGoBLQdTDSbhiiAIKSUhDDWImZJIYsiwX4mBIhxhuBcQNEC5EC8RHaCSEC1GArAUkQW0MKRyQTYXYCElXcHGIY+BceGzCgxpS7kF6epARMkgihMcjXCWkRoMcogDpVUJKbMj6YkhNChqUhuRzSHMY2WKIiyHdIF5eXgEBAchsJaREQAs7FhYWyNbSr1+/QhbHfvr06cmTJ9++fYMcLPXjxw82NjZIRQXZ9AKJOYiHIU0DyFgf5AK+T58+MTIyCgoKqqqqamlpHTt2DB5SkKQPCT5IeYHWG4YPk0LUwD2FyYCEL1ZxiCBcASSUIb6GkJAl3JDiHmIRJG4gGiH+gvgRuViEyEJcCPEIJOThoQppWECqK8ioNWSAEcKGK4O4B1L0QNgQuyD2QmyBkBBZiJvhIhAGJK1AFEC8ABGH+xpiGmRWFXIr4vfv3+FTqoyMjDw8PBBDILZDbIEsvIK0qyAmQMT//v0LaVVApjYgu4chdx1CquHv378LCwu/fv2am5vbwMDg8ePHb968gYQS3GEQ6yB9a4ixkBCDZADI6XEQNZAbJqSkpBQVFSGHnLOwsHz79g2yFw4SfZDwhDsSYgtEO4REDhxIGQSxDqISUqdC2BDHQMIB2UBkNsQ0yCA/hA0ZVIAH+L9//969e/f48WM5OTk2NjbwYWI88BkNiFGQNA9hw2MNzoX7CJKv4S5EDkaIYog5EO/AHQB3P0QN3Hy4H5EZEDUQjyOLw9n4tUOUQQyBOwDCgAhCogAXGxKAECsg3oSTEJOJJ+FWoGmBGI4miMyFaMSqDOIRuBREJdxHcC6EASnckAMfIg6JNYhP4eGMaSbEWIiNcOehceHiVGRAamLIKBQ84UFcDnEzhA23EY0L8RGmIFw91RkQV8GNhYckxCVwEqIA7jBILEACGSIFL3ghSQ5iLMQ0uC6IFGQQDrJAFX6CAmSkCjI8DCrYIYUXJMdC+jegUPn/HzJdBB924OTkFBQU5OPjgwy9QkIcUs9DClBmZmbIiccCAgJ//vz5+PGjiIjI5cuXIWwZGRl4bv/69Ss/Pz+8KIe0iCH9P8gyacj9d5CVKYyMjLy8vJaWli/A4M2bN5BLDiD9LYheyJw05AoEyKlMkDIa0ueGDI9DKnhIooEEFoSEhCxyeoWLQ4IbUkpC2MgkZKX3FzDg4+Pj5+eHjBhDrIYUcPDIg8wlQAIWkt8gAYhsL8QlkCiEVNIQNZBKGiIOOcEDsqn/////kLnkv3//wldrQxyPnCbgg9WQdAOxBeIeOBtZPcRSiBS8xwkZZYJM6j9+/Pjjx4+Qy6fZ2Njk5OQgox1iYmJ//vz5+vWrgIAA5BBKSOsB0hWGxBTEHEhAMTExCQkJXbt2zdraGnlSAzIfATnUwsrK6suXL7dv32ZkZBQQEPj69SsTExMPDw9k2BkenpDkDmk1QiZgIAO8vLy8kpKSUlJSAgIC/Pz8rKyskOO6WFhYuLm5OTk5r1+/DjluE2IUJJAhDob0cSHikCiAhC1kDhseqpAUBXEApPcP7xBA1EPCE2IyJFQhQQFPS5CMAFEAadK9e/fuxo0bkpKSkOucIXkTPpoCMRZSXkCSGST6IPELcQlEBCILT/kQQUjyg1gHcQ9k6AgiC7ELkiwhGiEtAIgsxM1wvRDtEEFkV0FE0EhIOKAJQpqnmIIQcbhFkLiAeBluEUQNxGGQ0gMiBXE8hI3VZIgg3HCISog5yD5CUwbhYpJwf8ENhKhB5sINR5OCZBBIgoHEL1wlpFiGlHIQQeSYhfsduXSCeASSZ9E0wgMQEoZwEtO/EBciK4CLQBiQ9AOxCyICCXzIUUuQKUWIdkjegYcDGgNiDkQlnIRnDYiXIc6DaISoh7CRTUZ2CUQ9RASiHpKekcUhoQ23EaIMbi/ERxD1kNIbYhpcHJLLICUwvHKElDaQCg6iFx5ZcAdDNvpCBrEhsQORgkQlqDcMsQPkfBiGiEBMhKpjYYEUYZANxJCaD5IEIekeHjSQHgPEZd+/f7948aKtre2PHz/+///Pz88PSW0Q7RAfwl0DMQfSYYebzMLCwsXFJSAgoKKi8v379zdv3kAKPsjpJBDFcNdCGJDSB24CzE9QGhIBELsgDoDogrPhDIj3kbkQlRASMqQAuTwA4hiIR+DqIUkfEpeQaIZbCheEWAFxKoQNCUb4FAJkVhXiI0iKgVTzkAwM6aRCtEC0Q0iIVyFsiGshroKQEBG4LEQxmhREFlnw8+fPHz9+hMyqfv78+RMYfP36VVlZWVJSUlpaGhKnkKQJmSKCTCRDSMiFEJCjpCEOgKSQ379/f/v2jYeHBzKwAwlDSHOQiYmJjY1NXV398+fPb968gawnhzSqIM0UiMshaQCe7iH75dnZ2Tk5OXl4eLi5uSE3Q0MKCMh0iaCgIAsLy9evX9++ffvs2bNfv35BpuTh0QQxExLsECchBzI8b8M9ApGFk5DQg5DwMISbA9cFYUBIiDJ4Cvn+/ftLMIA07yDRDfcjRDEkgUG0Q+yCsCHOgLAhmRdCQoILkv4haiBOgqiEsCEmQ1RC2MhpFaKSPiTEPcj+grDh7oE7EpJ9IK5FJiHq8bsWop4YlfjNIV4WbiMkUiANUwgJMQQeNRAG3JvIDIhKiFFwcbggmjiECw9PuDI0EYg4QRIe/nCVkEQLadlDmnSQ5AoxH0JCFEPYEBIigoeEK4OEAyTdQkhkEYjvMM1BE0c2DWIInERmQMyB6IWQ8LQBD2cIA9LcgaiHGA4p9CClNEQcQsJlIcULJLlCVmWysLBAFuciqmGINEQPhISYCHENKysrDw+PiIiIgIDAx48fIecqQMoFiGWQXjZEI6SAgOyjPXbsmImJCWS0lpmZ+evXr5DeM8RYiF5kEmICRAQS5ZycnAICAvr6+u/fv3/69OnPnz8hspAAggQKXAQSQ/BiGtJ4gbgHoh5iJoSE6IK4BD8JUYlMQoYafvz48f379x8/fkD6NPAwhDgD2S+QyIa4BE0czWEQLsQ9EBsh5T4kuUMOeoSs4YLMx0MqLeT+GTxMkBlwo5AZEAUQuzBJNJdA1vuJiopCVt5BauX79+9/+/aNhYXlw4cPf//+FRQUhOwG5ubmhuyBhqwqh0zbQ7wAsQgyMfHr16+PHz8KCQlBkjW8OoSs/IJUw+/fv4eciQY/wQeyog3ieHjnFcJlZ2dnZWWFXLPBy8sLmUb59+8fZCz99+/ffHx8kEmTv3//QuLu3bt3kNYhPFQh8Qj3PiQ2IeEGmQ2CpHxI+xdeWyMrg+uFxDhELyTekUmIMogshISUyN++fXv48KGkpCTk1Dm4FkjQwZ0HEYckLYjtEBJiLCTZQJwK0QJpIkNiAa4Sks0hLQ+IRohL4CTcFojtcHGaMuCWQpwEtxo+MgGJbojvIGrgJDID2RxkNtxATAZN/QVxNjzwIU5FTkLwRAVxLTzikF0FiUGIXoiBkHCAsOHiEAachJiArBdiBUSceBK58ITrgvSJIVNOkGEhNGVwu+AMuF40AI8RSChBSEgih5DIInDFuAyBaMFKwgXheiGmwYMRHnQQEXggQ8oc5KIAYhRkiRLEEIgI3GRIfQGZCYass2FjY+MCA1DXBW4TJL4hYQRJ6/BwhBQNkHFpSDnLAj5TCeI4iAmQbAzRDnHB////f/78ef369du3b+vr60Pus4MMKUNyPjw04eohNQrEJZDkAnEDBweHrKysoqLigwcPnjx5Ajm/GrI0AO5PiDMgLQ5I358FBiADEXC3QVRCHA8hIS1TiDiEhAQlXBbZFggbUrv8+PEDch4ykdUwxMsQEmIFJGwhAQKxGhLZkN4hpF0JEYeoh4hAZkAhvXDIRliILMTBcDZEIxoJcT9EJUQKzoZwkRXAjYJsiRYSEhIWFv7////Hjx9lZGTevn3769cvZmZmbm5uyDVK//79+/z5869fvyBbzCHrCSDZEtJdhhsIaY39+/fv48ePkKIHEneQ/Azp9bKzs/Px8SkqKkK6rfBKGlINQ1yL7Hh4PIKmW1hYODg4IOUCZOT558+fkCsl/v//z8fHJyoq+vv37y9fvkDG0uGGQwZj4TECtwWSfiA5EJJE4ekWMoQI4cLVQxgQEqIXrgASwhApCAkJFogCSMi8evXq8ePH6urqYmJikAPiIT5FVgkxFk5C0hWEC2nWQJqhEI0QWUibHcKGOwPSlYEogwjCFUCsg5CQzAhRQCoJcRWpuuDqIQ6AhxUkj0BIiBSEhKtHZmC1Glk9nA1nIGvHzyZDC8QXEFdBwhwS2pAFLhDrILIQNiRVwNkQBqSIhjTyIOEAIeHugTAgJMRGuDmQohUuCDEQjURzAFwWaxqAN/ggWRhS2UA8BXcAxEAICTcNk4GsHmICJHNBxCEiEEMgJKYJEBFIyMC9DNEI50LUIJMQ8yHRASGRwwciAslNkHBGroMhg8yQkhmiEtMiSJhD3AyZLYV0BiBXAYE2rcLtgzgdEtCQ3i3EOEiRxMrKysvLKygoyMvLC1myC6/8IaUSxCaIaZBVqX/+/Hn9+vWJEyc0NTV5eXk/f/4MWf8J2c0JCRpIKEPYcBJSFkOqOojTIdOQSkpK7969gxzswMrKCinZkUMTkg4gfSl4qEECDmIOJJgwSbgX4FIQj6AZDudCPPvz589v3759//4dMk0OtwjuEUhgQnQhC0JEIM0OuEUQBZA0Dclm8LkfSGMKslCZgYEBcpoKpHkBakyxQFe8oyUm5GoJbgtEDcS/EEGIlyFsuIMhghDFDAwMkCO0IFPCkBNdJCQkIIuwvnz5wsHBwcrK+uXLF15e3k+fPkHWkLOxsYmLi4uKiv748QO+6BdydCWk3IcMWkDWEEJqbkiFDenZQzrQP3/+FBcXV1FRgRz8AqmQINPAaC6Ehx7EI5DxZ8gSh58/f/7+/fvHjx+Q5iOkb83Pzy8jIwNZ+A1ZNQ2ZmoVkKkhqQQtAiMmQdAXJGvB4hDAgToKwIYrhbDQGPGDhWuAikKEjyBTMy5cvIXPbkDCBKIb4FJJx4PEIsQ7ZEIhiiAikoQPxGrJL4Gog5sAVQ7wPaSPCfQpJ88jaaceGOADiHmQHQGyE5BFIdoOIoJEQ7ZDSAG4Imhq4OJyBpoAWXGS7IOUt3BZIMQvnQrwAIeEhAPEyfFQDEulwNRAu3ARMBjwG4QxMNQRFINZBPAIhIekEwobkUHhrD2IaRAuEhIjQh4TkFDiJaSnEzRBxCBueI+BcuCxECsKFBDWk7IUsvIJ0nOAxBVcGZ0AMhAxHQ65v4eDggKxfZoEEDcQCCBuiDeJ0iE5IlQBZ2CIsLCwgIAAZcoTcZgMplSBLVyCjK3DT/v////3793Pnzjk4OOjo6EDO6IDcAgspayC2wMsI5FIP0u2A1DSQlbfCwsKKiooPHz6ELNWB9L8hKRLiZggJaVRCaghIUQX3Fzy5QFwIcTnEj/BiCCIFISEGYiUhl+1Admd///4d4ilIJxWiHl6fwSMM4lk4CbEXEraQcINogbgK4maIOOTof0iF8fXr179//8rJyUlLS8MHqOGZE2IXsuMhtkDEIQ6DiKCRyFogiuEicJWQQhwSsCwsLPz8/JAjNr9+/QpZSff161dIywlyHOmvX7/evn0L8S9kgBqSUiEmQzrxkGuXfvz4AangIXdWQkaVIbO5f//+5eLiUlBQgJz1AVnxD8nkkICCNEvhxQpkNh1SaUGiA9Kx/vHjB+S4FUjfl4GBAXJYury8/JcvXz5+/Pj8+XNI+ENakJBAQA5YtAwG8RdykEK0QEQg0YfJhgQmcjqHqIGLQxiQAvrDhw+PHz+WlZUVEBCA9G4hboCnaki7AWICsu0MDAzwBhzEnZCEBPEgXCW8MoMYCzEH4nK4LogWCAlRAA9qCJdIEmIspmKIfzHFISJouiCZBSIFSUVo2uHq4QxkryErhrAhJDxAICaTRMJNIFIX3GFwjZCSB+IGuKfgUQxnQKIA0nIl0i40v0Oshkcf3AHEmwYxEFMjJCFBSlfIfCdkSAkyRgjxGsT9EDfgsRGiDKIFogySF9CshijDYxoeKWTD4X5BZkDYyCSyFoir4EkR4ndIsQPJZRCnwh0AMQfOhWiHGAjRC6rLIcZBlMJVQDIhJMrhUqysrFxcXMLCwkJCQry8vJBeIEQ7pNUJKRYh6QZSiUJ6e8+fP9+/fz8/P7+cnBzk2ARIEQyxBeJ0CAlxAGT1E6Q2hdfQkKsUxMTEpKWlP3z4ALkjD5KC4S6EMCC1BXwuENJWgIQCxNuQQhDChpSzkECBkBAR5PwAcRUaCbH6169fkOlhSH8LsnwMohKS3CFOgpiM3GJAE4dogZCQZQ7s7Oxfvnx5//495L7ez58/f/nyBX709I8fPwQEBCDLtSDJFOJguEUQ8+GCEJPhghBlcEG4MogCTFnIGC/EIoguSBhC2lV8fHy/fv0SFhZmZGR88+YNDw8PHx/fnz9/IEPWkBujIS19yOpuSA0Brz4/fvz49etXDg4OyLbyjx8/QhYDwndB/Pjxg5+fX0VF5f3795BtxJBhGEhWhKQ0uMshoQdp5EGiALIXDtK3hqx9gxzdBVngLSwsrKCgAOkNv337Fl5wwBt5kMCBpFV4yEASOYSEK4CHDMRhEC1wj0NSINwEuIMhuuCykClziODHjx8fPnyoDAaQhgUkh0NshLAh6RCiHpmERBY8+0DMh6R5iEa4SyCuhXgcYjLcbZAAhKiEKINYAReHcGlKQoIR7mZI9kSzEeI7uBpkLppfkLkQQ9BE4HohslQnIeZDLIWQECsg/oKEPySVwnsgEH/BFUPUQEhkXRARiGkQLXA2JAbhsQZnICsgmw0xDeI8SAKDzARhpj3kJAQJB6yWwpVBfARJAHjU4zIEogVCQkIArhLuWogIxCIIG00lXBCNATEWYg6kCIJMksIH5CFRAFEAKS0hHkELFoixoN4wcjhCNEOqT0gpA4lpUI0NXtYFOTQKclw1pF6B2wQpueC6ILXyLzA4fvy4rq6ugoLCu3fvIPtGIKO4EJdB6mCIxyCjr5DFq5DFtBADIRHMyckpLCzMx8cHGSOFDE5CfAInIWZC6mnIMl1IUQhxJ5yEBD2chGiHc5EZECk0EhJo8CIeMk0LaQOiqYRwIeohtkNEICQkeCHBDgkBSKTy8/N/+/bt/fv3d+/effXq1efPnyH7a79///7u3TsuLi5NTU1BQUFIFECuF4QkIIjLIWyIFchsNAdAFEMEISSyFmQRSD8VMnQMiVlIxxdyTBVk8vXjx49Pnz6FbHGBVKI/f/6EDLxAVldBvAmpOSCG////H9Keg3TgIF3Vnz9/Qrb2QjIkpJKGjG9//PgRIgipxSEkxECsLodEPaRhB6m8IfUc5CwtVlZWAQEBERERSUnJp0+fvnv3DjKdAXEMJHAgxkISFcRqiC8gyRIii6YSEikQKUicQkhIREA8DqkmIUZBVELYkDQPSRVfv36FHJgDsReiEW4IxBaIIMR5EBMgJCRrQMSRbUezC2IaJL9DshgkMCFsZMW4EjBcDS0YcPdDvAAJBwgbzTq4IIQBJyHhg6YYzoXLwhlwKRox4F6A2wgJWEhEQNIzpBiBlIqQyUEICUlmaCQkqcAFIR7H5Xi4XbgUECMO8QKySojtkMiC1BSQBjrEOohP4brwuxAOILogXMgAFbJpkESOrAaiEk5CbIGQcEFIIEO4EL1wEpLsMdVDFMNJuC/gIhC/Q1r/cEFkBkQLpOcJGcaDBBTEMRA2C6TNBSlYIXkPUptCQhPiW0hLHDLszM/PLyEh8ezZs3fv3kG26kI6zRA2ZOYPUsRArGRkZITcZ3fgwAFBQUFNTU1GRsbPnz///v0bcgIzZJEq5IBMdnZ2yKrjnz9/gqtvKAG5MQpSskOWv7548eL379+QUVlIQEB8BUmUkNoRko4h/oSHCyRQIIohGiFaIF00iAg8biCtGIheSAxBSEjvH3I1L2SU+Pv3758+fZKQkICEBkQBpHMMGVGHhCrEKAgJMYqVlRVyoATkOGXIDVQaGhq/fv2Sl5d/9+7dli1b3r9/z8vL+/TpUy4urr9///Ly8t66dUtOTs7BwQES/b9//4a7H2I4MgmJVog3IRGKPJgJ8SwkQJD9CxGHkJBqCRKqEA9CrIMkHsgZnB8/frx169a7d++0tLS+fPkCmS/59u0bZPOrqanp58+fT506BZlHh3R8paSkvn37BhmugEw/c3FxiYiIQOYyIIu83r59q6Sk9Pr1a3Z2diMjo8+fPz969AgyDAAZ9oBHGaSZCfECZPQbMqACCQqICKTP9+fPH0hzkImJSVRUlI+PT1VV9cOHD5DeNgsLCy8vLyS1Q2INUjVCRuMhMQsJLogsJIggKR8iDnEDJOFBilRIJoeUIxD3QGIfoh5So0PIX79+cXNzQ7YDcHNzf/ny5cGDBx8/fhQWFoZ0MhgZGSHXaf/8+RPS4oHELyS1Q9jwuIacEwKJJogUxF6ImyEugZBwEYizIYKQHAdpF0JSGlwcksfRFEPiAq4GmQGxFyICtwtS/UMCASIFJyGhDSEhQ26Q0IYctA7xCyRUISbDe5DIK2Xg4QC3Am41nAGxEWIIXBlEkBgSrpEYxZB8hKwS2RmQwIQYCAlzSJMR0t6FJA9ICEN2KkKSGSQo4ObAGci2ILPhiRBiHSQMIcUCnER2J8Q9EBJuDpyLbB1kQQ+kgIXcKwop6iEuhGQcSLMY4gu4aXCAXC5BrICQyPGCLALxArIs3CjkqIcLQtIbxM1oJMRhyCohbLh1EFvgbV9IAQjxCKRsgUwbQaokiMPgboBUAZDwgYQDpO/Bw8Pz48cP0NQesmsgFkOMhrAxSchCLX5+fi4uLsiduPBMjqwRYuz///+5ubnZ2Nh+/vx58eJFbm7ud+/eSUlJ8fHxcXFxQbaLQE7p+v79O2TG9+vXr5BbCyGlM6QkhUwTQg4flpeXh1y/CLkxAhIukCFHyPwiZKEpvDcACT5IaEJcCHEbstcgshARCBtTDUQWTkKMghTQ8EbDz58/IU0WiCzcEAgXrheZAYkbeI0CMQqypvfnz5/y8vJycnI/f/58/fq1iIjIp0+fICXv379/b926pampqaKi8uXLFz4+PshgCMRkiL1wEs12iDiySkgQQUQgJLIaiAhkTQGk0w8ZaYDMvP769YuFheXLly/v3r17//79ly9ffv78CbmokYmJSVxc3NnZWUNDQ1RU9NGjR8zMzMePH4cUKH/+/IFMCTMzM3/48EFSUhIyZM3JyQkJQ0jhy8bG9v79e8iZYqysrHJycq9evYLMxENaORDfQQqX////Q27Fhp8QAkn0kBoaYi9EPWQL0/v37yGnaQoICMjLyz979gzifsh5qxC9EJPhRR4kg0HCBDncIMPgkLoQTkKUQWyEBynEBEgygyiAkBAFbGxskH1TEDf//Pnz/fv3jx8/lpSUhKwPhzRYIfNwaCZDTICYBjEf4mWIjZBCFlkNRCWEhKiEsOEkxHw4F1LCwkmIOJqBEHuRpdAUQJwBUQAJYWQtcHHIYj1InQr3LKQmRnMVRAvEELhPkQWRowkiPshJSIhBKkiIl+EBBanSICEAJyEehOjC5TVIrKHJYmqBp3Y0lQS5kPCHuwTSjIA03eDZAasbIABiL9w9cNMgssgkRA1cPS6VEGUQjchsSKiiiaMlG4gshIRYBPEXsvuR2ZBIgZgMKQcgNiK7DVKaQcyE1BqQXTaQgAKtlIbogZMQQyHakA2CGAEZxxMTE4MP4kFqTbh2NPe9ffuWm5v7z58/9+/f//Lly61btyQkJPj5+Y2MjD58+PDy5UtI9w5SxHBzc3Nxcf38+RPSZ4JskoEUTOLi4pDK++/fv1JSUhISEhcvXrx58yakjIZ4DFJJQKoHtJCFJFmIFyBhCmdDGHCfQjwC50JkISSyIMRAyMnd38Hgx48fP3/+hLfWIYrhsQjpPUC4ECkICdnBBamGIet4ITugIOdd/Pr1y8vLq7+/H9LUYmdnh5di9+7du3//voqKCmR3FrwahjgMQkKcDfERsghyCEBk8YtARp45ODggYxXI662YmZkhbSDIJmaIN3l4eCAnm7KwsAgLC4uJiUFWFWhpad24cQNyyyGk4cXJycnIyPjy5UtVVVWIR7i4uCCtS0j7lIODA7KxGDJcrKioeP/+/SdPnkA65ZAwhNTHkITHAQaQgIKHNqQxB+mYQsb9IFuVGBgYODk52dnZpaWlFRUVX758CT5t+jVkLhyShCDVIdwiSGaDBCxEEMKGFJSQJimk8oCLQzIUJJzhtR18hBwiDlEM8QgkLiAh+efPnzdv3ty8eVNRUZGdnR0yHAKxF9Ieh2iEk5BAgDgGklQgNsLF4SrRGBDPQkiIAyAOQw5DCBtOQpQhmwMZPEQWhxgCEYEYDiEhroL09pBNgLMhOQIS+JCxOsg4J4SNlpghPoUEC9xGuFFwETgDLjV4GMiOh4QwxG2QbgZkUBoiAu9jQUIVEhQQEhIOEGVoJMR8iBY4CReEiEC4yLajGQLnwkMSnq7geiENVsg+BUjh9hsMIBkWkn0glQvEtRCj0MyBWAQxE0JCRCCKIS6EsJFlIWogJEQWwkZWA3EAsgjEGRCVmCRcJcSFcBKSjCENRIiXIcPOkG4SpMCBqEF2CTycIZ2Qz58/Q7ocoI0u8CiEGAd3FsRKSGkIYUNIHh4eISEhPj4+yKFI8KyC6QeIUZB9ypC+782bNx89eiQoKKiurv7u3bunT59+/fqVj4+Pl5cXYibENEiccXBwCAgICAoKcnFxCQkJcXBwMDIy/vz5E3ISIWR07vTp05ACGjKG+ePHD8jNjJDhR4i3IQ6DexMSLnAuRBbiNXigQ2Iaoh0uCFGJTEK66RCvQQ4IhdQlkMICohFiEaRUhQQIPHog7URI7+f///+Qg0Iha3r//fsH4ero6Kirq1+6dAmysAiy+YeZmfn79+93797V09MTEhL69u0bpFCG2wVhIPsC4mysfocIQjwLUYbMhshC9iFARhog9RlkpIWNje3Tp0+/f/+GdCgfP3789+9fyHwwNzc3pC3/6dMnyDgBZIH3zZs3IVEGWR/w798/yIJqyLguC/hwcshoJKQ6hJdE////5+LikpGRefHiBcSFkAWKkHNPIWELuRsREqQQ70PcDwlzSCxD9P7+/RtyPhcvL6+wsDA/P7+srOzjx48h4Q9pCkCcAckCkCCF+AhiF4SEmwzhwisYiC0QEqIXwoaEMEQXxG1wWUj1CQkWeGkLuezh0aNHkCEoiBpI7oUkMIiBENshJMRwCBtOQpShaYEIwkm4RrhTIeoh5SYkHCAOg4gjuxxiCKSYg7AxrYb3cSEtFUj6h9gFMQpOws2HNJsgyQ/SWIc4AG4FMgOiHSICYUNCGGIFXBzCGJwkxMEQEuJsiEcgUQNhQ3IERBZCwtWjeQoSjJCIgCd+uBqIaRBZiDkQ9bhMg6iBa4cw0LRAzIRkTEjzHVJQICuDmw9nwAFEGZwLsRHT5fBkBkmTEPXIeuEmI+tFZkN8DdcCZ0CMgpNwc+AiEEMg0QERhLeeIdfzwKdy4OUkpByD1NmQ8IEcqvH161dItw10ihbEJgiJtSZGdjFkzo+Xl5efn5+bmxvSdYPUmhCXwf0D4fLx8UGuBYSUX5AxTFFRUUFBQWZm5l+/fj1//vzXr1+QZTg/f/4UEBCAnBMCOboBcpA1BwcH5PgtyFwxAwMDpCLn4+P79u3bgwcPXr58CY94yKZkeLUHKUEg0Qkvl+GehXgNwoW7HBK4EC1w7XBBCAN+2gNk3hrSI4QMDEAKDoiZEBJScEBsh2iHsCHZCRIxkPkeLi6ujx8/QiYmP336JCAg8OnTp6CgoMuXL0OCERKqkArp/v37V69e9fb2fv36NaS7DDEKbh3EC3AbIbIQJ6FJQdTASUw1kH0IkP46pHL69evX379/v3z58vbtW2ZmZjk5OQUFBUh6YGVlhRwwDpr2YAE19SBntjExMamoqNy7d+/bt2+QSz4gcwcQo+AtJ8hJWJD65v///zw8PL9+/eLi4oKMdkhJSfHz83/8+BGSViFOhbR7GBgYIEPiyFEA8SnE75DeKkQWEvWQmlhUVBRy+jRkFSFk5QGkkoDkOoj58PwGCSi4AohT4RUwxC4ICcmKcPXwNAYxFuI2iCzEIxCjIBZBTPj58+fz58/v3LkjLi4uICAA71tDEg/EFxASkjYg5sAtghgOJ5GLLbgg3BnwXAOxGpJKIYZDNMJFILYgmwCxHRKhEDachJgPGbKC5BFIEoJkIoiPIOUDctKFOAYyawOphiGGQ9yGbDXEVRBxiC6IjXA1cNfCGXCpQchAdiQkncA9BfEXsgKICJovILGPTCKXYxDtEBKiERKAEKMguiDixJNwXZBYgMQUpDcM2TEI8QjEUgiJbDhmtQpRD0l7yOqR2ZASAGIO3AEQLRBBOIkpiykCV4zGgKiEBBGy7fDkjexlyL20kOQNUQBxD1wjhAHpv0HKK1AKhxgBkUMmkZ0CcQfEOIjPOTk5hYSEBAUFP3/+/P37d0gWghgFiUu4dmZmZsh8J6TLAmkFMzExQcaff/369enTpw8fPjAxMUGmfuXk5CCHjEBGCyHRCSmg4cUcpFnBz8/PwsJiaWnJyMj47t07SGcR0ieG3M8KiUhI8EHcA/cg3KkQcbjX0BRDPA4hGRgQJ7xA1ENMgyxcAo+7/Ia0EiCHd0FkIbrgbAgXoh1iNcRGyCQKMzMzHx/f58+fIbdRsbCwfP/+nZGRUUVFxcjI6Pjx45AlDJBZcxYWljdv3ty4ccPBwQFytQPEcIjXICREBO5+CBciBRGEOwzOgLgKQsIFIVo4wQCySZqZmRlymPtPMICcNC4iIiImJvb69WvI/ZqQLjvEO5Bbs37//q2srCwmJgZJM5DpA0gB8eXLF8jhz5AGDSQeITO4AgICEC9Duon8/PxSUlKQPcqQkh3iPHhXCRL+kLoWIgUv3CGhDUk/EPaPHz8+fPjw9u1bITBQVFR8/Pjx8+fPIfPWkNoXeTj09+/f8GCBhCEks0EqeEjugCc8iBWQ6IZUYxAtEGUQt8FNg4Q5ZLwBYi/EzN+/f7979+7u3bvy8vJiYmKQi0shLQBITQwxATKMBLEaYiPEQORcA3EqRByNxOoYiBqIXZDEA4ksiPkQeyFsiBqI+RA/QthwX0OGVSG9YYhTISRkmwfEv5BcAIksiNXwGhoeBXAHwG2HqIQ4D1JdQRwAUQAhIWrgbDgDIj7YSIj74a6CuBZCQrwJJ+Fq4FogwQ6PFAgDTmJqhCdRZAbcWEwGxBlw6+AmQ8SR1UPiDrJkCVKAw92GaRdcO6Q+Rk7GECkICbcO2SKIIEQBssPgauD2QlSiqYFwIdrhWuAMiCxEI8TZEBISksgmQ0Qgq1ggRRAkU0CyAKR5jWwsZAkzZHQT0RuGqIC4BkJCRCDugNgHmf/79+8fpBoWFhZ++/YtZKkwcqsfoh2iBTJEDDmFGJLBfv369erVKyYmJsiRuWJiYt++fRMQEJCQkBAWFoaMxEKyJaSQhexN4uTkhCzhYWRkhAz/QtbjQHpg3759u3v3LmRUE7KMFlJ/w70A8QXEYRBBCAkXgSiABCUk0CEK4CQk9OHq4SUpfIcVZAMxpBaBDA/A9ULSFpyLzIC4E1KFQFa0QfZkQyq2Dx8+CAsL//nzx93d/c6dO5Crjf7+/QvxIwsLy+vXry9evGhmZgY5UAziPAgJsQWTDSlwIbJw/8IZaOEAF4fcrMDHxwe+Uwq0EBpcKXP++fMHsoMZUlCKi4tDCkpJSckPHz5ATvaAnGDFxcUFOX9NTk7u06dPnz9/hnSGIPMo7969g4yvQHZGQcbY//////nzZ8g0OWS/FgcHBwMDg5yc3P379yG70SCTrJAEA1lMAFk5CDnxFO5+SHxBKgO43yErJ799+wZZAScrKyslJSUnJ/ccDCCbBSDNR0jSRdYIYUMSOSSnQQIWHoAQBZBkA6kL4VIQlZCogZDISQ6iDDI5CmH/+PHj2bNnT58+lZOTgwx8QXRBpqMgaiC1Grz8gjgJ2XkQNkQjxG3IJCTW4N6ElCAQkyFegIhA2MiGQIyFRCJkqA1uLKYyiPMgAQupMtnY2CDlNSQGIQ6Ahw+8YoaL48pKcLvgDLgzIAy4OJwBER+EJCTYIQ6DuBZCQkQgJCQiIGxIFEDYyPEOMQdCQmQhyQxiGoSEZBCIGmQz4eqxMuAqIRqR1UCiGGIsqJ8H3uYK6X1BmtGQnAjXguwMZEGIyXCLIPEOMRwiBSHhWuAMuDiEAQkcZDZEJdxeCJd4EuIGSEhCDId4FiICXXLFwgKZJIa0PyCZC2IFJG1DNEK2a4IWKUNcA5GDkBBD4e6GmA7XBrlcD7JeGnKkImQfBaRWhyiGmAnRArnCHTKnC2m8//r16927d9evXxcUFFRSUpKSkoJMIUCG1CGrPCC9H4h72NjYIJZCOgcQQUi5BsmlKioqv3///v79+6NHjyCTjhBxiBq0ZgjEd/AQgTCQSYjHIV5AFkdjQ5wBSSWQbamQ+uPPnz8Qd8LVoxkFMR8uy8TEBOlgQQKHHQy+ffvGwMDw+fNnHh6eDx8+iIuLKygoaGhonD59GtIh5ubm/v79O2SB9Pnz5w0MDCDJFG4snAGxHW4psrMJBgWygt+/f3ODAeRcESYmJl5eXsjmIkjsvH///s+fP5A2xK9fv16/fg3ZUQPpqb979w5y8QMjI6OYmBgfH9+7d+8gvVLIbivIydIQoyCDzxAfQS4RgRgLGUT58uWLqKgoZEUiJHvDIxoyBwM5hAs+QgMJCkjmgdTucBFI9vj9+/fHjx/fvXsnLi4O6WpDjsuGLDOBt5Dg9RwkWCDJG0JCzIGLQ5IcRAqSQiB1GCQWIP6CkJDYgecaSNULaVhAmgjwlAwZNPr8+TMfHx/Ea5B6C978hVgHsQJSKUK8CXE2hA0JHzgbmQGZyoGEEsQ9EDdDKkuIL5DVI7MhVkMsgmy1gtSs8MQG0Q5xG6RohrAhR5xCwg1ZMUQEUqLBRzUgtiCHGLIbIOIQi5DF0dgQZWiCg4oLCRkIiVZjobkT4lm4SggDTkKCC86FeBxCQoIX2TSIUcgi5LEh6QdiKcQESJOLlZUV3j+BuwGiAAIgghASIoJGoqVDZCsgKiH+hbPhDIg4RD0kSUO8D3Eq3EY4A6IRTsI14lcAVw9J+ZBsC8lTkMIBUl5BSjxI/oWI//z5E6QFOZVDMhKEhKxPhhQWEBdDAhRSvUMuVIccbAk5ygNuAaT4gHMhp0+DKnwWFshoM2S77aFDh96/f8/ExAS5XZiNjQ1SDUO66pAcCLcdkhyRXQ+pmyGrtDg4OMTExNTV1ZWUlCC30ENKKAgJmdSEDHJCevOQWWRI8Qq3CBJwEBLS9IbEFiR8IXEAKSkgxkIGDyFzeJCl55AqAbKWGOJ9iEoICdELISEmQ8yE9Agh5SMkyvn5+SHlIGSwHXJGFQsLi7+/v7i4OAMDAxcX169fvyB37kLuAL537x5kFAFiL8RrkMlmiF1wb0JMhnTWId6EOwniU4hr4VIQQQYGBmFh4c+fP3NxcUFGL+7fvw8ZZ4Zs/oasGPjz5w8TE5OAgABkvISbmxvS3IMEO6SO+fbtm4GBAcRTv3794uDggKSod+/eQcoCyLz479+/IT1pXl5eyHAILy8v5EhtNja2X79+GRsbQ0a2IUeXQJwNqcUhyQxymjSkSQTZyQZZ1gSJMkhEs7KyQjY9Q27FfvPmDRcXl6KiopCQEGQLOAMDAy8vL2TwHLL6GhLO8D4HpHCB2AjpN0NSKcQ9kM2sEMWgzMbEBLEX3hpALiMgMQUZ0YE07CCxAAnV379/37lz5/nz55C1Y5ChIMglpvDIhYwe/fr1CzJyAFm1AM9QECdBEgCkPILU1nC7IObAcwdkYA2SliANC8jwA2T+BdLchDeA0DwC4ULsgoyFQPTCd1tBmjjs7OzwDWbwxhPEGWjJEpI1IMbCSfgQN0QWYh08xUIYEF9DQhKS4yDicBJiGqTQg8QUXIqeDIh/IYkEEgKQpAJxHiYJ9xfEaxAuJMvDi3SImcimQcyEaIH4Dh50EMWQIEK2DqIMLguXQhNHVgAJTMjmY0jdAbkFHDJghpbAIC6HmAZRDDcKmQFJaRAS7gY0x0OMgvgXkt4gZTKyMkiqRg4HiC0QN2OSEDMhLoewIUEEVwkxHFKqQDIL5HwqyDH7EMMhJx9DMjgk60GMgmSrb9++MUH8j4uEWAkhIakcbisbGxvkjghINQwxF56MIJbBi3tIyoCrYWRkfP/+/blz5548eQLZgwHpDEFGaCGhDLEOEu6QCW1IkQcPWYhLfv/+zcnJKScnB9mcCsmZvLy8kMiAGAgpOCDrBXD5FE0cEnyQgIOkWojjIWyINyFxCenFQmaFIQUfpDMHcTnELxCnQqyAmww3HOJTuCykhIJogYwiQBZCS0tLW1pasrCwQC5v5uXlhQzUv3r16vz589+/f4d0lCGVGaTNBIk4uI3IDIh1mCREDSYJOYPl////P378+Pz589OnT1+8eAEpxyH2QpIgJGQgRSoDAwOkuQAZjIJs7oIMZcvJyUHO63j37h2kofbr16/PYABpx0Bm3L99+wZJXZDREUhFCDnJi5OTk4+PD7IgC77qBxLykKCDBC+kgoQvB4NnQkhsQlo/kD1XkBnir1+/8vDwKCsr8/DwQFZbQNRAVsBBhi4gKRCS8SAD4JAJTkigwWMckgWQQxiiAFkEEvXIWiBqkCMOIvL371/I5RaQo28gKQ3iEkiah5cLEAbETIg5EFvgyiAOgKdkiPkQEiIFCUCICRArkBMzxDS4yRAtkNCGGALxOMQ6uHZI1EDMgSQSSPaBaIQYAtEOMRkSQRBHQmQh7kErBCCeRbYL4niIsRCjINqHKwkJNIjvIP6FiMDZ8KCAiEBU0o2ExDW8NIZEKDyO4M5AdjMkgUGk4CohsQ+RwmRDlEHEISREO/EA7gA0BsQEuJlwBtbARG5GQFobkIoPUiYjOx7iYHjPE7pvGKIfYiXEAohrIFEIEYeTEMVsbGx8fHzCwsKvX7/+/v07ZGgaoguSNyA2QXq0cL0Qp0AuPTx+/LicnJyYmBh8ChAy8gBRDMnMcBKuEcKAGA5pTUAW5YqKiioqKn78+PHDhw+QkTFIVQRRAxnog/QkIOajeQ3ia7ggMhfChngNwoYog7gWUgT8/PkTstEFvGIJdAQYpMSHRAC8ywu3GmIChISYCTcfclfujx8/ODk5IX3uv3//srGxiYqKmpmZnThx4u7du3///oV0RiE10O3btyG3G7GyskICHxL9kGYQ3FK4RRB74eLIDIgaZBEIG1LfcHJyQi4m+vHjB2S2GDInDWk6QDp/kNVbkE1o3759gxgIqcYgw+8sLCzKyspCQkL3799/+fKljIwMZJ7i8+fPkCVIkPlCeDqGdLj//PkDr4Y5OTl5eHhERUVfvHgBWUcNqRQh3W54yP/9+xcy5gNxA6REgPgdUhxA2JCJ9q9fv759+/bjx48iIiLKysp37tyBnOkNGTOHNDgg6wAgQw5w0yBDNZBOJ2SIGJJo0bpWEDdAbISkCkgaRiYhRkFSOEQ9PFX8+fPn06dPL1++hJxeB8mDkBQIsQgy2AAvJiDGQqyDZAHIMBXEQEiXHeIMuHaIXjgXUmVCfAQxB6IeYjUkVcBJiLEQN0OsgyiDiEDcBokjiEpIuQxxP8RwiFEQ9ZCmDySE4SIQBXD3QEIJTkIiFKIFUoVDLIKHA0Q7GgmXhXgNTXZocZEDCuJ35LIXIgshIf6ij5chUQwpHyBxBxn9Qg55iHsgJCT5waMVzoCoh5OQtArRAiEhUnD1EEHiSeSwQtYFdw8kuCABiJy24YrhgpC0DRkAgDRDIekf4kIIiawLlNohpsNFIQy4ICQ6IVyIfggJmeDh4eEREBDg5eV9//495NwiSDkCsRUy9g0xEB46ELdC9t48fvz47Nmz8vLyMjIykFsLIcOGEC0QiyAlGiTQ4WxITQOp/yC9Q0jngIuLS1RUFHL2GyS8IO6EzDdDSlK4OCYDXhxAfA1xBpwNYUB0QVRCcj4knUEmhiHkr1+/IEN2kLoHEnpw0yAhAOFCCnRITMPNZ2Vl5eDg+PLlC+S0TsjgKuR2IEFBQVNT0w8fPrx58wbiBlFRUciY/M+fP/n4+CADtpDaF6IRkryQnQ2xGi4C4cJJiHo4F86AxOmXL19YWVlVVVUhtS+kmw4pXiEVP6S5w8rK+unTJ0h+g1xCBWkfQMpHVlZWCQkJFRWVq1evPnv2DFLP8fDwvH37VlFRkYODA9KUgVgNuVAEMnQMKWQhwQXxNaQjDlmNBXEhZLMTZA4CEguQCRFIhxWekCAamZiYIKeDQVLI379/P336xAcGSkpK79+///Tp07dv3yDbtCAHpECiDxJKkNQFSajwWIakUkgdhiYFiTIICZGCuAeSOyAikPFqzNiB9IbfvHnz/v17cXFxyMZoSAKDBBTcKDgXwoCQEFmIryFDRJD0BpGFV5yQlAPnQoIUWSWcDWdATIBEDTz7QwIBogbiFzgbkmsggpCggJsAEYSQkIYCRAoePpDAh4yiQ5IBxFjI+CfEDfCIgEhBQhVuDpyBKQ6xF65gSDAgnoW7HBI+EJdDyiVI0EHCGVMZRDtEPYUkZnhCDITEAqRJDSkEIIkKIgtxHtxhEC6yFIQNSb0QWYhFcBGIAogUnIT4Fy5FDANiLB6VkLCFkLjMhxgCSYeQJVqQSgfiWkiZgOxISH4BVcNwE+FGwAMFEoJwEmIWxKEQ17Czs/OCARcX15cvXyC1IyRqIfkZkhQgJsOth5gDGcu9cuWKmJiYh4eHsLAwZHMOxHyIGyCZGUJCZpUgPoFEJMSHkGnwnz9/vnr16v3795C5PSYmJsgSIcixi5DiElIowwtQiMchFkECDi4CF4SIQEhIOEDYEEdCWj0Q50G2qEMqYMgYOMSpkBCAGAjRBSHhIhD3QIyFCELqBviaXngT8tOnTwwMDLa2tu/fv3/+/Dmk/oCcO8HHxwdxDGSg7+/fv5BAhkczxHxkqyF2QUSQSTzikKlHZmZmQTCAdCLh0QopXiE2QtwmLi7Oy8srISEB2YoGOTALsgGUg4NDS0tr3759kBFpYWFhXV1dKSkpXl5eyJkwkMEVFhYWyCgxBwcH5MosyKYmyIY0AQEBfn5+iIMhpTbkCGVIdENWhUCa4ezs7JAZVogUZAqNg4ODjY1NQEAAMi3y5csXSN0GOdVZSkrq6dOnDx8+hJw+DUlskMF2eGqBJGx4UENSAiTeIVKQ0IA0tuAikBCDcJFJSMaBeAeiBs6GcP/+/QtZSgbZRQ3RC5GCsCFJFMJGbgRDXAiptyDiEJMhNkIcDGk/QUyAiENMhotAmlmQhhREEJ5s4KZBEiHEvxBZ5FQBb65BmhqQ4IIrgJgJISHhBjEB4ng4CdkQAhkEghsIyWUQB0O8D9E7ckhIFED8CwlDSDhAwg05+0PU0I2EpCVITEGqYUg1AUmNEGdDnAp3EpwLZ0Ck4Fy4pyDikHiHk3BB6jIgToWQEJMh4QxhQ9wGl4X4F9KchfgUUmNC8hpEC4SElP+gQWkIH24EnAvRiWYZJFghAQG5gRhy0NW3b98g+QqiAFITQLIHRDFmMDEzMz979uz48eNSUlI6OjqQfA6xFOI4yDAaJNogroIYAmkOQ2aJIFcBvnjxAjIqq66uzsvL+////3v37r179w5yNxGkTQApqZHDC+I1iMeRiwMIGy4OT8QQ9XAuqBUDPpsC0hT48+cPZLkZpIyAtBsg1sEdD9cLEYdYARGEWAphs7Cw8PDwQCoViOGQrSBsbGyysrLGxsaQU9CYmZl5eXkhox9wt0EKSkiYQ7wMMRNOQhwDtxrCJUhCRvghwxhfv3799esXZPAZUj9BCnfIakCIS/T19SG7fpWUlCBHaEEKUEhP99+/f2pqas7Ozp8/fxYREVFRUVFQUAAfQwm67hASFJB55c+fP0MW20NCA1LEQ24d5uHhkZWVffbsGaSuhSR9yK3akD4x5KxESG8bMl7NyckJOdMN3OMFHWzOzs7Oycn55cuXN2/eQNY9QdYQCAoKSkhI8PHxvX4NPdsSMs0MqSEgLRKIryHJHpJKISQkDUNUQrIDPPtB4h0SO/Awh8cFJOggaiBJHSIFMRByS8rz588/fvwISR4QEyAOgFsHsRGuEWIOxAQIG9Kwg5cOEO0QLiTkIbkP4hi4CCR7QkiIFFqKgmR25CoW0l6BuATScYckTrh2uKsgIsgkxKkQEjm4IK6FjPXB3YZsLMQ6ZC2QUEIjIYEMUQyRQmZDRIYECXE2Lu9AwgEezhBlkFCFhDa1/Ag3Gc1AiPMgSQXSJ4YUjJBECNGFTEK0Q0Qg7oSIQEyAiEPMhLAhsvA0DxeEqIHIIpNwBciCaBYhS0HMgZAQN0Bk4SIQLoSEGA4Jc0hxBNk2De83Qqau4Ioh6kH1CJoHIKbDBSFRBRGE6IGIQDItpLYQFhaGnJ0EyQyQMWFI6Qzf1wjJPBDfwgsvyKjyo0eP9uzZ8+3bN3V1dcigGaRNDbEUUq5B6lHIaSyQchxyfiRkTvHly5efPn2CLJaWk5NjZGSEDCS+ffuWi4vr5cuXkAFeyBpUiLEQX0CCFSICydIQccziA64SohiiAHJuJSSgIb6GdL4hy4sgrQT4WChEIyQCIKbB2ZCAhTgAEoWQS+khyiDBBalRIMd5ysrKQjrfkDljSDUDCVuIH+GjjhC3wa3GZMDdAGdAHAPnwhmQIIVMAXz8+PHbt29///79+vUr/GYtSP0HWagF2c/GxMQEUQCZNYesmIWscmJjY+Pl5XV3d2diYgIfmyEEPpb7OyRJgNIlC2hHOwMDAzc3N2R5sKCgIGRqFh4sHBwcioqKz549g8xbQ+ohSHHPw8PDy8sL6eHx8PBA1oWxs7NDFhWCR3BABKTnzcHB8enTJ8iECKTA+v//Px8fn7S0tLi4+JMnTyDVM2TbOjwpQmoCSK0DSe2QtAoJQEhCgsQpJLMgZwFIZEE8AiHhUQPRDiHhyuCx8OnTpydPnrx8+VJQUBD5DgyIFRBLIYohWRienCBSEEHIwhA4G6IG7nGISyAuhxQlkNQOz5WQShpiC5yE6IKohwhCGkxwxZAWIdxYZK/B3QaxCBIgcFdBggJCQhb9QcpxSHqDzD5Aoh6iEeISZPMh7sFKQnwN0YhVwVARRPY1JDwhLoenOogCSDDCfQ1RQ2sSEpWQQIakIkiZBhFHBvB4RI4+iJshjTxkX0DYcJWQ9IwmSLzX4AkVqxaIsRASrgCNCwlVSIBDEj+k2QEZA4Cs3IbUx3AT4AxEbxguhMZAswweHJAqk4ODg5eXF3LmIqQMhfQFIaUVZGAQEtAQYyHikK4JZMnrjx8/zpw5w8nJKSYmxszMDGnmQ5RBBq4hpRvkyI5v3759+fLl8+fPkPMfIAuF/v79KyMjo6mpCTmB68ePH+zs7OLi4pByio2NDTJeDRmUhhTTkDQB8RqEhEQDpCCApGMICRnih6iBiED0QgYw4YOckIWgkA0k8HCAlNSQEIN4HxcJNxkeVhAbIYUXpDUDGSyF7M1lYGD48OEDZPIVsmsLMvzw588fyLYZyBgsGxsbZD83xDSIy3G5Ab84ZEgZsl0H0tARFBSE5AFIBEHSHGS8F1L9Q8ZkICkSsucHks0gPenPnz9LSkpCDqt6+PAhBwfH////Ie0MyF5hDg4OHh6ef//+ffz4kZWVVVhYGLLuHxJHkLOjxcTEIFzIWjaIjZATYwQFBcF7sNkhyxf4+fkhHV/4qmlIx46FhQVyFzIkF0HuFPn58ycPD4+IiIiwsDBkexjcR5CYgkQTPJVC7IWEA6TUgPgUnqjgYQuXhVgHISFmQuIIUqFCAhauC874/v07ZHoYcs4apDiD2AsphuAqMRmQgIL0yyHOQCYhtkNSCEQlxPGQFAhpYUNIuEpMKyC+hotD1EO4ED9CROBOhXgfogBiNYSEKIAEMsSRcDWQeR/IZDBkggMyfQNxLcQWiHaIFvyuhagZliTE4/AQhoQJhKSzf5HjETlpwZ0Br7rg6Qce6XAGJGHAvYOcQdB8iqwFbgVBBsQQXMrgsnAGLpXInoV4B1IwQrpGkKyK7EJIugXdNwwxEc0CuHEQn0NyI4QNKX0gqZ+FhUVAQACy6xfUv+Dl/QoGkFUtkFONIBUzpM6AFFiQIVZITxGyOub69etcXFy6urri4uJcXFyQGhQSPZBu5efPnxkYGJ4+fXrx4sVXr17x8/OLioqysbFxcnKqqqoqKSlBjtuFXJAAGbTk5uaWlJSEdIYgboDMRCL7BTKZCgkBSExDEgqkjIawIXkbUoJASEhqhvT8ICOxkFlDiAmQThvEvxBzIMUl3BZkBqQ6gfRu4RU2ZKsMpI8FOTUMEpKQC/ggy9l+/vz54sULZmZmfn7+X79+QRYxQQaKIc6DDOlDuj4Qcch2I8i5od+/f4dUjZC2AiT24Su6IbEPSesQKcgqaNAWNyYmPj4+QUFBiBrITPafP38gU/uQ1AZZKQaRev78OWSFM2R0HdKJ+fPnDycnJ2RB+58/fyC7veEOhjR9IAEIuf7o3r17f/780dHRga+i+vz5M6SZqa2t/fTpUyYmJh4eHkiMQLpcsrKyEO9ANqcyMjLy8/NzcnJC/AvxO2SOGXIdCGT7E0QEMrbBzc2trq7+9OnTmzdvQq6ehDgJ3huDbMGCNIAgcQpplkGSAST0IGkYElYQNRBZSDcakiEhyQMSzpC4g6iHyEKSHyTSGRkZf/369ezZM3l5eQEBAchAPSS3Q6xDzpsQiyCWQgyBqEQ2HCICkYXMO8C3SMK1Q3owcAdDBtYgRQEkqCEkxCL4igEIF24IxHnwwXxIsEDG/yF5CpJTIN6HKIa0SCCykAwCaVxCal9I3oQ4A1L+QGyEByOECwlDiIFwEtlVEGWDloR4h1TnQaIYogsSufBBYIgUJGwhTWRIEEEsgiiGlNIQ7RBZCIkn3OAKILrgJGRECjLUBLEUMtYFKZB//foFSfyQcgPiNoheiIEQEl4yQKQgJMTBEDachKQHSCsNIggxE57eIILIHsFqDqYyiAjcPZCECtEL8QJEBBKkkBwBqXQhPRMuLi7IVky4IEQvxED03jBEFEJC3AqJGAiJlo4h+RbSjxETE4McqQHe/PmZjY0N0qeBVKKQnAwpASEkxKEQp0BmVSGFKeScIAEBAWZm5s+fP79//x5yevCXL1/ExcUhxyzcvHmTg4PDxMREV1dXW1tbUFCQl5cXMmAFMRxS90BuvYXUH5CtMpD7ACD+glTAEH8hOwaS7SEkJKsjq4GrhPRQISEAqWAgyiBdfEgNChmIgNQNkFjERUKiEOIwSODDrYYUQJDlvoyMjB8+fID49927d0+ePPn69auCgoK0tDSknwrv60NiCjKOCnEqZPMupKb/+vUr5BwuyNkXkA1CkEzy48cP+IEnkFIeskgbEoMQP0Imfb98+fLjxw9IBHFwcMjKykpISPz////Lly+QQIBMpkJCDNKJYWdnh9wqDZ/PhiRKSOWBNXDY2Nggm+JevXp1//59SUlJyBHTkFYk5NpNSMUAuUYCMkoJ8SbER5D9S5DohmQSSCkDadlAggWSe+FqIFzIia2ioqJPnz798uULpA6GxBQkfiHKIEUMRBbuBUgkQiyCdEDhUpA0DyEh0QQnIWrgeiFqIGEOGXyCtF8/f/4MuRcZHt1wKyDpFuJ9ZHMgRkHMhyQziAg8mUHappAQgBgCUQyxHeIRCAnJYhC/Q1IFsoEQXZCyD8KGkxD3QEiIFjgbrgbCgBsOMQcyvAS3F6IX4khI6oLoIoOEBAIZGoeclgH3KSQhQdIbJDFDcj0kDUBIykMVkj2RzYF4HJKi4LZABCEJCVkx5WxIgoQkTkgbF5I3IQU4ZH0MRARiF8QliGoY4kQIidV9EA2QjAExAtKzgWxvhex25eTk/PTp08ePHzk5OSHnDEBG+SBteciwMISENE8gbTRIafLly5eXL1/+//9fQEAA0r17/fr1/fv33759Czmk6du3b3x8fKKiopBjmAwNDXV0dCB9YkgvARLWkALl9+/fkPqPiYlJREQEEjpPnz79/PkzZLMNOzs7JFAgvoB4GZJWIIULRAvENLg4hAFp4EBCGVJXQc6XgDgD0luCzGRD9tJA2nqQQEMj4aGKxoDM8kJSFWRAHn6uGSQAubm5paWlf/z4ISIiApn7hLQBIVog7oS0IiFpAjkdQMbtIUPocNdCDisWFRWF3AT88eNHSHcWMuQAOcoKcoLEq1evnj59+uzZsw8fPty9e/f///9KSkpOTk6QlfOQgzUgjTBIAQrZrg2p9iCDB5DaF1IpQkIYkhLQAgcSKcLCwhISEleuXHnw4IGAgICoqOiXL1/Y2NggrR8hISFI5xtS60PyOaSShqRVSFBA5kcg/WPICDYktcDdA5kogXTmIOMZkIkSeXn5J0+efPv2DTLEAgl8CAkxAc1GSJ0KyUeQqSCIMyAk3IOQaIJw4YrhghARiPch7occJA7ZtvT27dt37959/foVnoYh4QxJkJBuJSQEIOZDzIGkZ4ibIeIQEQgJGYGAsCE2QtRAXAJp0EC8A68OIekKogxiHbL7If6Fa4Qog5CQpA6xBWIIRAQSdBA1EDdDhsogzVlICoG4H5JDIY0GuF6IFoh2iDIIG9lYuAuRFSObANdCJAOuFxJQROqivzK4OyEhAHEthIQ7Bq4GLkI5AxLLEJMhOQViKWQAA1IhQUjkGCHDXoi/IIZArEA2BOIArCKYUsjK0NgkKYY4BtImhhQskJEzSJGLnDVQqmGI6yEkRDMkL0FE4A6CeBgiCBmFg4QvJLlDwh3igu/fv0OW5EAyDKRLBFEMqbEgWRqe+RkYGCDDnlxcXJAjwXh4eCC9q3///n379k1ISMjAwEBISIifnx9CQtYKQUIHYg7Eq5Bi5cePH5CRT8hZwYyMjI8ePYK4H9JtgjgG0qGHuBlSLkDKMkh1C/ERhIRYASnvIGUBxDRIjQ6pXSABBSnKf//+DdljAylEIFLIJEQ7xP3IZQc8eCGhCunNQxaFQYYHBAQEDAwMIC758eMHJJohpsHrY8jkOqTtCRmGhbR+mJmZnz9/zsnJKSAgAJnkhh9/+OrVK8h0KTc39+/fv9+/f//ixYv3799DKt2XL19++PDh379/kJNb5OTkQkJCIFuYREVFWVlZIfd8QK41hJTaEE/9/fsXUpFDEgyk1IYHJq7AgYxwcHJyiouLv3r16vXr1y9evIAchsrBwQEJEw4O0OJqyEJ9SN0MCTF4bEK48KY3pO6HBBdkjRtkuBWiHrJRCrLXGXJAjbS0tJiY2LNnzyCnh0JOK4PnC0iqgIxKQaIVUqbAFcC9BgkHiBqIXRCHQUQg0Y2pBpIwIN1QSFr9+fPnu3fv3rx58/XrV8h+LUgtBRkSgKRJeIsE4jxIkoawkUlkceRAgDgM4iR4cxDiTkgKh6QiiC8gPoWwIckPIgJRA8mMkBIHYjVy1EN8BBGHWAr3L8RAiCGQHYAQEYgW+HwbXD2cAXEnxDQ4CReEGAInsTKQFRNkQ7wMNwcSaAR10V8BWvhAuJDghbCJdBKpHkQzHBJ9kMkISKqGpBCCxqKZg+ZaiHbkuICLoKlE5sLNhDOQZdHYyGqQ2XBlEBshg/CQLABP2JACGTLKCMkL8EMIIFwWiGY4CWFAAgiSiCEiEHORUxtEBEJC/A/J/JCFMJDuAkQ9JIdD3ATxAGRVERsbG+QORMipFz/AADKG/vXrV8i5vpDL5CFLsYSEhOTk5KSkpCCrcyG9WEihDCkHIbUOZDsTZNEmpDUNmX/l4eERFBR89eoVxLWQbhCkDwQZV4S4EFKQQUhInQERhyQgOBseshARyM5USIcJ0guHJHFIIoP4Gh5haAxMWcgMNyRGIePeEK/9+/fv69evbGxskKMWIeUvpJcJqY8h0QFxPMQWbm5uyDYqSHsIsiSKg4ODi4sLsiv369evkAXJkDMdf/78+fr161evXr148eLNmzdv37799OnT9+/fv337BlnerKCgICMjAzl0RUBA4MePHzw8PJCjoSHTw5B5/U+fPvHz8zMzM3/58gVSbXz69AliBR8fn4CAAA8PDzc3N2ScADKIDXEwJvn7928eHh5FRcUfP348ffqUmZlZVlYW3kyEzGXCIxrS84akB0hbChIRkOrk58+fkCNH+Pj4kFMOxBmQkIT0LCGjOJycnJDbGyFpFR7gkMQAzyCQTjacC7ERnnEguQAtliExBdcC9zW8JoakK4g4soGQNPDu3TvI7gBIWweyQhDSwoBogZAQd0KaO/D6D5JUIFJwWyCtB4guuBvg96HCK2yIXyCJH2ICRApiBSSVQgyBew2SBSAaIbGGrAWuEaILEmhwvRDfQRrrEKdCGvQQEqIXHpIQE0gi4ZECZ5CkHeIpiBa4yyHcwUmieRPCpafLIWkGYi+kloFELry1Sl64QYp0SHTAvQO3BZkBKRkgtsDFIVxiSIgWZOsguuBZBmI7cpqEpFtI3oRMkEEmsCBqIAayQGpjSLqHmIhGQqyEqEZTBm8aw02EzPlBCjhIyMKrQ4hrINEAKY4hBSgrK+v376CdKj9//vz69SsfHx8DA8OXL18+fvzIz88vKyurrKwM6X5B+seQNauQKT1I8Q2Z+ob4H+IkZmZmyFJSSFUNaRNA7pbn5OSE7LWFnHQIKZ0huRpSPEHqMEgJDsnncHF48QEphiDuh/gIsoj3169fkM0zkJYHxDGQZgFaqMK5yAELYUNilIWFBTLQDWlDQS73/ffvH2T1FqSL/+vXL3gzAhLa8AiClLmQ+IYkd0j7C+JmSPjDN31B1l0/ePAAMgUAiQhIPQQZD2BhYXFychIVFZWXl5eWlobMxENGGiDzyhA2ZPEXfEiDmZn548ePV69effDgAeR0aEjt+/fvX8g11ZDhDW5ubshxlfAwQWbAV9UJCQmJioreunXr5cuXkHsXICkKohjiX0jDBTJxC4kCyJqg379/Q2ayP378CGkNCAsLi4iIQO7uhTeb4MMGkC1nkNTFy8sLuRLq6dOnkFEHSAqB2AixC1JNQgIfUp9BcgQkTcLdCclKEGXICiBeQC5E4FogiiFSEN9BmlPv37+H3LENaZLCLYKkWHiahKdYZAMhyQxiMkQjxP0QNsQxEPWQxg3EpxARiPkQNRDDITkFIgJxJzIbogtuMsRh8ACEmABXj8yABCM870BUQprFcO0QjyCTcIsgvoOTEDUQ8yFsCIksAnE8sgkQWYIk3ChIziXDBIJWUFcBxMFwd0K48LDCbxdcF35lcFms6iHJALLdH1I4Q7IDXBcmA+5ITCmIFfDMhawSjQ2JIEhEQ8xBVgARQSPhhkN0wdXDGXD1EJXwHh1cPSQLQEbjMEdxIMUUohqGGAc3HZL3IKEDb+RCCjWIBRBbIbogFRWkqofUQxCVkIYwZPIPHvTwmTmICRDDIQOMkK2oHBwcHz58gFxbpKqqKisrC7lR8e/fv5CzuiD5EHLfAzc3N6Qahrgc0qqADBFDeoEQ8R8/fkAmrXl5eYWFhXl4eCBXFEDGySFbaCC+gBgOqZghhQ6yy+HFAWSmFhL3EMWQcVfIHlOIpZDSDb68Ex5WyAy4SjQGpCHy9+9fXl5eyMYbyIg0FxcX5EQLyFQuJGwhs7xwEyABC1nu++HDB05OTsiaNcjhVh8/fnz27Nn79+/vg8HXr18h10RCDIHUSZCNv5KSkmpqapqamtLS0hBfQCILckchJFj4+Pggix4hLTDIXAOk//rnz5+nT5/evn0bsjdJSkqKn58fcknUt2/fIMPXkMYpMzMzZMIeOWQgbEjyhQwzSElJQXrnT58+hbQnIDNMkKYeZC0eZDocUqFC+lJfv379/v07pIv//v17SFZ8+fIl5GphyAY5yNAIxC6IRyAtOWZmZsipmWJiYo8fP4ac5QlJ/5BiCxLUkGCBZBY4CVEAyUeQrAjxEUQLJKFCFMMNhMQgmmKIGkgvH1IP/f//H3IRxZcvXyDtM0iyhJCQ1AhJupA6Em4gxCiIwyBJF5JEIeIQh8FzAdwESETDDYeYBnEqRA3cX3ATIGogxkKiGGIsxCiIqyBJF9I/hjgJoh1iMqR9A2mJQnwNCUnI9goIG2IvMgnxFMQ0ZHFIpMPDGVkKYh1WKWRluNgQ7RCX41IzGMRxuRDifkiIwUOPig6G2AsPf0g4Q7iQcT7Iog3IlAp59sKdDWcgmwP3IEQQzkVjQNwJUYOfhGjErx4iC0n5kLwASf+QigmS/iHikHIAVA1DzIWQcBdAEjokI0FCDcJGNhquBZK7IH1ESDUGKcsgVTKkNwZp3kLMh+zshFyHADcQMpkKuWoJUkw/f/4c0u0TExODVAyQtj+k5wfZhAOJP0gr49+/f5AqGVKpQ6aUIGOMP378AG+k+iohISEuLi4kJPT169f379+DB8J/fPnyBeJHeIEOL8sg1RLEU3BBeBUI8RokPUEqKshhGpAEAQkxSNcKMlcN8T4mCVEPT6MMDAxv3759//49JHAgu6EgfoRUlpA9G5CTtCFLqSErpSHRD8lUkGr41atXUlJS7OzsEI3///+/e/fu4cOHL1++zMzMrKioaGlp+ffv36tXrz558oSZmVlaWlpOTk5LS0tJSYmfnx9yMDXEaxDvQ7wMqbEg91RCbnyC7EqCXLMhICAA2cIE2Vakra1taGgoICAAuZqQjY1NUFAQMskKmc399u0bRDtmyPz48YObmxvSrRcVFZWQkHj37t2jR49ERUUhR2JBtEDqA4irICke4lrIQrlv3759/Pjx+fPn3759g9zDCJmbEBISgnTE0VIypIkK2R7Gzc0tICAgLCzMx8cHGd6ARyuEAQlzePKGCEKiABKhEBJiBUQxmhqIFyAKIJkTwkZWDBnAgKS0////f//+/cuXL5Dpakjug5AQX0OqTLhREAYkhUO61BAbId6BkBAbIU6FyEJ0wStLSBaAmAxXBlED8SzEtZCIgJgA2dMIqWghKiGyEKfC2RDtEC1wEtKEgrTjIe17iAshUQMxDa6YcgbEcDLMQc65WD1ChpnDSQskVSD7CBJ3kJINkpwgAFIhIaskng2PBVxaIArgsYzJwKURLg5xNoQLMQ3CRiPh5QDECkhSh5RIEDakDoZ4GXIoE2gHF1w1GgOeXSHWQ0Lz////XFxckNIfUv9BUh6kJoDUE5ANrJDBUmZmZk5OTsiiZciaGsjN7ZDCEdJxgZSwkBv9vnz5wsTE9OrVK8hc3d+/f9+9e/flyxcDAwMpKSnIgh1IcQBZYgMxGWIOZMwZUsBBXAvJwxBDXrx4AVkerKCgALmbCLITBjLTxsHBAdlIAwkdSOsBUohAFlhBLIWXcZBJREhhBAkfSHBBwhDSw4AfowHZFIQ8PA7pt/379w8yowxZ8QvpkEEaEJDlY5CQhJRikDILwoZMxH78+JGbm5uPjw8ybABZZQZpmnz8+BHSSTpz5szHjx+lpKTevXvHz8//////r1+/bt++/dKlS6Kioq6ursrKypA2jaio6J8/fyQkJKSlpSEbzyChCvEXxG2QwPny5QtkBP7FixeQyyf4+fl5eHggzR1IqQ0Zzv3165c8GEA2gkPW+kImLCBzAXBPQVpXkNCDpChI2DIwMLCzs0P29UICTUZG5tu3bxcuXHj27JmcnBzEeZycnH/+/IGMGEOiBpIgIRkbstX48ePH7OzskDkOFhaWGzduvHz58tatW9zc3JA2DTyTQNIeZEUbZGReREREVlb22rVrHz58gCcwSIsNsqsbco8TJNWhkRAXQhq18BwLCUBIykH2NSTXICuDZGC4pZDLmJmZmb99+wZpRP7+/Zubmxsyegxv6kHaNJCaDNI4hqTJP3/+QDIFpOqFzFdBnAEpFiEpHE5CpCBugIQPxLXwYghStcMjC5kBCQeILkhagmQiSJsSYgJk0ALS8YWohKRwyIZsiMvh4pCkBQkcSIBA2BAS4n4IG05CRingvoAwIF6Aq4EwIK6FsLGSaDEIVwMpdtHcA/EdXA1VGBAXQkhIHsH0DlwW00asvoaYA1EMUQAhISJwWbixEAaaGggXktfgGuEMXOEGMRySWyFZ6du3b5BTbyGJClI4QFIOJJDhZiIzIM0yiMMgGiFxAbcXLgXRBRk0htgOJyEpDcKFq4cwIL5DloKYg4uEhAMk0UL0QlwFOZAAogsyhge5ix1SyyBWSkNUwEmIERASkrsgxkFCBNIqhzsOsgYKogySaSGrbf/9+/flyxfIWUjfvn37/fs3ZG/Jx48fId3Q79+/Q9boQrrCkDEoSMUA6XX9+vXrxo0bP3/+NDQ0FBYWFhQUhOyChdRqTExMkBU38MiA3PsL2eAEaS58+PDh2bNnkJlmCQkJbm5uSM0KKY8gFQxkzhXSsIAsNIN0ghkZGTk5OSHVD6RsgrAhGQASVpD4hpe2kMiDtEjgKQlSK0ACEDI+DEl5kEoXEsiQ1AMJQ0ZGRgkJCQEBAcjBUpDpQEiShQQRRBlkWB5SvUHKL4gzIKUPZKwYMiQAKcK+fPny+vXrt2/ffvv2zdXV1cDAQFBQ8O/fv1xcXJByWVhY+NOnT5AyHe47SJny8+dPyKGPDx8+hIxps7Cw8PLyvnnzBrKJSBQMuLm5ITMLkEF7yHg4ZCARUhNAljRDKgDIRjXIuidIMEICFhIgcAdAkhkk4UE2CktISDx48AByLjSka8jCwgI5fwMS/hC9EBKSFCHpB3LPxLNnzyBpDLKPDsKGWApxJKRigIQJZDU15OD0V69eQQZOIJEFISHJBmIXnISYBokIiPshJEQLpiPhGuFSkGBHVg8xE+JCyGAD/BorSBMbkpghWiDZB1KKQUQg7SSIayG2QKyAGAtJIZBEDiEhqRciC4kXTEcii0BUwhM5RAoiCCmV4HkHIgUJEEhKhtsFaTpAyjK4FMR3aG6AGwJhQCyCsOEksmPwa4drGZwMSHzR021YwxOrA+CRhVUWlyBkkgWSMiHpDTJgC1EP8S/EDRASIo6HhChD1oisGJLUkUVwseEq4QysKiEWYZWCCKIpgCR+SOUIqR0grX9I6BFbDUOMhpCQBA0pNyHZBtStZgEtuobUf/AaDjIZycrKClnCAxmx/PHjx4cPHyDXA/z8+RNeLkCKCcgoKGR0EdJ7e/To0cePHxkZGeXl5ZWUlPj4+CCRB+mzQo5SguzEgvgcsmjo48ePX79+/fjxI+S6OnZ2dgkJCSUlJcg18pBqABL9kCIAsiMTcroTZA8MZAUBpD6GBCKkqIJ4H1IrQOIeEriQUgNS/EHUQGQhZTrkGBPIMZCQk5YhHoEMJkNUQkyAsCELiSHmfAcDyGopSEcKUvVCqmHIsmpIbwBS7kCqN8jB1JD7EiDblyGXFjs5OTk4OBgbG0N6wPABZ8h6dUhvFa1mYmRk5OXl/fz587Fjx168ePHr16+vX79ycXE9efJEQkLi58+fHz9+hJw9CRko5ufnh/Tb4L6DVB7//v2D9FwhvWFIfEGadJDkCBGB+BoSy5DYgYQqAwMDKyuriIiIoqLigQMHXr58Cbnn8ffv35C135CBd0h0wI1iZ2fn4+PT0NCALC///v07pGKGzLBCUg4k5CEVA8ReSOMA0i3j4OAQFRWVkpJ68uTJp0+fIFEP9xHE5ZCsATcHzoUwIGYikxBxTBLibIg4XD3EYZBggbAh6yRev36trKwM6VNCkjRk3SkkeCHuhBsFl4KIQJI0JKwgUQCpLCF1HoSEJEWIejgb4kJkLoQNSXsQ50G0QEhIAxGS1+DGwss4iC5IzoIEKWRZFlwcogWeDCBmYpIQW+C2QxwJCRNMxUNLBOIXuNfo43hInELSMyQdQhyA7BgIG0LC1RPpPEiEQvIO5JQhSEUAWXsLMRNCQtxAvPloKuEpDc7A6kKILISEK0DjwsUhQYHMxWRDCmRInoXkLEiShrDhNTEkq0IP0Ec2BdnzkCCA2ApxE6TfCekoQPI5MhtSUELUQzLe////P378+Pbt29evX0NqU8gF5l+/foWXdJCAg0Q2pESAjBJA6vifP39++PDhwoULHz58+P37t6ysLOTYQsicK6TahvQCIVkRcurTkydPIJU9ZPBZSkpKWlpaSEgIsmAYEiKQlgS8Yw0ZNIOcVgEJJsjQLiQoIekGElDwgg8SPpDiA6IM4hdImMDZkFrz9+/f3759e/To0ePHjwUEBNTV1UVEROCxBfE+xBCIxyE9ZojhEBJSt0Eut+Dm5oYMbkDaQJCRBki4QRaTs7GxiYiIQPrE8ElEAQEBKysrCQmJT58+QRZdQ0YyIW0FyPJyiIGQ0RJIKmFiYoLcd/To0aOHDx9CTnFSU1NjZmbeuHHj16+gGXdnZ2cRERHICPDv37/howiQxABpmUEWUUPyHmSQGcKGRAEkBOAhjMyABAtkXxAvL6+kpKSIiMibN28ePXqkoKAA9wIkQUI0QgIfMoTAy8sLSRuQm5Tev38PH+eA9NohkQtJFZB8AtkCBGno/Pv3T0BAQExMDDJsAKnPIK6FtFcg49jwxAC3GuISiEpIOEAyF4SEyKKRkPSAJgjp1EIcBrEFcpAZZGADsj4fUntB4hFuCNwiiBsgqQhiDiSjQaZdIeEPr5IhoQEhIS5BNgciAiEhPoWEG7IHIbIQp0LUwGtTZGMhWiDugbAhmRqe6piYmCDFCKTwgRuLyYDYAnEJJFFBvAxxAxqJqX3QimCGPFyEKm6GhBtBoyDKIEGK7ABkNkFDMBVAoh4SxZBcDMlQ8BiE2AvJ/pja4SKQ5AFRDElIEDbEeRBZeBqA6yLIgPgXqzKIyVil0AQhaRJiO8QlEF9Dsh7Ep9DeMMTRyB5AMwvOhZc4EHdAqgpmZmbIWiqIBZBJXMgK1WfPnj1+/Pjt27c/f/6E3HQEGfOEDK5CDIE7EVKnQooDSAcIUrD+/v0bcn4CpBiVkZERFBSEnNEP0QtZEfb792/I+p2XL1/evn2blZVVVFRUTU1NSUlJSkoKUoZCvA23AlIwQUiIHyErmyDhBZmrg3gKkhTgKiFVOEQLpFaGTPFCQhIef5BCB2ICExPTx48fb968eenSJcgCXciZnfCuADzCIIuiIW6AVCSQoQJIBP369Qty5CTk/DKIMkgVBbEXsheLlZWVn58fMicBOVcZMh7+588fyOpoiKsgk8qQmXUWFhbIPQqQvb+QMhESCAwMDN+/f//48ePfv38FBASEhIQUFRUZGRlFRUWPHDny9u3bV69ewTcl8/LyQip+iIMhYQ7pfkFau5B6BWI+5KwuSEqAVJYQX8ADHBLFkGYBxDFcXFx6enrnz5+/ffu2gICAjIwM5JRHVlbQ/ge4eggDMkn/6NEjMTExBgaGd2Dw798/KSkpMTExyKZnyBAZRD0kBiHVMCS1Q5o4guAzUyGpFzKEAPEdpKqANO8g6QFiDsRHcBLCgGiBK8PKgCcDiCw8fuHTWpCI+/Xr1wcw4OXlhYyRwK2ATGxDnAHxDkQLJEjheRZSEEAqSEjzGlkZxHY0Em4FxFi4U+EMNPXwbAIZoYE4AFkNRCMkxiFNRkgrB+IFSJqBGwK3HdkE/GxMG/GrH5yycI/DGfRxJySW4XZBJlkgCRIuSB4DEuMQEpIgIckbku8ghT/EZDQ3QARxkWiK4U6FM3BphLgEkj0hgQwhcanHLw7XC0/e8DQMyZWQlgcLCwtkAA9fbxhuBMRKuNEQg9DSN/zYja9fv759+/bly5evX7/+9u3bixcvnj17Blke9fPnT8i5WpDSDZLnIYZDSEhpAimLIdUhZHQaQn748AFSl79//15CQkJISAi+9gcyDfzlyxfIOYtv3759+vSpkpKSjIyMurq6nJwcpA6GLAeDeATifkieh1SukMkJyAZTyPGQf//+5ePjg7gTUqEixxPczfCAgiRTSNccrgtSzEFWG/379+/Tp0+vXr16/PixqKiopqYmXBZiGiT9QeYj4SKQ4XHIHjBIoQ85QRNynxIkhUGiGXKfEmTjL+S2IsgmaciWD0jwMjMzf//+nYODA3L/IGRI+ePHj5ChIT4+PjY2NgEwQG4fcHBwsLKyKioqKisri4uL//z58/fv3y/AQFxc3MTExN3dXU9P7/fv358+fYL0pyHpBN7igQQgOzs7ZO8QpCkAuZKBjw909S8HBwekYQGJDoh6SIBDIgsSOBBxZWXle/fuPXny5Pnz5yIiIpB5BA4ODkj1D4kRuC5I3fnx40fIcDonJycXFxc3N7ewsDBk0TvEFggJacRAOpQQX0MW2fHx8cEPzoTIwisJSOBDtENIeHEASWzwTA5JFRCPwOMXFwNuCCTiIFyI1yBrLD99+vT69WvIkkNIDxKSnCA5CBJQkFiAJBvIGA/EDZCCAKIeOaAgDob4AqIX03kQ76C5B6IRQkK0QIyFkJAggmiByMINh5gGWbYJaZ1D0gzc/RAzIcrQTIAbBZGFOBuSIyAqISTcLrj6ocKA+B3iWjgbngYg4pSQ8PBBMwRuFzzoICJw9ZBAhghCWtVoJuDnQuILoh2SICHVMOScAIgsPDbhluIxE6IGbiBEL8TxyIK4TIB0FSAqkW3HpR6/OMQxEDVYIwviZUg9COpaQJRikhAHIYtDRCAkJFdDxsEg7ZefP3++f//+DRi8evXq5cuXHz9+hGxIhVyOBFlTCgkXSJEBMRziZ4ixkGYRpJCCVL2QRjSkhoBcWPvixYtv375B5gUFBQWFhYUh3bv3799//PgRsmZVQEBARUVFUVFRW1tbVlYWshAXMtwBKeIhlkLcD+lwQ/qyf//+hVz/ICgoCGmPQ5aAQabTIY6BFCuQaIOwIYEOMQdSdkDMh5CQAerfv38LCAhAdr8ICQnduXPnwYMHb9++5ebmhnRKICEA8TvkrgvIemm4gyHmMDAwQOoqyKI2yLGRkFD9/fs3ZCkvIyMjZBMRIyMjZBEcxCWQAVjIcDEXF9fr16+fPXsGuTUSsraZnZ0dcpgo5GgtyDFYEH99+fJFQkLC19cX0sx68OAB5BIOfX19AQEBSUlJfn5+yGT8v3//uLi4IL0riKcgORbS4rl9+zbkxlzIqnt2dvaPHz9C6hJhYWFxcXHIul94LoIU35DEAAkKSMhzcnIqKyt//fr16dOngoKCkKFpyG4xiIMhdSSkYcTAwACZroaMuouIiECWFEBCHlJpQayADPZ++vQJMq3IBQaQ1hsPDw9kXBqy0AEy/g9xJ8RGSHqGkBBHQmThJCS1QFIIXAFEPTIJUQYh4eKQfAsJQ4jeX79+ff78GX73MCTvQFpOEL3wEIDUapA6GJJUIKZBwhYSRxCLIGwICVcJkYIkcggbQsLLFzgDLg7RC+FC/Athw02GcCHKINEKX1wJcRvEIxBlEF2QNIzpDIgaSJhA2BBjISQu9XCVQ4UBCQR4WqK1s+HWoVkEycuQUIWQEAWQ0hXCJp6EmAAhITbCh6bR8hREDabJEF1wcbgySJqEyELcDFeDlQFRCUljcDZWlRBBSN6BsLGScJdAZCEz3/DiCNJwgQcadFAaohSZhHsDYhyyyyCZHGIQZD/uz58/7969C+kEQ6pDyOEMkK3ZkJCFDKVCRgiRq2FIxQPJRRCTIfNbkA4cZGMSpLMLKU1+/vz5/PlzSG9bRERET08PcroWqE3BwgK5Rl5QUNDAwIAHDCDLjCElKcSDkAFeiC2QOUtIbwNyrgjkhBDIoDHkLEb4OVaQehESAZD+EKSwRotmSLECqdchPoKEPisrKw8Pj6ioqLS09KNHj96/f//hwwdpaWlI2MINgUwM//r1C17rQ5wNKZj+/PnDwcHBxsYGOUwb3iGGnDsIWecMWZ8M0QVxIWThFdxASEf2xo0bd+/e/fnzJysrq6CgIKSV8Pz5c8hYMWSNGGT+GN4MghxnIS0tLSUl9ffvX3FxcUgNysTEBGkBQGpuyEgL3F+QKIYsUjtz5gxkhZqqqqqCggITE9O7d+8gq9khdxHCq2GI+yGhDQlSiAikeP3z54+CgsKrV69u3Ljx/PlzGRkZyOXKkAYmJDlB6leIXshWdchOHsgx2gwMDLy8vJD2CjzPQ7aef/nyBZLYIAvcII0SDg4Ofn5+SP8YEq3wcXKIdRDnQXIyvLiERytEFq4RwsUkIQogJMSnEDUQEYhpEOsgbdyPHz/Cr52ANI4hHVw4CdcOqZUhZkJMgzgSEk2QcIYohpOQxAPnQhiQAgHChpQSEDaEhJgGYUPsgpNwQTQGJMHD28SQdA6pjCEuhKhHMxkiCCcxXULQXrjeIcTAHwj08QhyAkBmk2Q7skZIXEMa7pDpIUjTDWuckmoLkSEGUQbJvHA2eUkI2WtwE+DDPJDMCxnN+vXrF8Q7OKthSC0LafJDMj/EcZCNK5CBTcjJw69evYIczPT58+cPHz5AJoAhXbevX79CpusgjoD0LyETn5CGALz4g5cLkPFMyBYXuL2QMVhIqQox+e/fv5D7z9nZ2Y2MjERERH79+gUeSQVdfgw5sRIy0wypbiExColjyKgjNzc3pGXAzs7++fNnFhaW9+/fv3r1CnLCIuTMYYirWFlZIYPhkAuVIetZkFfYIhfHkKIQUuVAVsH8////169fIiIiT58+/f//v7y8/Lt374SFhb99+3bv3j0VFRUuLi5Iy4CJienLly8vXrz48OGDkpKSqKgoZCU5Nzc3pDz6+fPny5cveXl5+fj4eHl5IR0IRkZGyAHRkIt7f/z48ffvX8iINGR4HNLogYQGJMVDusu3bt2CXND07t07VlZWdXV1yNquSZMmycrKpqamQiyFVOGQEhmy9griKj4+vpcvX0IcDwkoyBr1z58/Qw4pg1SxwsLCkNuWJCQkTp069fXrV01NTQ0NDQEBAUgr7ePHj+/evbt37x5EBLKwAHIYGQsLC2SDEyQkIYdtQVoekJRjamr65s2bhw8famhosLCwcHFxff36FZJQIYkHkswgh4RAQgMiDmmRQMbwIeEDOeEEcnnRz58/ubi4BAQEuLi4IE0QSA9YRkZGQkLi9evXkGmCz58/s7Ozc3FxffjwATKkhpyNIRkMkmghIQkhIT1aiDikiQDPq8gZGMKGGAjJjJCNBpBRJUjfF7LpAOIvSDsDMrECaThCjIXHOGRkHtJMgbgNQkIsgrRTIfEI1whpP0G4yIoh4nDFEH9BFEAGFeAj3hDDIVIQZfDYgRgL2a8IyS+QBZ7wIQpIuwFuCzwoIKahmYzGhRgOcSeyekxlEFmySUgCQ9MO8SOaIH4u3GEQvRASEmLIGuHKIJUWshTEy3CNaFKkcuEWoWlEMx/OhfS1IOkZElMQEmvzDs1fEEMgaQZSzkBEIGUsJAFgDWc0t0G4EJfDazuIUcg2QkTQSIguSBhCigi4CMRYNBJiPlwNnAG3COJ9SDEFaWjCpeAMSIsTVLihmQ7nQnp7ENMhdRjk+EB2dnZIVQFZNPv8+fNPnz5BVotATsWCFGqQLYyQKhPiYYhREBdAROB+RmbApZBjFFkBJFbg5J07d7i4uNTV1SE34UCKIUiVA2lSweeYIf0byOKa////Q069+PXrF6R/8+3bt8ePH7969UpYWFhMTAyyeAqyvgkeJpBOHisrK6Q/CnEqPKDgFTDEIkh6grgT0lWF+OL///88PDwSEhLPnj178+bN9+/f+fn5ITMikHsDb968+e7du3///kEO3YSUm5CRf0jU/vr1C7LPHRLI8DiGjDpC/AtpzUDKREhIwl0Cic2fP39C9i9pamrev3//5cuX9+7dU1VVZWNjMzIyUlVVlZSUhAxfQ07GgKzkgjTLIFkLsgTs79+/379/h6x+h4QA5KRrCFtaWhoSI79+/Xr37p2goKCNjQ0keP/9+/fhw4ePHz9Cmh2GhoaQKXxIBQMJK8hZnpBDJyCLyCA+gpTXkEYDZGDgxYsXyN1oiJchJGQoApIYkBMhJCMxMzNDpCDr2CEtBlZWVm5ubk5OTsj5KhCrIUHKx8cHOewFEoyQPhwkVUNISKqAuB+ecjAZEGUQEiILiSC4CCRdQbgQEu54iEoIF9IUg7QVIDkUMowEcQBEJcR8iAicjWYmsjjEZLgIHgbEELgC5DSPaQhcMSQZQ3RBigiI2yAtBniMQEyAkBDFkBCGk8iCkDQJUQwh4bJDiAEPoiHkZohT4WEOZ0DESSUhmRGzBUa8OZB8jRySEDaEREs8aDUuxPGQrA1RCRHBtB1THG4+RCOk8IG0uZETOTypQ0yADPfi7A1DnAJRCnEEpMR58eLFkydP7t69+/jx4+fPn799+xZylNIfGIBohCiGdHwhIhCjIDkQUsRAHAQhIeUFpMEOacNCvAH3GyR6IIohWQ5Cfv369c6dO5DeNjs7O6SC5OXlff/+PSQ/Q7odcI2QkgLiPEiv7vPnz5Bu/cOHDyFX54qLi3NyckKmmSGTiJAC4sePH9+/f4dUmYKCgpDghvsFknQg1Q+kbwRxAMTjkNuHIJO+XFxc0tLSkMEDSHMJclTh69evL168eObMmffv34uJiWloaMCrFojhkCoK0omHbICGRDBk4gHSB4LMbkI2E0NCD5LUICEPCYf///9LSEhoaGhwcHAICwu/evXq06dP9+/f5+XlVVVV5ebmFhcX5+Li+v79Ozs7O2S0H5IGILEA8RFkcvru3bvPnj2DnEEmJiYGOeIb0tSATGP//PkTMjjx5csXMTExERGRnz9/QjqdkO4d5JYFOTk5bvCBVpBmL6S3Cjl7BJISIH0+yEZkyAgHZACZiYnp/fv39+7dg1T5kJiCuBbChiQtiHbkGIGogRw8DmlMQC6cgMxxCAgIQJZ9QaZgIfvrIHdX8/DwwE/VhiwsgocwxExIIMNJuCAaAxI7EGUQR0JaDHBlcAWQRAtRCSHh6iFpEhLdkDEkSAqEG4KsHpJiIVKQSIRbAedCGBCVcDZECzIJl4KYACHhdiGrhLAhCiCJEJmElFPw5h2kKQlP7RBvQhwDMQeSPOCmwaUgOQ6uHuI8SLxANA5+EuIpuI+wOhjiL6xSAysIdxikvEWOYqw+gqtHA5DUC2m7QypUSAmJSz1EOyToIJZCrIOIQNhoaiBcSFqFk3BBSG0F0Q5PTnBZNAZEGbK9EAWQYhkyxgmZ94RUE5ACHLlcgqRb0JkbEJ2YJMR0SMn748cPyFzm+fPnnz59ClknBTn5GWIBJMgg3oaUkpAOHHxvKyQcIWbCixVMSyGxCBGHhAJEI0QE0tFEFuHg4Hj//j3kwsRv375BDp+CXNUA8TO85IV4BOJCyNYayPDyjx8/Xrx4ce3aNSYmJsgtfpycnJDNx5DztuD9e8jyYEjMgUYSWFggowqQLhrEa5D6A9JEgJcmkEXOkAXM7969+/v3L+TWRch6bEjfHbJi+enTpw8ePPjw4cOrV68+f/4MOdYY0iGGmAapHSHDNRAfQWqp////Q3pvkGNBkQMKUrgjByzkvk81NTXI8WdKSkqQxcZCQkKQGWLI6C5khTD8iDE2NjbkwcOPHz/evXv3xIkT8HmKN2/eQEzW0ND48uWLqqoqZNgZ0uKDxBqkwcTDwwO5KxfSdYMsNIPM0ENCG16Afv/+HVK7QMasINO6kAs5IKsCIevCnjx5AplyhqRGSFhBYgESL5B4hwy9wtMS5C4vyNI/yClvkPl7Pj4+FhYWyK3Db968gezF4uTkhF/RCHEqZKwYspkbUj1ATIb4FJJ6ISJYSYgfIYohiQqiDJ634VIQWTgXYjJEO2TtN2RjOiSdQMThauC64IZDFEC4cDbEUrhieGEEF4GoRyMhuiAk3JFwqyGK4bKQKIAkV0jZCh/IgRRMkDoYEtEQByDbDolHSDhDzISIQIyF5AWIjRCXQMThIkQykG1E1gKxEVmEumy4+ZgMiEXIDkNmQ2QHnMR0EiRpQeILIgv3Gh7XwqthSAqBRCIxGiGJAUJCdEFsgeiFkMjiECdhJhWIsyEkxASsJMRASGKGWAohIVZA2JAmJsQjkPQMKZfQpl1Aw2xY7YA4DpJJIOn7+/fvd+/evXnz5r179968efP582fIhCikW4ncf4UYCDnyCVJoQvIYsvsglQTErXD/QDRC5jwgYQTJzxAHQDp8EIdBZCHaIRXD58+fnz17BtmIwsTE9ObNG1lZWYhiiM8hlTFk4yw7Oztkbhxybw87O7uwsDA3N7eUlJSGhoaIiAjc4xA3QyYjISZAatkvX768fPkSMkELOSMXMu0N6ThCUhIk3CEmQLz29evXly9fvnnzBtICEhUVRR74hZSkkD4uAwPD/fv337x5Iy0tDVntDLkjgZmZmYeHB2ImZPAZHnoQ6yAruiFj4JD5S0jtCwkreOsHcpgX5OYGyD5gyOwp5IwOSN0MOWqKmZn58+fPkPIdMs0PaRmwsrK+fPnyzJkzkMH8Dx8+fPv2DbINDtIYkpaWzsvLk5SUFBIS+vfv3/v37yFnmnJyckLGSCDtM8g2Ysi+c4hTIZEOyb3wszzhKxogB89C5r8/fvz46tUryGVc79+/f/36NR8fH2T/LiSFQFIOpE3KxsYGaR1Chrj//v0LyR6QQZxfv379+/cPsiALcrfS169fP3/+/O7du1evXr19+5aBgUFSUpKHh4eLi4uXlxeyXAASqv/+/YM03iGxDIkdOBviEjgXzoDkc4gsxMtwKawmQFRCohtZPWSbAGRcAaIRMqQEmbCAmAnRC2FD1MDZEAayArgVECmCJEQ9JK9Bcjqy8yCyEBJiFCTQIOUXJAogupDrYIh74ObAtUB0wc1B9gtEDcQoSHEE1w5RPyRIeEDBGWjOhocMmvgg4UKcB0kMkBIJEi/IzsPlNQiAxCAkMUD6lJBEgksXRBxiC5yEGAVPHhA1EEEIG5L74O6ESEFIiAIICTcBIoVMwgsoiCPhVsM1QgyHFEEQQUi9AKmDIW1NiCyoGoaoQLYAwobUshDT//379+3btydPnly+fBlSPEGyPaSbBenqwQMLYiAkD0AUQGpWuFEQ90FsgfsTogtSPUMUwE2ARy1EMUQcwobENKTT8/79+5cvXyorK0POFv7w4QPESZDaCFJZQtwDuYzv27dv7969Y2NjU1JSkpWVhZw5JSQkBOmbQlYcQDo6kG0wEGdAqqJXr149evRIWlpaRkYGcv8PpCyGewrZyxBByCqzr1+/vnnzBtKvkpaWhqyKgnSpITO1qqqqb9684ePj+/jxI2QLLBMT048fPyC6BARAC9Age6Dh51TDay9Ip5yLi4uNje379++QtdaQYIe4AeIFSABCRnch4pBjuSDO4OLiev/+PeT+BsihKPAEB9EOOScEkjy+ffsmJyf34cOHx48fP3r0CFL8Qbqn4uLiv379ev/+PSTkGRgYuLi4Pn36BJnQ/fbtG3xTEOQaR0iTCNLWgZS2kCQBOWwLsngbYjJkbfOnT58glx5Cxoe/f//+8OFDcXFxSDUMbx1Cgh3ew4a0ySCJB5I8IO0AyGQzpKp+/fo1ZD/uhw8f3r17B7lWErKnWVRUlI2NjZ+fn4uLC76aGhKG8IwNSZMQx0NSMkQBGgmJNbgyOANuDsSRkDCHCEKiEiICMQ3SsPj06RNkXSSktQQJMUgKhCuD5BEIF+IqNBvhzoabD1EA58L1whkQ90C4kAIFkrSQ2RA1EKMgKiG2Q3wHsRRePEFiHyIFJyEMeGGHZgjceRCjIIrhauDtTrgIQQbcQDSV8NE+NHFqcZGDCM6GMyCuggQvtWykhTlwB0NiGRL+EEEISYylkFFMSFTC4x1zHAtiFCSBQRRjWgHJOBASoh4SkhA2RBecjcyFG4Ur3uGlIrywgrsEEk0QEm44hAupfSEkJJtAFOCcG4aEI2TYDdK7+vLlC6TTAxlthlRRkIoTkgcgPoQUDRBXQuyAuw9S8EEcBPEe3LeQYgJiAsRMuF6ISkgYwS2CmAm5pAhSuf748eP169dfvnwRFBTk5+eHHH0MGUaGT+CB2h0sLN+/f4eUre/fv+fg4BAXFxcQEFBWVoYPQUNshKxwhnToIYPAf/78YWdn//79O2QxF2R6GFL2QcZaIS6HjFdDQhmeAv7+/Qs5mgrSaxQUFBQREZGSkoKcjA2p20RERAwMDDg5OSG7riH9csjR0JBaE+IRSM8b0o2D1J0Q7RASMtANGWKFBy8kNiEtTUhVBLmjELKoBzKSzM7O/vv37zdv3rx8+RJSlP/794+fnx+yyQfS/oAsBYJ4SlBQUFtb+/Tp04yMjJCbgF+8eMHBwaGpqWlpaRkZGamurg6ZbWVmZoa0jSCz2pDVxZDDuiGNCciKM0jsw0lIOoGspIWU1D9+/Hj69Om7d+8YGRkhawOZmZnfvXsHWVx97949LS0tSIqF3AMIWWEHGUCGzJ6CtwFzQYY0IPkHslgaktsZGBh+/PjxCgwgZ69C1l1DBvzBJ1Z9gFTDkDstIKenQfRCnA0JcAgJSbGQhA1JzMgkvBqGJzaILLI58FiDBDjEwRCNEMMhLeDPYAAJQ0hNBh86gpgJaR5BwhMugmYRxECIIBobrgUXA2IyxGp4skdTDJksgKiE52IIF1IqQUiI1RC9EF9DRCCBDA9YiDsh2iGhBJeCMCBWQPIjxLShQkLcD/E1VjdD/A5XhlUN/QXh7oEzIG5AS65wWTgDDUDEIbkGMsgEH7hCUwnhomUfSGKASEGMgqQiSKBBxOFhC1EA4UIUQEQgJEQxckUGEYGQEDWQaggiArEakibhuQBiLDwdQsQhNsJzBKhWghuBxoCnY0i1CmmMQMpuSIaBFwqQ4+8hmRAiBekqQRwK0QixGOJoiEMhshCnQ1wJEYc4DuIYiBWQHAiJGIg5EFkIGzK8DNneChmgg2w/FRcX//Lly7t37yB9O8hgJmSyE3LGNaQCg9zD+P37d8iVA5A+BKS2g7gQ4heILyCL0X78+PHy5UvIyCpkOhaykhbeyICMOUOqGYgHIUmBk5OTg4MDEq+QahgyBA255+f////c3NyKiop8fHyQWWF5eXnIgKqAgABkDRHkyEZ2dnZInxJS70JaIZAky8LCAjm3EjKuDg8oZAYknCE+gjgSEtcvX768cuUKZMuWhIQExArIJqjv379LS0tDOo6QxcN///4VEhIyNDT8+/cv5KA0yNGhmpqasrKyKioqzMzM79+/hwQF5MKPb9++8fHxQapGyNHTkOofErMQ90MWUkEaChB3QkTY2dkhzZ1Xr17du3fvz58/r1+//vHjh5CQ0OfPnyF7eF6+fAk5hARyS8eHDx8g4wGQXWqQjeCQRg9k4xNkDAASd5Dt7/DJYPAhNG8gXUyI1QwMDJ8+ffrw4YOkpCQ3NzfkfBJIWoWkUohrIWkSEtqQ9ANhY5KQ/AkJeYhKCAkJDYg5EDXIJkNyEMQ0CBuSMCAXMkLSJCSrQ0yDqIQkQogIxEyI+RBxuBo4A+IqOBcrA2IaRAriQkisIYtA2Jgk3A0QjfDWIUQcEp6Q4huScSA+hYhD3AzXCGFA2l5wiyBug5BwwaHFwHQ83KeQEMBUMOAeRHMShAuJU0y3QWSxikN8ipwqIIkBUzGkfQkJEExZiNXwxAyxEZKiICQ8F0Ck4FysDEzz4bqQHQBp4sO9ANcFEYFwIYUzxHmQySPoYZaQhA4xDiIN2VrKwcEBKdo4ODgg5x1CzhaGhAukAQ45kQNSXEJcBlkbBrEYUrFBwgJS80GcAqmNIEUGnIRIQRwDJyGVNNwciBrI0kpI3Q8p2SFrm+/du3f//n0FBQVeXl5paen3799DRtHv37//9OnTN2/eQCIAUn3y8/OLiIhAdgNDBt4h47rwyglSoPPw8Hz//h1y//y7d+/u37/Pw8MDOToKMj7MyMjIzc0NuQ8KUlPCKwDITACk0wlZLC0rKwupgyUkJCDlOKRDBqmHGBkZhYWFIfOpcGd8+/YNMl767ds3SIkDaRywsbG9f/9eXl7+LXi9OhsbG2TOXk5O7tmzZ5DriiGj5ZCqGnI+yf////n4+FhZWSHHnDEwMHBzc3/79u3s2bOXL1/+9euXtLT0kydPhISEHj169OXLF2ZmZklJSV5eXsgdkZB+P8QoPj4+R0dHeIwgMyDVCWR5F2RmF7JcC+J+yCJquHpIlQ9JfpCsBUmEkOTEysr67ds3dnZ2ISEhFhaWDx8+8PDwiIiIqKqq8vDw/Pnz59WrV6dPn/7////Lly8lJSUhCYaJiQlyMTPkuC7IUmd4Bvvy5cvnz59//foFCQTImnnICDak/w3fdgVxJETq8+fPkIO0BAQEICsMIO6EJH6ISjQScpclXBAyUsLCwiIkJPTz589v375BLIIkS0jvFqIYYjKkboMMBiCvG4eEEmQk/9OnT+/evfvx4wf81meIaRAS4mVISEIWxMHNh1gB4UJ6FZA8C4k7iDhkPB/uDLgWiErI+CGyLKRkgDRJISZA2BCNEFsgmRfSRIPka4h3IKUE3JGQEgDSCocYAvELZOIQogWSgyDlAMQK5NoaciUJ3KkQd0KUQdyGScJdiClFTxF43CHHBSQSISStHQO3F2IdhITnUEzbIXGHLA4JZ0jgQyIOTkIKBIiZkFiGS0HshUQ3JCVAVmjCRyUhOQiyAALSl4CHFZrtcEMg9QskYUBcBZGCqIfU95A6C5LYIA6DuBySwOAqIdohroWwISREAeTEYogsxBAIiSwCCUOI4ZBwAPWGIeogJEQ1xERIsELqbUhhysPDAwkRiAKIcRAtyG6FGwVXhsyAGAvJhxATIA6CBCWEhKiHiKOZBlEAEYSTkDoJouvbt29v3ryBHEgJuXpPQEAAMn4OmfSF1IVsbGyQqpSXlxdyFAkHBwckDiC9f3gmZ2NjgyzDhs/Rfv/+HbKeC1KZQZIRJF4hVkAaRBCfQkLsx48fnJycjIyMCgoK0tLSkNOMIRcnQ5yNGRSQmhuypgyylPfjx4+fPn0SFhaGFPqQmvX9+/eQyWBIvxnS22NiYuLn54dMvkI6kRDzIQUfJMogKRjSR4SseX727BkLC8uPHz84ODj4+Pj+/v17/Pjx9evXMzExGRsb19TUICc4iK8hUQD3AjIDogBZBMJGFocUi5BMglxdwVMdZNIBEr+Q3cmQ86slJSXl5eX5+PggmfbTp0+ioqI3b968e/eumJgYZOMWZF8ZJJC/gQFkxhcyRv3jxw9I5x7SLICs24JYBKmSIckP4mVI7QjZaA5ZrwcZxoD4CKIGwsYkIeZAwhxCQooDiI3IoQHRCzENHrAQBcgkRAEkQiEOhsyeQJwNEYEYBSchWiAkXBBiBZogRBaSdCFsSOzAfQFXDxGBcyGK4SQkn8L9CzcQrh6uHa4SLgXRBSEh2QruVEiah0hBTIDU+pClABAReFhBpODmQ3I0vIkGMRPu4MHAgDsJzhgMrqKRGyCxA/cpJIVAuJAYhKRwSB0JaYZC+kiQ2Ie4ChLjEDYaiSYFMRNOYqYrSLcQIo5sFKSEgTgGTiIzkBXD0xhEEOIdCBuSvCEiEBJZHLRhCSIKISGpFpLcIS6AOJ2Dg0NISAgyQwkRgfsTwoUrRjYdHmRwY+Ei8FYwRD3EdohRyJ6EGAtRA9ELUQNRD/E2pGcGichPnz49evTo5cuXAgICEFlIx0tKSoqTk1NERASyyfjv37/s7OyQagky1Q2pliBWw73GwMDw9etXyO4mfn5+yPFbHBwckGsTIYdbQTI2JP4gPVpIUQjZ8gS5H4mJien79+9///6F3EUB2ZAKGaqF2wWJJzgJqaIgHocMPEJWDPHy8kImayEVzOfPn58/f66goAAJBMjIxO/fv0VFRT9+/AhxFSSs4K1IiCDEZEhfmYuLC7Lv6+rVq/z8/OfOnfv16xc3N/fbt29//PgBufEe0raAhw+kLoGEOcQoNBK5VwHxFEQBZB82pMUDaTpAZCHHqkAKfUhEQ9pDkEVeX758gWxC4wMDOTk5dnZ2yEgyxEkKCgqfP3++f//+jx8/IM0jRkZGyCFuf//+/fHjx8ePHz9//gw5+hGyLpqNjQ2yyxziALiDITdeQLpckGF/iHsgW4N+/PjBysoKOWQNErDIaRviR2QSHr8QQyBpErJIEJLwIOkZ4guIYoixEPUQV0FEIGyI4RA3Q1IaZKc4ZFUEJAVCZJFjByICcSqyCRCTkUUgbIg4pBCEuApCQmQhbDQSIgXRCPEOJJYhHoQ7Bk0XhAvRi0xCeieQZAYxDaISQkJMgwxRQBZJQJrayONtkACEbJaDBB08dSFbNEjY8HCDMCDkIHEbLZwBKdgh8QtPIZAog1sHSX6QUhqyZhbSQIcHDiQxwNWjMeCpHaIeUu7BSQgDkrTg9kJUQjILxDSIO+HKIILICiAicBKS0iBcZGVwNsQKCAlRBu0NQ4QgJFwCUklArIecLCgoKAg5rRASdsgDQfD0jWwI3GI4A244pOqCKEaOA4gCiHpIEENIiDhcPTwEISPAkBoIMtH49evXJ0+ePH78WFNTE3JUFqQnysbGBrl+gJWV9cOHD5Dbn96/fw/p/EFGPCB2odkOuXyNl5dXUFDwz58/YmJif//+lZCQgBxzCLlwENKjgnTxIbXj79+/v4ABExOTsLAw5HZ6SMkOqc8gk7iQugQSyJACGuJHyJALxD2QliCkYfT79++vX79CLraDlESQO4UgB01DBreZmJi+ffsGWVMNKZUgsQMxGZKqIDEIOZrj06dPvLy86urqkNsmrl+/DtmWw8nJqaCgICQkZGJi4uvri9wsgKRaiIGQ4IJEEFYSrgDCgMQdJINBoh7SDoV4H7IcA1I9Q5bFvXnzhoODA7LUDpIVmZmZv379+urVK0jLBpLu2dnZ5eTkPoIB5DpqBgaG169fc3FxQRZevQeDN2/efPr0CTKWy8fHB0khkBiBOAzS8YWMxEKmbSDNdkiF9/Pnz8+fP0NON4MMb0BshwQFLu9DPA4PNEjgQ+ak4RUVJK7hwQJ3DCRYICag2QJRDLEUcgeluLg4ZPEBpO6BSMFJuCHw4gmS8CDGIsvCtUDSGMTlcEGIdkgzGpK04FIQoyBciDchtSkkv0Osg2iB+BeiEmI1hA1JEhC9cDZEMUQjJDrgUpAj3iBnsEAW9kNiE64YbiwkJCHpHyI4CElIAELIQeg8KjoJEhEQn0KiG5I8IDELYUNKVIgayP5GSHKCiEDUQBIPXATOgKRSCBdCwvMahAHJYhAfQQyBGAgXgac6iAiyLFwEkwEpzSB64dkHTS/EPRASYgKoN4yczSA6IeECcRy8MILs04BkP0gvChKUkHoCYgjEaIgjIBZADIGQyK6BlF9wXRCNkH23cGXI5kDUQyIJQkL0wsMUkvH+/v0L2T8D2fYDqfkgPTCIaUpKSh8+fODi4nr16hWkjwXxC2TwFuJ9iMsh5kOGeSGnVUMSAeSWdcjYJvL4MCReITdJQJatPX78+PXr15A7j+Xk5AQEBCALwSC6/v//D7nOCOJySAjAB14groVIsbGxQRZesbKyQm6egLQ8mJiYxMXF379///v3b0izAFLWQCYRWFlZv379CllMBCm8IH07iMmQmpudnR0ydy4kJGRjY6OkpHT9+vVPnz79+PFDWVlZRkZGTk6OmZkZUmFDAgSiHRIF8GiFhxicgSYF50K2ukGW8sENhEQiZGUc5PRmyHZwSOMXMtwKUQMJ3tevX0NKW15eXkhnl5WVFbLQ/cOHDxISEtzc3Ly8vPD4/fHjx+fPn79+/QpZqQdJS/BhYUglAan7IS0qCBueGCBNEMjY76dPnyAXPHCDz/yCdKwhcQf3OyYDUihASEjQQYbEIS6Bq4eHLVwEYjLcJZBghJiAXA1/+/bt48ePkOULkGEPuBa4URAGxA0QNpyEGwuXhTAgJMQNELdBLIWQDAygvSUQcbhREMWQYIQsI4AogyiAKIaQEBFMEpKP4CEDUQyxEcKGpARI2oAc7Prjxw9IrwASlRA2JO/A3YNp0SAUgQQ4hByEzqOikyBJDp42IAUUcmRB4hqyGQGynxAS45BBMvg0KEQLMolWqsDdDE82kOwDISEOgGQWiI3IJCQ5wU2AMNDsgghSSIKWaEEcATEdEjoQp0AcCinxGRgYIAuLODg4IDe6IFsMD0S4IRBzIPvGICohIhBvQ2oLiDiEhMhCMhtEBELCcyNkPygkiCFSELsgVkOKdciU/u/fvx8/fvzu3TtpaWnI+CREDaR4glz2x8HBISAgAF9HDZkwhsQT5GgtSO/n79+/z549g9w1BFEDmRSELJWC5BZI8wdScEO6WRA25IynBw8eQM5Mfv36tby8vIyMDAcHB6STCrkhB3IcB6RxA/EXZNkLvCiBtBLgS70gFQlk8dHfv38FBQUhhR1kUBeiDDLPzcnJ+ezZM15eXkhShsQmJNAgQ+WQu5V4eXn//Pnz7ds3Hh4eU1NTWVlZyJXDDAwMkFYCpCkD6XDAK3K4UyEMTBISoRDrkK2GVJ+QOW9IvQsZm4WcyAFZhQRp7kASIWRhNiSJQtookBFdyAYqSKTAW42QQ7DZ2NggnoKM1n7//h2SYiFegCShf//+Qc4qgZyVDYkySGKDsCGTFBA3QAp0iGu/fv0KWX8HGTOAVMOQ9ihmIEDsggQFJLXA1UCSDZwLCShkNZBAgyiAiEPMgYhAAgTChsQU5BgTSO0OSTyQvAZpQ8BVYloEMRzNQDgXEiYQj0CMgmRSuJfhroJogZgPOegUEjiQvAl3AIQBUQYpHyAaIVZA8iCkJkYOfEgUwH0EiXHIlDAktUBSPuT4GkhugmiHhDPEkXBDIG4YVCTEhXAnQSIFzh1+DHgCgHsc4mVIzEIiGkJCUhokO0DyJiR5wE2ApBwIiSYISb0QK+C6IGoghkMSCUQBJGEji8BTJsRwSCzA3QnhopEQ10IEIcZC2BBLIb6AiCDLgvYNQ8yFi0IYkBF5yP3zkMJXSEhISkqKm5sb0iGDKIO0SiDlI7JbITZBvAonkRkQjRARZJ/De6UQF0PCDl5tQyyF64KsTIOc+gTZlwIZNn/x4gXknGTINCrELnZ2dm5u7t+/f7OwsPDx8XFycgoICHz48OHt27dfvnyB3Evx48cPSAkCOa/4x48fjx494uHhgZ/PBWmXQTaqQsIN3j6A9AAgWzYhe6V+/frFxcUFaRZAxjO/ffsmJSXFw8MDmemEbACDBDUkxCBDC5ApXnh4QipmSEHz48ePT58+QcYeIePJkIYFZBwV0mCErE4SFha+d+/e58+fITcFQUZ4IKkEUg1DriKGdPf//Pnz5cuX////Q+6q+vz5M2QtEsSFHz9+hCzagjgSORYgIpgkJPogXoBHIqTYhZzFAenHQGbQITUcRDEkMUDKbki5CRk8gE8EQpoFkMD/9esXRA3k1kJNTc3fv39Dlt1BDsOCLICH3MkBKeIhDoOU4L9//4aEFSTcIFZD2JA0BnESJDdCxCEzx0xMTJDGGSSgIIkWMxDg2iFSkHCDkBAz4TbCFUCcB8m0EEFkEuJruBo4F7IVHnJmC+Q4NkiigtgF8QukMYosAnEe3HyIpXAFEFkIF9m1kDoeIg4xGc0ESEkKmc2BlIOQehGuDGIyxBeQEIBIQUQg0QQxGZId4HZBFED6KJBEBWliQoaLICkZsigSIgshIeohFsGNgtg4eEi4wyBxOngcRiOXQBIG3HCI9+F+hyRFiCwk4iApAbJwFdJHgqiBRzEkbUBIiEa4FKTQg0hBLIIkCQgJMR9OQhRDkihcMcRAiCCcjZUB146mGOJaCAlJ28iG47YoAp8AAQAASURBVOwNQ2o1SFsSUstCdolAVrVA1rVCCiaIfZCcBsmuyO6DWAYhIdbDZSGFMrwNAvEApLCAhCAk4CBsiCwksCDmQMyEjFJCigZIN4WJienjx48PHz5UUlKC1ECQ+VrI6Y+Qg5Hhhznw8/ND7hz88uUL5MY9yIkTX758efv2LWTFNXyYFFJ/cHNzQxZXQ2bgIBuXIUdqQA6jYGRkhJyDCDkB8efPn5AzEb98+QLZW8LLywspx4WEhISFhSGpAeJBSJcdMhEACViI9+E1MWRbFKT6gSwfg7QMICEPcQxkG4+IiAgPD8/Xr18hkQWp2OAJHTIozcbG9vXrV0ZGRl5eXh4eHojLIWd0QIozSKtFQEAAkm0gyQg5FiAi8DiFMyBxByEhBStE5fv37yG3R0M6wRBngxYpsEBbhBATIEkLMroAGWOHrOKGjw1A4hrSXoFcjgTxBRcXF2SDGaRmglTeEBISnhAnwcMcMhsNcSEkq0NGveC9dogLIakU3tKClPuQpXaQ9g2k9wxxPDIJsQ6SViHpFkJCQgMeknAtEHE4F64AbgKyLyCGQxqOkLXfkAn1P3/+wFsnEDUQXXBj4VxkYyGyEP9C2HAS4gxIIEBCCVMjXDGk0Qxp6EAsgngKYghcBJKwIckeohfiVHhcQNTDPQJJgZCyCCIFCUlI8xTSD4YU0xBzIL1kiHaIenhvHuIeiKWDhISHJ9bwHySOpKIz4FEA8TiEhJgPL6MgXAgJiTsICVEMMQGSKiAxDifhaQwSmBCVEFmIXjiJbCAkeUOk4CZAbMck4crQpCDpGW4XxGqIaXCVkNSIbAKoGoZ4GyIK0QYpBCHLiCCrkNjY2H79+qWlpXX+/PmHDx9CZlt///4N2aoIaf9CxoQheQPiJUidCrEe4jJI3oMU9JD8DNELsRfSq4DkQ4hKSPUDKTTh5kB8BdEC6Soh53mIyJUrVxwdHSEjw8LCwpCyFXLtAWSyE1KkMjIy8vHx8fPzQ8495uXlffv27bNnz96/f8/GxiYlJQXZ9cTHx/f161dIv/Pnz58Ql0CqKEjTDDI6Cmm7PH/+/OnTp5BlupAwFBAQ+PTp0+fPnx88ePD27VvIjCwPD4+qqirkFGsRERHIXQLfv3//9OkTpH8POfIJsj8VsnTo9+/f7Ozsr169EgGDH2DAxsYGGaH9+fOnsLDw27dvIbc3/v//X01NbcOGDfLy8pAVXpBDTiC1GqRm+v37Nwd4a/i3b98gcQpZCgHxIKSrAZnnhhRwkBIfIgsxE9JigEcuJNbgqR/S9IGMNECmeCHDzpBGG2RIANIfhSy/gpgDiV+ILZCBB8hCbn5+fshoNqQshuy6g7Q8IAZCdnZBOqxfvnxRVFS8f/8+ZKsxxBxIfQ+JMojtkIuZIckMkoWYmZkhbTU2MIDMX/Dx8f379w8Sp5AVDPz8/Dw8PJDYgTR04A5GZkAyF6Q5i5z9IFkDElxwNRBlEO3woIA0MSF6ITUcRApSAEEGEnh4eCAnoPHx8QkKCkLCBFI/QfI1xExIpCPnUIg4JFQhNRbEYfAogNgLKa0gkynwwgGSTyE5He4FyJoJSCxDRtHg0/ZoZkIyO6SJDDETEhqQzA5pBUIyKSReIBZBcj0kXUGSASRlQjZxQNIkRA3ESRA3Q3wBIeFeHlQMiJvhQQTnQqIPHjJwN0PCBBKVcBKuHa6MbgyIOzGtg3sEIgVXBhmtgTsYrgyeEyGJHOI1yEZQyHQhpGyBTMT8/PkTsmwFEj4QLXArIIkWEukQKbheiCAkwUOsgGQ9iDlwV0GkIC4nkoTkSrgJcH/B4wvuEoiBENeCuiAQyyAaIGkXki0hKiCeh3SCmZiYpKSkBAUFIZthIGUfxFyIYrj1EDsgZkIEIcogdkFyFNxlcEGIvRD1yIIQ9RBxiDkQk+HBilyXQ6rhFy9e3Lp1S0hISEREBBIfkNYxRDsksOCBDnG8oKAgDw8PfDcq5PI+yCkQkCLj79+/EKMgsQi5tRDiEogIExMT5PrCT58+ffv2jZmZmYODA7KvF3KF0cePHyFrOyGnSbx58+bevXv///+HXKv3+fPnx48ff/r0iZGRUVpaGqKXg4MD0jODNAg+fPjw////jx8/CgkJQZZMQ+p+yAkYb9++hUwGQ9olkBsG7969q6Ki8vXrV0i/GTJFCpllgXgc4nhI1EMGtyGBDyEhshA2POFCuPC6DRLdcEHI1RHwShFSAUNCHtJ/hWQ2SBUOGSGHBCPcHDiDiYkJ0hyBNKEgUwCCgoKQA7chCQBCwrXA+4KQI9IgtkDiGlJ8Q1IIpDUGOVsUUtVB4hey4JabmxuyUwtyugtkRTrkam3IBnrIrZqQqIEEHdwByAyIvyDhjCyOlY1HGZoUxFhIPQQJdkgWQMsjkDCH6IWwke2FhBuEhHgBQkIMh6uEJABIyockADRlcPMhLoG4ATJIAAkfiBUQWYhpEDXwWhMSOxB7IQogJEQL3CUQP0IGpSBLIiBNf8hBNxBlyN6EOAwiPnRJSLAgux/TX/AQRlY2pNkQP0L8DikuIKkOsqsFng5//foFUQlJMBA2xOPIInBxeKUDEYGEG4SE6KIKCXE2slGQGgcuArEdzgX1huFZApkB8SckL0Has5AUr6KicunSpY8fP0LKLIh9kG4TcgaAsyFhB+FCfAsJHUgrFeIOiJsgJKRVAlEDJyHOgBgCybGQbgHEwZDMCRGH+/bDhw+XL19WU1MTFhaGHEIJIeE5FuIYeKz8/fsXcnw/5CoCPj4+yKnCkC4vZDkupCSCFNmQM6og4+qQShrcNf3x5MkTyFH7kPQBKfEh52sKCgqysrJ++vQJUsH//fv38+fPkGlpyM5gyFWSEMWQPcqQagOyjAjSFoFUui9fvpSSkoJcRAGpgCGdmCdPnmhra0PKKWZmZi4uLjk5uTNnzjg7O0NmzSEtJ0iLBB5W8MIO0n2BRApEEB4FkNuXIYIQBRDtkJ4lxEbIdCBkmPfLly8QQYhdkIwECSjIEeVMTEyQo1EgPXLkXjjEfAj5+/fvDx8+QEbOwb1T0KgMpLeH7BiIYkgS+v37N2Q3ET8/P6TahkwWQJYIQFIOPFlCRjjY2Ngg0crCwgI5c1RERERMTExcXByyURuyDQwSX5BeOBcXFzc3N+SKRkinDeIGXCTEbRBZSNqDsCEkXBYS4JCEDQlhiAhECyQLQEiI9+H5CNKugucCSKaAqIR4HJJCILogpkFsgQQFxAGQ7AxRDxGBOA8yVwK3C6IRIgVnw+2C95IhDRpITQwxDeIXiEaIvRAHQxIJJDdB0jlcJUQjJNYgzb7fv39DFn9BkhCkYQfJyBDTIL6AmADRjsyGOBgiDnHJ0CLRXI4WlUPLL8S4FuJfyKgJRD1kTA5S7kEOdYCUzJBYhqiBsCEkRASS8iHpBC4CSQzIXEiyhFgKSdIQWYgIhI2fhCQ/NJMhFQHEDRDtEAMhikHVMNaIhJQvEHdAXAbJirKyshISErdu3YL0OSAjSJBqEpIHIGUH3BHwzA9xAaR2hw9HQxwBcRAkyNBIiIuRSYiTIFkd7nK4AohTIe65f//+q1evZGRkIBOxkMsV/v2D7hZH1gIZq4T3biH3HjIwMHz+/BkyGgypDiHTq5Dy+uvXrxAupHX27du3169fv3379s2bNxBPQUZd4PU3+NgJPsgwJqRG/PXr16dPn0RERCB9Akj/WFhYWBAM3r59CwkKeAhDGhAQEnK5kLi4OGTKAHL+4r9//969e/fmzRvIwWGQq5+UlZX3799/69YtAwMDSNEMqQshsQmJHUinCjIwCB+4hoQzPIThRTNcHBKSkG0/kJIRMhoMmfSFtNIgEQ2JdEgsQ1pskDCEnNAJuc0Qnmzg8QJhfPnyBXJS2MePH+Xl5SEDDN+/f0eutiEmQ9RDfAGxV0BAABJ9EI8jNwUgZT1kphk+6g45PpqdnZ2Tk1MCDMTExCCRxcjICFni9+PHD8gcP7zRBknqkEiHuAGNhDsPzoBrgQQmsnpIpMOTMdxYSDaGmwBxP6T0gWiHt4EgnoWoh8caJKLhpsHNh+hF48IF4XkWEl+QeIQYAo8vSIBDPAJhwzebwedr4Z6CGAgxH5K0II02SFqC+A7iKYgWiEpIHQzxF2QHOWTMBmI+3G0Qh0FcAtEOIeGGDEUGxFNoLofHFyTEICEJSVRoKocoF+JBiO8g/oIkeEiTDtLqhaRt+JoMSLxDkihmvMNFIBkBEiyQsIWQEBGIXRA2RBwtbOFOgqjBJCG6MM2BuBaiHUJCTIaoBw1KQ0SRTYSUlXARSFkGMZqfn19MTIydnR1ypD5kngyS5yEdI3gIQoyFBB8kjCCZEB5SEEGIayDBBOlww9mQ7AfPohD18AoYwoU7EtLMgfgK4v5Xr149efJEVVWVg4MDUplB9rpAnAFxGEQXZMU1ZAoTsrH158+fkNncnz9/QmosSHEM7xBAZqT+/v378ePHr1+/fvr06c2bN+/fv//48SM7OzsPDw+kgwXpkvLw8ECGxyHBBZk/+/z5M2QKDTKHBzljCzLR+/HjR8jMJaSlDzEKMsYLqYF+/Pjx4sULUVFRSGBCAgEyD/3ixQvIiioODo43b96Ii4sLCQmdPHnSwMAAcgUC5GphiEaICORQbkiAQFZ6o4UtpFkDiQ7IcDfE5ZBd2hDFkFISwoYcpQIJZ4gueKxBxiQgLRhIVQ1p1UJSC8QjyCTkuGx+fv6HDx+Kiop++fJFSkoKMmSCrAzOhlQPkAQAOQQbskwaMooAyQyQjiykmwtJyZAV8pB6GpLOIf0zSJUASTyQfjNkZOL79+/wIzMhBxfDHYCLAUnVEMPhIYOsGB4CcJWQrATRAnE5RA1EAaT6gbAh/QPIkSCQKIAshoDEMiRjQuyCmABhI5MQcUj2gZgJISEhACEhIhD3QFRCIh2SQyEZGeIGyCUTkDXtkCwDMR9CQkyAkBC9kACB2AIhIW6DhADEFkiFDekHQ64zh8QIpBWLXLxC9EL8DrER7nKI1NAiIREKcTOaRyBhDglJiE8hyoYNCfcUJBAgORTSBIekAchJR5CWHyQtQbRASLRwgAjCExUk3OApGcKFaIEIQtgQEqIXwiZIwrXDGciGQ7RDnAFhg3rDEBZajCKXdJC+IKQwghzlCLnZBhI0kAIOYggkO0FIiLvR0g3ENRDHQXIXXDFEJaRwgWQhSJEKCVxIsQixEaIdoh5iL5wNkYK0G75//3737l09PT1RUVFI/QdfSgOpciB1MKSGgNR8kMXSHz58+Pjx4/v37yEnLkGqYUjvB3IEJqRvBCl/X7x48eTJE8jAKaSpDpkM5gYDXl5eERERyG0NAgICkKW/XFxcAgICkDMHFBUVIZcW//v3j4uLC3KuFuQGRoi9kFIMEkqQcg2yd/nJkyeysrK8vLyQLh2kTykqKvrhwwdIrQnplbKysqqrq+/fv//FixciIiKQbUiQCIUogKywhVxoCI9KSNzBQxs+qAvp9UIO2YYUuJCxd0j4w0mIyyE1AST64AEOUQMZjoasVuPi4vr27Rv8ZFBIhMLJz58/Q24pfvPmjbS0NGQu4OfPn5ycnHA1ENdCuJDVbZCGBRsbGx8fH2R8ArKKDXJrpJiYmIyMjKCgIAsLy8ePHyHlPmQNBORcrb9//758+ZKLiwtygCuk0QBpg0PW2EMqADY2NkhcwFftQdyARkK8jCwICVhkEYgXICSyOHJ+QTYHwobUPZB89AsMIKEN6ZVC6idIJoKrRM78kEQFzzIQeyFugMcXZPQFIghXCWdA5h0gy7MhwQjpnUASKkQEQkKaERCNyJ6CiEDyO8RSiF0Qx0BkIQkJYgukgQVpA8G3J0BCAB6qcHMgGRziTYiBEKvh7MHPgIQAmjshMQsJKORyG82naLqGFhfuO4in4OEA76pBpiQgg5GQ29IgywWQvQnXBTEE0iWAKIBIwUl44kFLIcj5BcKGOAxiCCYJMRAiDmdD4giiEUJCbIEYCBqLhYhC1MHlIAyIWRClkE4SZFWLtLS0pKTk27dvIaciQHI4xBy4FkgxAc8PcFlInQcnId1oiGJInoFkWkjdAxGBlCzIzQKIOMSTEJdDzIeIQNRDegC3b99++PChnJwcGxsbFxcXpBaE2A6ZS4PcgPvr1683b958+/YNfAAlaFsR5AAmSLT9/v0b0lGGLOeB2P7v3z8xMTHIOtuvX7++fPkScjsh5CwnyEHWkB6whISEiIgIZCMNZGBcUlISEp5cXFxiYmKQiUxIBQ/xuICAAGReDdI5hocwpEzk5OTk4eG5d+8e5KQwyO2Nb9++FRYWhhzQCJnP/vDhAzs7+9+/f7W1tU+cOHH16lUzMzNIAwWywwdcbv+CrHViZGSEjBnAQxJS9sH39X79+hVSecMHPyENI8jObEi8Q0hIgobUTJAYgYhDEhILCwtkmOH58+ePHz9WUlLS1dWFWApRhkYKCgp++vTp2bNnkGPCuLm5P3/+DIlBNF0QLmQd+M+fPyHtOX5+/rdv30KcxMTExM3NLSIioqGhoaKiwsXF9fPnzzt37kDaMZC4/vHjB6QKh1yPISIiAtmbBEmiEDWsrKyQdXOsrKyQQ8Ih1xKjuRzOhQQCxAQIGyKFzIaIQPIdJElDROBqIMNxkDCECCLXPfDqEBIpEClIKEGqYUgxBAkHiCGQ4ILYBRGHqIGQkFF9SPsDrhLiPAgJMQSyThtySRREMbJGSLqFGAjXBWHAbYQ4AJLrIUEEUQDxPqS+gXgEkmFZwADSDIK4AWI+pHyAmAYpdiBVO0QEogbZZIj5Q4KERDemU+FegzMw1Qx1EUjag0QfPCVDuhmQnjHkEHXIebeQ7gFkmgySwJCDDmIUsiFo6QGiABKYcI0QBkSKpMCEaIRbAak1IB6BmwNxJKgahgghJ2iIfsgMIkQW0riGDDRBNtoKCQlBSjHIEhjI5CJEMZyEZCoICc8SEMMh1kPqS7h6ZAYkI0GWbEAyMySbwb0BDxeIgRC9yMZCtnA8f/782bNnHz9+hJSYkPwM6dJBDlGCdLYgZwG+e/fu69ev8PoPUjRAOoKQbi6kMw0p41hZWRUVFZWUlCBX87KwsDx9+hRyeQAXF+hiecgNTgICAry8vJBRUEh1C9l2DOk0QLqAkLOgOTg4IBcP//v3j5+fH9JthRQ3kFY/xO9v376FdMIgXXZIOcXMzPzu3TuIyZD9KpARaTk5uT9//kCm8+/fv6+vrw85YPnXr1+Q63h//vwJGV/l5ubm5+eHLOCCeBAyBv7t2zfIXbaQyIKEMCQDQLaUQOIFEh2QuIa4Ez53DtkkA2+uvnz58unTp1++fLlz587Dhw+dnZ2VlJTgaRQSj8ikoqIiOzv7hw8fBAUFIUPHX79+lZWVhRxkBrELOedAhj3gO4u4ubkhboMc/c/DwyMrK6uurq6kpPTv37+3b98qKip+/vwZbjLkmHHIbVrfvn37/PkzKysrJxhAtolDemOQyQIWFhYODg7IjDIkQpFdjp8NSbcQEqIS4k4IGyKOTEKWGkByNXJdC2kZQHrqEHGIGkhMQUi4mXADIfkd2UaIGggJyX2Q9A+JGoh6iHa4Lkg6gTTL4BZBUiyk0QAxDaILLY7g6iExCLERYjJcCmIpxDuQnAu5cQsyJQxpZ0OMhRweANEONxCeGiEiEMcMORISesjOhnsTEjLIXGRlw4wNSYeQShTiZYgIJBlA1tVCeik/fvyAdDYgIQBJIfCwwgxPiDKImRA2MgkZxYFoJyMhwa2DuBbORbYCVA3DJSAMCAm3FZIlIIIQv71580ZMTExbW/vKlSuQycgvX77w8vLCi11I5oSU1JDcCMnPkEwFkYWUGpBhQEi+hUyXQta4QsYWIMX39+/fIf0buHZ47oLnTLgIxKsQx3/58oWTk/Pv3783btwwMjKSkJB48+YNKyvrz58/ITcG/vz58+vXrx8+fIB0Bz99+gSZ04XUK5BuKGQiE9L7gbRFIJMQkH3P7OzsfHx8kAFndXX1mzdv3rp168GDBxISEgpgICkpCdlWBFEJL2vgfoGMoEK6oZDWBjMzM6S4h5Q1kOIeUjtCBvq4ublfvnzJwcEhISFx4sQJFRUVfn5+yN0bN27cUFFRERQUfP/+/bdv34SEhCCbpr58+eLi4rJ9+/Znz55BNjvx8PA8e/aMk5Pz169fFy5ceP36tbu7u5KSEuT+XciWKshgNbxkhzQF4IEAaZCysLB8+fIFMkMBaZD++fOHj4/vx48fkPmbv3//Qg4Ue/r06ZMnT969eweJemZmZshw7sOHD4WFhV++fAnxIyTu4CRkTTXkDGfIgmrI6dkfPnyA7DOGhCQkC0FIiL2QlhDkZOxDhw4JCAhAtmmxsbHx8/NDDveGnOX5588fAQEByCjCq1evODk5P378+OHDB2Zm5o8fPz5//hySkiErAyCNHsjoKGRwDJLzITGLlrWQuZBGDHI2hmRvSPMU4gtIXoMkA8g8KGQaCNKtR9YLUQ8xAZIqINnq169fkIWTkCQECRCIMyBsSL8f4hhIroFEKGTFEyROIQsRINMKkAwFUQkxAWIafGMhRAqSEyHuhAcIpHMMVwAxCqId4lqILkgKh8hCsh7EakjzArJqErICEdLPhow2QYyFFMGQHjmkUQgRh5Dw8EROTpBghLTv4Y6BMCAkpKyDsOlJwu2FMCAkxLWQkIeQEE/BZSl3IS6jcImTaiMkZuFRADcWzoAAiO/gyiCCyCSkAoabBlEP7ytCCmTIwBUkF0COLYKkHEg+guQaZC3I5qO5ByIFadPD2ZA0CeFCHABhI5No4hBLCfoLtEQLzRSIg+AkhAFJEBCShYUFsp3j3bt3379/hxx5D9nrAlm4BMnbkEXCkLOZIB6ApCFIoECWusDLL4gUpJiDOBoycwnJe5AcDlEDcS3EVZCWDsTnEFnIUCqkCwvp07x69erOnTuQRblMTEwfPnyAHMsMaVVASmdmZmY+Pj6IOZD8DCndIGUixGRI2QEvHyGNA8hMoaioKB8fn5CQkLKy8q1btwQFBSUlJcXExCDFPTs7O6RYhAQCxEyIXcjlBWTMDWIXZLMypIyGi0DWMHNyckKGmiGD2G/evOHi4vr37x8nJydkjxC8IIaUld+/f4ccu6ihoQHpg7KzswsKCr58+RISAr9+/YJMDL958+bly5eQog1yeRwk6UMcCRnwgAcCJOT///8P6W5CHA85CQRyLubnz5/fvn375MmT58+fww8kgWzhhfudjY3t06dPkAFkSLRikhDbIZkHUnrCy3eIYogCCBtSx0OadJCpI8juI8iuBkjqhYhDdv2zsrJ+//4dMhoBOa8UMgEBOaqMmZn5MxhwcXFBUgWkWQlpKkH6wZBaBGIy3A3IDEhChXgZWRwSuRDHw2WRGZASByICSQMQ7ZBKFGIjPC1BWroQM5EVQ7RAbIEYCGlXwaMPMtEAqf8gEyKQLAkxCm473BxI3oTYDslrEPeg6YLYCFEG0QshIYrhLoTbArEIucyCpzSIgyHmQ8oBiGJI4sQVvBDrICREDRoboh0iCCEhxkJIuDchUoOWhLt20LqQ1g6DNEYhdQpkxAjSPoa0OCHLdyBJCJL2ICkTQkLSIYSEFE2QFAvPHcQHL1aVkIQHIfGHA6IahucBCAPiOLhmiDWQAg5yRqOiouKDBw8+ffoEGZ2HNKLhRSSkNIeEEcQoSOMXUpJC+sEQ90EyGGSsD1JzQMoLSJ8DMtoAEYc4BhKCkDCF5FWIORDz4STEwX/+/Hn16tW1a9cgE36QldKQWIG0GCCz3ZCuJ2RJLWSMEdK8gvSnIYUFPGdCuN++fYMcvAXppTEzMwsKCnJzc0tKSkIOzeDk5IT0DCBFJKS3B3EV3CNwMyEikEQAnvwCLZ2DWAQJPQgJWWEE6T1DBq7fvn0rLy//9+9fHh4eyPaq379/Q+oJyJLm79+/Q056kpOTu3fv3suXLxUVFSGLj9jY2ISFhcEDrpyQm5TevHkDOeUD4jCIAyABDimpIfUcZC4Q0k18+/atmJgYZArg/fv39+/fB182+PHp06eQ4UrI2AbkSsr////z8vJCtgAyMTHx8vK+e/cOMvALCQFIVELCAc6GdI8gqQKSWiBOgmhBIyEhDKkhID1mHh4eyJloEJWQNiIk/TAyMvLw8Lx9+/bDhw+QKhZyljhkkgmyIAB+lCmkGQQpviEhzA4GkIQEEYdYgUZCnATxFFwK4gUIiSwFyTIQcUgIQKIeQkJachBxSFDA1UPCByIFMRBiL0Qj3L+QxA9RAIlNyFwa5BAVSC6G+AgS+5AiCZIeII6HWAEJRkhzDZJ5IbM5kLockuYhDoDogrSwIfECMRNiPoSEq4EwIPkakoAhDoakAciQDNwxEK9B/AKxCxJuEDZEGcS1EDachAQjRCOEhBR6EDbEDXBDIFy4ORDuYCDhLoQzBoOr6OwGSFqC5AVInw1evEDGMiHzifA1LpAKG5LqIOEGyRrwqIcYSNAXkPQAMQGZhIhDUiaEhKQ6iBpcxoKKe4g6iDsgpkDyDFwPxAhIEoccCCwoKKigoMDLy/vmzRtIR5OLiwvSU4TsQoE0SSDmQKpGuMmQjArptCE3byHWQQ5ihGhkYmKCVIqQAh1iAkQZxDGQQ84g4nA/wwMaMkbx8+fPZ8+ecXNz8/HxQUbRIWUN5MxCSJ8Scpby58+fIb06yLmSkEIcsq0FMtQJGsQHV5KQUhgyZAHpD0GKCcitgpDyCFIsQlwLcRKmOyHNC0iZBUkZ8LiAjBNCKm9IlwVyPMjXr18hzQXIaVmQ9UqQZgRkJBZSLkNKWIiD3759++7dO2Zm5hcvXkDu55CUlBQXF+fh4YFcnAy53QgyLw53BiTS4e5BNhZSMkKiW0xM7N+/fw8fPrx06dK3b99evXoF8SxkthWiCzLCD2mUQFoJkBwiICDw4sULyF1YmHOrEAdAqjdI8w4SmBBxeG6BcCEkxGpIuxCSnpmYmERFRX/9+gXptUP6/b9+/YKcB8LKysrDw/PmzZuPHz9CVjkwMDB8//4dco0SpCEISVfwigFSgkOkIMkA4jv4iSIQR8JJuMMwGRCTIeIQEqILkrYhIpAyAmI7pKqA64IogyQeiKsgqRcSMpB4hAx4QBZCQgyHrG+AFFuQyIXEI6SGg9yOAIkpiCzEUoheiAiEhJRrkPPRIFtHIOEAcQ/EdogXIOoh5kBcCIkmSDMOogZCQmyBeBDSOICkNIhKSIsc0r6H+BeSoSDhgGwCxBxkEqISYjJEHJKuIHohIlhNgAtCTICoHAwk3GFojMHmTlqHFcT7kHiEkJAhIkjVACkYIZtOIS6Bhw+EAamnIFJoJMRkNEFcXGTFkGSGTEKyAFa9EI3Q3jAkk0BKLoj7kPUgi0BWQ3BxcUlJSYmKij579gySSSADAhD7IKZBAgWyJBhiAqSughSpkO258OIAkj/huQ4yBghpoUPMhLRxIEUGxIcQNiQ7QcyHuB/uEsjw469fvyDrsPj4+CAVFTw/gzsz7JAOEGTjL+TGVlZWVkgf99+/f8LCwpBrDyCtB0g5BVlXDOkUQsacIfNqkAoAUgZBHAPxICRNQIIUEu4QNsRrkFIJucaFhAPEm5D1zJDWz69fv969ewfZwAO51A9SxUpISEDWZkP280B6KpCbdiBbe//+/fvu3bsXL17o6emBTwcBEZBV4u/evYMseodYB6k4ITEIcR48hJEDGeL+////CwoK3r9//8qVK/v374dvKPr69asAeDoWsvAYohESLJCYhQQOZLD3+fPnsrKyEAMxSYheSFpClsUUgchC1CPvvJKTk+Pk5OTj44Ps4RYSEoKciwlZcP769WvI8r3fv39DLiQGj0ODFmNDWgaQGIf3lSHd+i9fvnz//h2yaBHSd4SEEsQNyCQkWuGRDmfA1UNEICQkWCAkRARCQjwFEYcYDvc+pCEL6TjCkwqkToU0fyEkpCKH1F6QTgNEI6TWhEzVQ8ZFIA1fSNRD7IKTEGdA0gmkGobcqwg5ZQ+5GoY7D2IOxHZIkwJiGjxfQLiQpgMk1UEUQ6phSGoEN31ZIA5GdgMkQCB2QQIKwoaYiUZCnI2mHU0NMhdiILLIIGTDHQlnDEJH0tRJuGIckmHhdRMkCUGWnUKGZCDDe5DKCLl8JtK1kBQLSU6QRA6JAngih6c3uBqsJkN0gXrDEHWQPABJ2RASIo5mHzs7OyTviYmJycvL37t3DzIuDdk/CvE8pJMH6cNBil14bod4G9IGgbAhiiHHQUAG9CFZFLITBtK0gQwdQ2p0yJwxKBT//oVMSENcCHEzPFYgy6EhNdzXr18/fvwoKSkJ6a1C1iRD5l8htyx8/PgRci085MhGiNWQK2khe5wgd7xDmgWQah4yag2pfSFBBzlCAdKHRnYMJKAhDoNURZD4QI4nSJqAjPlDZishxfSvX78gM9kQAyExwgEGfHx8kBbGgwcPREREICdmQNagQUpbSGC+f//+58+fPDw8Hz9+ZGNjg+ye4uXl/fHjx4cPH969ewfptkKqHPgECTxIIfbCHQwJT8hUN6SCefv27b9//yA3H0AWFUMqg0+fPkGaQZD14ZCrf//8+QOpBSFDBZAp7YcPH5qbm0O8BgkriHUQNkQcIgIhISIQE5CdB5GFbN1BFldQUBAVFYVvMYIk0Z8/f0LOreTn5//y5cufP38gx7C8ffsWMorFz8/Py8vLxwc6+AxykxKkB/z169cvX758+PDhy5cvkClnSPsMYjsmCfEFRBzOhiQYSO6FeAeSPOAkRD08hUC4kHwB0QURQSYhyQ8S+JA7wiH1Gby1CrEIkhMhbIiBkDWSXFxc4GQFPcAcUv9BHAx3LcRqiF6I2yD9YIhGyLl7kBQO0QhRj1wwQWyEFI5wNRBl8CiDlJKQzA5RCW83QxI2xGqIeriBENMgJCRYIO6EGA7RAicheiHKICSyYkxZZGMh6gecRHYSnA0ZRCTJbXC9JOkaPIrh5QAkBuFRDEnnkHEdyPAk5OQASBkLWRKEnDIh5S1y1BMMGYiNkAQGDxC4OXBZuBQeBqg3DM9mcAbcNRCzICTEPmZmZsjmEwEBAWVl5YsXL0KqYfjAF6QrBi/WIQEBX/EE8RtkOBdiHaTchKiHVLcQiyBVAqR+grAh4pDWPaQ+gFTn8KCHVB6QsoyZmRnSWYFcSghZTcbIyAhZiQPpLkAqV0i19+XLF2ZmZlEwgFwbBRk2h4xPQiyCFAqQtA4pdCBnuEAcA3EexDEQb0LCHRLZkMobUo5A1nZC2hOQpdeQ9gTkjiNInwxy0zNkuTgk9CAmCAsLQ0KPhYXl69evT58+vXHjhqqqqqCgICRFQoyC1JEQh0HmhtnZ2SHnhAgJCf358+f27duQLVuQnhBkLQNkkg8S3RAS4ink9ACpXCEehAS4uLg45JyTN2/e/Pnzh4eHR1RUFLKnHNK6grifi4sLcnsxpNv09+9fyKVVDx48gAQUxC6IyRASYi+cDVEAIZEF4doh/oVEHKST+ufPH8j5oPDyGjKdCR+ngtwSAUlU79+/hyQPJiYmMTExyDJ4SOh9//7927dvP378gExmQ+5mhtzqA7EIEvjILkFjwx0MYUBIuF8giRZZEJKQ4LEAUQCp5CD1KyQtQRpbkICCDEFDVpxh1Q43BFJIQQbVOTk52djYIHe3QNookBQLsQviQrhf4MZCUiNkkQdk2SCkxYysEu5CiC6IIyGtFohLIOkH7keIXZDmO3xSBjIaARnegIwSQayAmAAnIYbDSWQzIeohJNwl8PhCDnOIAyDlEsRkiIG4TIOYObAk3P1wxsC6ZwBth0cTJCggWR4S0ZAiCFLLQI5VgJy8CxlGgquHJwC4LyBScC6cAUkkEPUQe5FJiDKIXggJEcFFgqphXEkNoh9iOsQ+SM8VUg0LCwtLSEgICAhAJlkhrVd4DxJymQ9kShUSBJD6GFLeQcyElCaQ0SeIeki5AKmfIFUvJDeysbFB5i8hPRJIHxRSTEDyFcRYuCchG3ggPR7IicGQPiXEXrgyiKcg51Z++/aNn59fRkZGWVlZQEDg+/fvr1+//vz5M+TwPMg4HiReIcHy7ds3yN4JyGQbZGga0pCHmA9XDLEUMvUIKWJ+/PgBqWshnV3ICntIV5KJiQlS4nNwcPDx8UHuS2ZnZ4fU+pAqFm4+pFS6e/fumzdvBAUFIfPBkCXckGoYMmj88+fPR48esbCwCAsLQxLis2fPIKu9IBEKqSwZGBi4uLggc5zIXSiI+zk5OSENPXhQQAYkvn79CrkKELKhnJubG9JHh2xihoQwhIS0QCFtCHZ29j9//kCWg71+/RriI6wkJBdBTIArgEQBnIvMgBxDBqmPIY0YyOZsSLUB6eRBTINcngEZ4RAXFxcWFoac9QFRA1liDVnxALly4+3bt5DxashtHFxcXJBBCCKrYYgj4S5HrrQgJT4kPUOUQVwISdtwEeQUBck7kBiH1KkQ7ZAWHkQckq8h8QUZeUJjQyaJIPvxIL6AFC4Qe+F1JNzNcHHImgNINoRUk5DcCmn4wh0MVw9xLcSFENfC1UB8CuEi2w5ZmQ9xIXLjANLch6QKeIBAfAonIaZBSEjqRWNDFooiWw1XgKweIjgkSHgcDQnX0siRkECAkHArIJkLQkJKRfhyXcjkFKQCgkhBkhA85UO4cKOwMpATOTxFwd0AsRcujtUEUG5Ck4DkBGRBiAikCIb0dCGzkh8+fJCWltbS0rpw4QJkwgxSLoMMBY/EQ7IKpECHrGOC+B/SPeXg4IDs/uTg4Pjy5QvkPjvIPlr4btGPHz9yc3N/+/YNcr89pErm5OSEbJGCdN0gw/qQahgSfJCyBnLnAWQslIuL68ePH9evX1dUVOTh4YGEOGTLCmSfK6QrICkpycfHx8vLq6+v/+PHj/Pnz0MuS4B0DuCj0JCyBrLhCiIICSJIJ4yDgwOyoAyyVA0yoQUJip8/f3758gVSlH/79g1SwUOOlWBgYIBsYob0/iGdbx4eHjExMYhrIaujIZuzIQPpkGlgyM2Jjx49UlBQgFSikA7KjRs3JCUlIRN4LCws/Pz8kAsShIWFIVc8QdZ5QQodSNEGcQNknADS3GFiYoIsoWJnZ1dQUIAU5ZAiHpK8IIvdIDWrpKTkq1evIMPdkDiCGA5JkRA1zMzM3759ExAQePPmDeRGSGZmZsgYL8TxkMoA4h5GRsbv379DPA4xCp4rIMU6JJVCzIdL/fr1C1JqQ9qFnJyckHiBKINsfIJEEKRb/P//f8im4c+fP8MXcEFWd0NWckH2l0NOOYVEH2RQBNJggiRsyIg3pPkI6e1B0gwk3iHuhHgBQkKyJaSOgaiH+AiSWSDqIS0JiF2Q+gbSuYTkMkhFAlmjAEkt3NzckLCCnKoG6T5CjIIkCYhTIYf/QeaVIIPJEMdDevaQbA5xHiSUIOkBUoNCwhAS9ZBj2CFsyLIpiDMgdTNklAjS1YBEDcQEiBcgIpDyC7IhG+JOSPEC8SCkcQ+ZqIakRkjzCDLJhewSCBtuAoQBsQJCwgsHSOBDXIIcNXAtkLuz4FyIekipgmwLXAEdGBB3QsIKbh08PUBiCh6qcC5EJcTNEBMg7W9IgMBJiDKSSIiZmFogYUVQHK4dl3q4AjSjcKlHUwbnQtRDTIPEILwhDukWQtrr8OOJ4FkPUspBinRIgkQLLojJkJwCiRdIZoeIQ4pruBaIIMRVEMdA2HAFEHNY4OrQGBAuxBoIG6If0oqHFJTs7OwSEhKioqKfP3+GlBqQWgcyFg9hQ/aMQmQh5SPETPiNxcg5DdKWh+TnX79+QWY6f/36BcnnEBdDwhTiW8jIMyRRQtrjEKdCcjIkUULYkLOC379/LygoCC/yIA1zVlZW8PHPoGOkpKSk5OXlhYSEnj9/Dumz8vLycnBwQKyDWA0JQcjJGJBqAyILsQ7SpAC3Q0Dz7pCjMCCXKUH6vpBDqSBtCEjJCHEPJMohJde/f/8+fvwIqdUgo9B///6FnKML8SAkLiBaIMUTCwsLpGyFzxG+f/9eRkaGlZUVsk4KMu3969cvHh4eYWFhSIcYYg6chNz0ABmg/vv3761bt3h4eCCj35BaDV7IQoIC0vyC7KAVERF58uQJ5EYKyDHRkK4/JLggyRpyCtLv378hu4ohg8CQ0Wk+Pj5IEwQyogD3L8R3cBdCGJAEDSEh5kPEcZGQQIPUGZDECaljIBUnZDwDclzJz58/ITkTMlXxFQwgw9Hfv3+Hz7xCCj5ISoZYCmfDQwYuDmFA3InsZkj5CNeIrACiDOJgiALkcIDkQUjqhaiBpD04CZk3gZgPyYYQxczMzJAWBiSLQeZcIeUORC/EXoiDIWzIynZIOodUYBBxiDfhtkMEIVxIaEOcDfcUpLUBMQHZfIhGiBZIKQFpRkPYyLIQwyEicGMhRuEhIUUkRAFEL8QciAgmCQk0NHG48+DiEKPgXNoxIIUexHxMSzEdBlGJTEJiCllkJLMh1QQ8PUNae3/+/Pn27Ruk7IUUqsgJFTm44GU1RBCSyCHxAiniIGyILIQNISEiyCRELyQGodUwhAPJihClEEXIIhBxSDKFlJh8fHzg06IUzp07B8nYkOoHkpEg+R+yeBieFCBFM2SfA2Tly////zk5OX/8+PH9+3dI1xbSx/r69SsfH9/Hjx9//vwJUQkJQYivICTckZBQgzR7IRkPwoYEDUTk27dvz549k5KSggztQgQhlzQICgpCdv68ffv27t27nz9/fv369atXrxgZGUVFRSFbXeE2QooASJMCIggJDYiBkOIGPtgLOaf6+/fvkOYIRA0krCDFH2Q1DaQmgBSvkO2q//////LlCzc3N2RNE7w0hLRqIf6CTKtDCmhI6oHsbYX0ft6+fSslJQVZxQo5YASyKg3SC4TEJpyEeISBgYGHhwfSJ/j79+/Tp09NTEyEhYUhQ/rwjggktCGBD3E/AwODtLQ0ZPwA0l2G9MYgdSrEFkiMQLbkQkIbcn8wIyPjq1evJCQkIEkc0qiCOBKyPB6eeLAWoBCXQ0hIcoUnZoh6CBcyOAFxOSTkIdXt+/fvIcEOWTcOOdYUMuwM6QdDal94hwzSOoQ3vCBeQ7MdUnRC7EV2PCTlQBRD3AapziGGQEiIOISEewcSMpCqFC4FCSiILkhcQFIXRAQiC9cCtxoSDpCBaMggEGS2CO5OiEqIIZD7fSHGQgZ+4AZC/AhxDISEa4S4FqILIgUpECAehzgV7jyIRZCwglS9kJwFYSOHD8QoiCEQXXhIuIEQd0JUEmMCmvlwc+AMZAVwNpwBsQgScXA2JQyI+5HNh7PhToIzkC2CK6OiY5DNH6JseM6F9IkhBwNDGv2QEgDSToUEOyT5IYckpBBDziyQcICogSQwZBF4poAIQuICEl8QEmIRC4SCSEOUQqQhJEQETkJKf8hCWcjkjbi4uJKS0uXLlyG5FNK9g6iHdPMhfX/I4hFI2Qo5qAhy0jKkyoEPF0CmDCF7or5+/SoqKgoxCrIMGB4EkDlRSI0OGWaE53xI5ocM2UHGwCElL2Qa4MWLF1++fBEVFYXogoQdCwsLZDL4z58/z58/f/Pmzf379yG9OkhfH9IjRA4QyAJRSIECqRfhxRPk7iDIumtIQQ/pZkGW0kBWJ0E695DGF6RZA/caZHL927dvv3//fvXqFT8/v5ycHC8vLyRBQGyEuwSyiwlSsEJSEiQAmZmZRUREHj58CFnKy8rKKiEhAR9Fh6zahxsFNw0S1J8/f2ZjY4N0Fnl4eCBOhfSSIV1hSHhCEgzk+AvI3LaYmBgLCwvkkGrIbYyQCII4D2ICJKFD4gISp5Cof/r0qZaWFtyPkJ3okNl0SByhpWZIOoQLwtVAvABxGzIb0hqAJBKIOCTYIYEMcRWkafjz58/Pnz9DzmaBBBGkzQRpV0HSFWQFA7xBjZz34FrgoQqRRSYhzoZ4AaIekqshaiCykECGy0JSNVwKbjiEAVEGSUJwEtLUgHgTEhGQJApxPCcnJzc3N2RxFqS5DDcKOTAhbMjkGaQhAlkPAalEIe5BIyGBDw9wiEqIOZAEDxlWgfRCILEP8R3E+5BBeIizITEFcRikVoaYg0lCVEJIuHqIS+BcuPkQ7RDFmCTcakioQqIJkjLhPoXogkhBTIPYAmFDZKlFwhvZEMMhJMRrECsgViOLwNVAXAhXAFFPJEmeLiINJ0MZ3FNoeslzJySZQRInpK0POdmJhYUFeekWWsqEBDIkYUDyLDxJwJ2HxoBzIXrhjocYAheE9oYh0nAvQRQhGwFJxBBtkDoMMoDMwcEhLy8vIiLy7t07SNkBSccQD0DqeEinDVK5QmpQyDEakJsMIIPGkHCBrMKFHEUJmQmGrDKHNGEgK24g2RjiEkhTAFL0QGp9iEcgC74gNR8kpCCdtvfv3799+1ZaWhresYaEJjc3t5SUFGQmFTIZBlnxKyEhAVmqA7EOYjgkcCDD8hBnwwPq////b968gfR9IUusISEAcQ9kOBRS9MCLJMhtu3DHQ6oKCPfz58/Pnj17/fo1Dw8PvOkDjyNIxQCpAiG9Dchs97dv3/7//w85ORniSIiZEGczMTFBpvafPHkC8Q6chPjiy5cvfHx8kCPAjI2Nf/78+fTp03///vHw8CCbAwk3SLBAZvSFhYUZGRlfvHgBucARsisMMjYArwAYGBi4ubkhEwSQoXJIh+zhw4eQiVJItxveP4OYDylNkN0JDwSIMyAkRAHEF3CNEL2QWIC7HxJrkCbRv3//vn79CllIDwl2yMgzpMaFJHs4CQk9+LpiiO8gNkKSPYQNcR5EF1wcwoUogJCQGIEohjgeQkJkIWw4CaksIVkMohHiR4j5cEMgfoTECMR5kNwHyU2QVfHs7OyQBeGQ+SC4dZBghBgFJyEDVJDtiJAqAeIGuC6Iv+DuhDgAks0hWQ+iAHI6NKR9CRmCgqiERA2kloX0gyGDE5BxdUgxApGFmAMxE24dLgbc/RBPQfTCSVy64IZDdEFCGNmncBGI+XAusoFw9ciCNGIjOwPZCmQ3wNUgKxjJbHjgQKphSOri5uaG7NyD9KMghzTDkx9aGEJKFXgYQgyEkBBBCBtCQkQgJkByLoSEJB6ILHSlNIQDISEaIGx4uoSkYIhOSAkF2XzCzs4uLS0tLy//8eNHuCykyIA0oiF1G6TrAzENUgpApjAh9S6kwwE5NANS10JOWYKcNgwpTSALbSDNUkgmgXTUkOtgiMshToXoglS3kICGrKl59uyZoqIiZNwbMnwK2RrEzc0N6VBCxnX//fvHwcEBWWQLcRLEUkgIQqp/SO0CGcKFLG/+9evXq1evIA0LSN8RMjwAqWMg5Q58wTBEAWSQFjJJCa+bIdEPuTfpyZMnUlJS/Pz8kMVcEClIBENaQpC6FjJB+/nzZ0gjQFZWFt7ph3gTUgJC3I95MR/EQEZGRgEBAUjTh5WVVUhI6NWrV3/+/OHg4IDYDlEGKY4hKQRyHBUPDw9keOPGjRv///+HrIODNDggHWtIYxNy5AWkGoaEEuQ6lFu3bkHuUIIcYgXpyUFSBWTAH2IXJIHB2cgMSOxAEhgkGUDYEC2QRAJpPkI8AokRNjY2Hh4eyGwIRD0kQUJW+EOSKCQBQ7wMWRUMGeeH1BmQ8IQkOUg6gbDhpkEcCReEcOHJGM6FKIBkb4j7kUlIUoHUfxAbIbKQ6ICUJpBMBzEHEhoQNqQahiwIhyyGhwzEQbIAxAS4MyDGwq2AmAPp2kLcAEl+EHFkXRCXQ/wFUQPPdBApyMIIyBZtSKaAtCDh7QNI8xfSqoBogeQXiDkQv0BCFWIvmsshgsjuh4hASIh2iBaIGggbIotJQhwA0QWRheiCsCEkRAQeFPgNhGghg4QHCLLfIakabhrEJWiCEPdApCCpF66eGAZEIzEqIWog1kHYtCBxmU+qOyHhiexCiAg8E0GqYchYF2SEDDLfB28vQlIFhIvHVfAkBLEL4k4ICRFBjlDQMiJ4/KHphKiD2AqxD8KG9Ec5ODggZShkXPrGjRuQzgSkioL01SAXXEBWyUKGs/7+/QvpAEGkIGUHpNJlZWX99OkTZCgSfkgypOiEJCOI7ZAyApLhITZC3AkJTbg/4Q6GuAQyr/n79+/Hjx9/+PABco4HZKgcMkwH6XBDKu////9zcHBAtuhAhiwgVR2k4oeUDpBeAmSAF3KkA6T7i1ysQJpXkFCF6II0TeB9BQYGBkjtCNk9DDENsjgIcgbWly9fHjx4oKamBjm0GdLfhccipISFjPpCepCQC4iePXv26dMnYWFhSO3OzMwM8QXEli9fvrx8+RKymBluFJwBWcwMOU3sxYsXLCwsfHx8bGxsX758gVgBTy2QYIdsh4d0v2RlZe/duwcZvYTMof779w/SwYUkZchWN0iAQwIHMqT/4sWLU6dOGRgYQBpDkMl7SHRD4hHiPEjkwgs+uCCyGggbTQ1k0xpkRAGyIwuyWAlymySkWoU0CyApChJlEDbEFvj6f0gTAZLYIFkR4ipIHQmxHUJCRCCykEQLMRZiIEQcHoYQz8Kl4LIQBsQoNFlIwQFpC0IO7YMsuYIohtgIzyZwZZAxAEhUwtWgOQySVuGykGoVMuICzyAQx0ASA7J2SNqGhD/EUog5kKkoyDpBSBhCGpGQpjYke8IbzRBnQxpPkMCEkJAOANxq/AxI0EECFk5CBCHOw6odogASL8gKIDEO8S9EDYSEFE0Q9RBbILogDoawKSHh9kKswDQK4gyIw+CyyLbDFcBlRzIDkmfh4QMZeoEECCRtQ0pLyHpYyMkKkI7Er1+/4F0CeETDzUEOf4ggJI3BAx+SCyAWIUclRDG0N4yckZCVQuyDk5AWMWQSG+IByH4PUVFRSCMCMvsLGVD68ePHt2/fIMuM2dnZOTg4IBOEkLFZVlbWL1++QOpIyFWDkMVckIP+IecLvn37FlIXQuZiITUfJItCalDIwiVIbofUo5CsCyk4ICEOactDguPv37+QrTKQljikuIFUsfBpVIhpkPE6yHJoiJmQ/AAJKMj6KcgGJMi5hpBVygwMDJDdL5AmPKTahmiHNC8gjodUn5A6EtIDhuzchcQ6ZF0upEL98ePHq1evINcQ/f79G3K8FzyCIO6HeA3Chqwpe/ny5devX8XExCCLzCGWQpIR5IpcyDwxctKBpwyIaVxcXHJychcuXBATE/vx48fHjx8hAQIJBIhGSAKCXI3w7ds3JiYmeXl5CQmJDx8+/Pz58+3bt5D5dUg1DOkAQXrbkOoNkrghzbKfP38eP35cWFhYWVkZUkZDkhAkaiBOQvY1JIlDRCAxAmFjkhBZSP8bYg5knxgzMzNkShiSmCE9b8iwAcRSyIYuSCELqfCQfQ0JbUgCgxgLzyOQYIFw4SkW4jCISggJCXCIMggJEYHYgqwGLo4mBUmoELfByw5Iuxbua7gW+Dg8RBdcHGIRxM3IghAPQkhIIECyLaSogqiEOwxiCIQL0QJJ/xB/QQogSKRDNghAmgKQsgKyuR+ywQmSbeFhBedCzIGIEyQh1kGUQaptuO/ggnAHQ0SQSeSkBfERnIT7Gm4FnIFsAoSNZilEkAwSkuPwOBhiJqYCSBqAy1LLPRADhy4JqUohKQoSJhASEoCQbALPU5BdfJCGOzwBQ/wO0QVho5Fwo+AMSAmMnJAgWuCGQHvDkGyDrA7ZCIgeCAkZrf379y/k/ArIjbNaWlqSkpK3b9+G1HmQw5Y/f/4MqZ4hA5KvX79mY2Pj5eVlZmaGnNsAmXCC+BnST4Kc4QwR+fbtG2SrDKSIgSiGDG5DujKQMzogyRSSQ+C5AlKIc3BwQMaZIRPDkLqckZHx2rVrwsLCIiIinz9/5gEDiF8ghSZEGaRLB2mkQxr4kBYDZHPthw8fIBt2IVUppKsE6d7BszFkXQy8+wsxEF7pQsQhNTRknRpk8BOy6gqygP7z58/s7OyQG6IUFBQg3oGMD7Ozs3+HAcg6879//woICPz58+fz589SUlIQEyA9GEjJCClGIR1iSPRDSEjQQSIOMm4BOY/zyZMnIiIikAAUFBSENyMgsQNPxz9+/IB0xX79+qWoqMjJyfn06VN4BQzpmUH2s0JSFCRaIZUBZM8o5LhQyK2IkpKSkMnyjx8/CgoK/vnzh5ub+8uXL5BIgYf2r1+/IOMZEPMhKRPiMORsBknPkAGV79+/Q67u+Pz5M6TF9ubNG0jq/f79+5cvXyDDEpBwgMQLPDnBx0sh4QkJMQgJ6UPDVULcAEl+kAEAiNsgfodogYhA5j4g4pCIgEQTZDAJ4i9ISQoxHLLeENJGgVT/EMfA7YLEL2T4AbItDWIRRCM3Nzdk1gCy6QBiIyQSIS1ayAgEZNQEnjghqzQgM8qQRRKQHAFxNsRhkKiEbOWHnE8E8QJkzAOy5BAywANZGQCZloYs04MsI+Di4oJsC0QurSAVNmReAxIOENdC/A5hQzwIcQykVwCPOIgCeKMB4l+4SohGrCQk/0Ia0JC0BAlnSOMMEr8QWYj3kQ1BFoGXS8gKyGBD7IWkZDiJnJAgXoOQcAWQtARXBvECftshgQMhkVVCTIaQcAPhDLh6SIBDlEHiCO4YZCmIwyCRi2wLHMD1wkUgDLhFEC6chNgI58IZcHGIRggJKajhaiAMiBQk/UBiEFIZQ24cgEyVQjbyfP/+HXLSLTxSIH6ExDXEa5DSBh4+8KQLSckQuyD2QoIFwoYu0YKrhojCa2U4F86AOxQyGglRycfHJy8v/+jRo/fv30OCmIWFhYuLC3IzLtyHkDILUq1CJiAhg+8/f/5kZ2fn4uKCnJYF8Q/cJ5CSEXLsAKSugmQVyDqvnz9/wt0G1wJhQPwMcTCEhAwCv3379uXLl2JiYpycnPCjp7m4uCBhCo8/SPny7ds3yHG7P3/+fP369cePHz99+gTZZAbJk3DvQPI8pFsMcTOkjwsp1CC9K0gIQCpjSJEBiVfIampI/wBCQtoEkPsGHj169OnTJ2lpaYh2SC8B4juIayHikMkCyHgjPEwgHoeQEMWQ7UyQJh5EBM3jcL3IDEhSQ046EFlImQvJPJCSGnKMF6QLBVEDsR1CQpIjpEKF9EEhk5Q/f/58//49pKsKqZ4hXfm3b99CtrRBCnrIWS4fPnzQ1NTEdDYkTCCWIpOMjIzfvn17/vw5ZLwB4lrIqdeQuXlIlx3SM4ZohFeEkGQA50KsgPgFEoOQ6IBEAaTFBslNEHMg6iHhDAk9OBsiBUmrEBLiMEjyhmiHk3C9EF0QB8BDABI78JYf5AAcSPBCxiEgmREynw3XBTccMsoFqY/hqRqSSiFcyFQZxF9wl8C1Q8IBUhRAijBIcEFSMmTkCT5Zg1yHQdZLQxIAxHC4mZBQwupUuBpIoKGREC1oJJoWuOHI4nA2pP0E8RQktNHcBlcJCQo4F+4SZAZEFr+NEDXIJNxGiEZkEuI1iMOQtVDCptw0eFDAjYKIQJI0WoBAvEOJg2kKIM6D5ClIcQov5CHrqCHrDZHrKYhnIVqQ3QbJyxASEnFwWYgtEBI6KA1RARFCJuF64Ax4QQOpJyDrd3h5eTU0NC5cuPDy5UtIpxCymAWiBp4/IWteIB6DD8xC+meQwxohRR6k4whxBqSBDKlgIMOYkNlESJ2H6W24LkhLFl5aQRIHpLf36dOnp0+fQi45gCjj4OCAdJIgHTtISQEpOP79+wcZdn7z5s379+8hB/ZCUhVk8yWkFwIZVfvz5w9kFRKkdodUsZBqGDJCAMnbkCIbUnxDik5ItQQJW0icQSokyKgI5DBFCQmJL1++QMaTIf6CFHn///+HWAoJJUg3C9JegzSAIK6F1IuQRhJkBgEepxAGJCXBAxAiCCEhFkESCZyEGAuJXEgwQro1kEXmyM0jSHqF+BfSe4NEIsR5kKj5+fPnixcvvn//DmldsbCwfP/+HXLnD6SSgIyXQK5F4uHhgcw9Q9wMcSQk3CDlF8RMiF8g5N+/fx89evT161fIhVqQhXUQKXibCRKA8HFdSB8CzoWEOaTZgawREmsQQyCFDsQNEBLiKkigQVwLISEuhJAQWYj5EJMhuuCykBCA1G0Qz0JIiDJIGQHp4kOyFUQc0t6CrIiEdIUhfVmIAyCWQiIR4lSIRyB5EGIXpIsMycuQIQGIeki+g5AQj0McDwkriAmQZjrktmbIhAhk6hoyMwVJDJCTcyAlBsRHcBISDnAuJgMeOBAGxEC4Mrh2CAOiBi4LCR84F40BMQoyCAkJJUiihYQbhISIQ+IFEiZwEmIaJCXAlUEEIY5BE4RIwV0IiQuIGrg78WiEaKeEhFsNZ8BNg9sLdwlECq4S2bWQEIBIwUMJEg5wLpwBMWfwkHBnw0Me2W2QO3M5ODgg4zqQoUFIXoMU6XB/QcyBkMgmwEMSYj6chKhhgeQluClwBkQaTiKbC6mfIN0aSIOXgYEBco/Nw4cPIUt2IdUkZEAMkoEhjoaMLTMzM3/+/Bly1yG8aIBsFIEYC7cOkgHgx/9CShxInofUynAXwhkQvZDoh6QMOAkZFvvx48fz58+fPXsGKacgt/JBhiAgm3kgJQWk+vzx48enT58gNxFxcnJCjvKA1LKQLgLkiAOICGSNFWRgGeIdiCEQB0NqI0j2hpDwdjecC3E8ZIMTZIiPi4vr69evT548kZOTg2QGeIxC1hH8/fv38+fPEI2Q0hNSNUJKQ4gWSIUHCSJIFwQ5TCDicGPhSQSiF6ISUspDVEJIiI2Qeh1SrbKzs/Pz80NaAHDTIIUaPAQgDQ5IRw3S3IEng7dv30JOr4SsnPr16xdkNAVSZX78+PHHjx9CQkKQIyc/fvwIaRxA6kVkx0CcB3E2hM3IyMjFxfX58+d3795BBqIhAQXxFCSgIK1DyLAVJBFCxCEZBNkXkA4ivIEIkYIEGiT7QPyOiw1xGCQxIOuCOAmSbiEmQBwPISGOgZd6EEFI7oA0ByGbgCFBCmnnQfzCxcUFnnjhgYwxQFwF0Q6JX0jUQOyFuApSskBiFtLKhMzmQlRCTIC06iB+gaiHDJhDaibI8XbwTAFZRQippCGdbMhmQg4ODsiFH5D0CTEH4neILZDwgZMQZ0MUQNgQJyGzIbIQ7RA2RDtcJSSpQKQgJEQ7hA0JAUgAQqaWIT6FaIcbC2FAMho8GOEWQdIGhAsxHMKGqIQEGkQEWRZZHO5IiKvgyggyIBqRleE3Aa4ejQFJ9sjmQBRASGRxiPmQpIgsCwkxSGUBCS5IxoGwkVUOKgD3DsRVkNIMnvsgMQ7xFGRxCaS/BM8+yOEG8SkkX0OiG81weDoB3eIJUQGxFaIOniDgDORQg3R94C77/fv3ly9fIOul7969CzkQCrJBAtJlgRRwkAobMu4H2Tv09+9f+KUFkJrv+/fvkFOc4OkV4iqIM+C9E8iUFaQfCSkxIcogEQ9RjOxgiCyEhOj6+PEj5DoENjY2yDFJkKVkkBE8SOhAalBIBQm5fElcXJybmxuyzRTSdYCcfQiJD8jAMqThD+niQ3pXEHshBSikoIGYCSm+IdEGKYYgEQGJPMgZGpCh7E+fPj148EBPT09SUhKSLCAJGr6c+/3795CUASmFIWkC3hKChD/EUxCN8MFJiNsgJDzqkRnwYIQLQoIX4lS4RogyyH5lyL4diBTEjxA2xKeQzeKQuhOiEuJaFhaWb2AAWQ0OiUpI8wvSQuLl5YWYALk9GnIbFSQ8IeYjkxD3QNwM8TI3NzdkPhJSDUDSEmRVIKRtBzEcXotA9ELMh3T4IH6B1CWQsIWkJcjgDSQ7QKouSFxDWgkQl0DcBmFDSIhpkFwNcSEkYOEpH+IAiCBEASRhQIyCsCFqIJeCQM6UhsQ1ZCodsr8ZMlMAaQpDrIaYADEZEvgQEUgIQJqSkIoTUgfDj8aDuxmiHmIaJKYgIhD3wE2GhB6kyQWppCFdZEgRAVktCMm/kMoP2XyIByHG4iIhVsOdAVcG0Qt3DMQ9cMUQ9RBZZBIS8hCXQHIo3ECIXjgXjQGPbkxxiNUQBRBZiC0QNoSEuAHOhjsPwoCIw0msgnBZOAOuDNlquCwmA64ezsBUQ4wIxHcQSyG5BrI/EJIXIAmMQivoAJBjBO5miNcg+QiyMQRSu0GqD0jvAtJig5SNkEQIKRbgBkIEIakCEg6QyhRaDUOEINIQf8JTHjIDUpRDSEhPF9Ls/fr1K+Sah6tXr967dw/iSsj1Z5BkDcmQkEFpyNUIkPvj4J6EWArJpZCiAaIRUttBihWIZyB1G8TD8PlwiHaIFriDIYIQEqIXMmcGOWfx27dvjIyM3NzckOoWcnUdJKwhm0ohnV1eXl7IohLIDNanT58+ggFkwxWk4wuZX4TEBMR58NY0JNwh6RLiMHhQQLiQaIA7D1I9QIIFckkRLy8vRCXk6kCIlyHtdMi6G0ZGRoirREREIJu5IfPTkHFyyA1IkMFtiGMgVkBshJgMCSJ46oEwkBMDRDGyMniCgawuhlSov379EhQUhNxKBGkdwwtWSCnMzMzMx8f36dOn79+/w2MZ0qeHnO7y6dMnyFVRkAW0kNVbkEELSHRA2hmQ8IGkQ0ikQ9wMcSfEbRASLg4Z64Z0rCHR8fv3b8hpmhAHQCowuB8hrUbIkAZy0wdSAUMsgsQ+pMkFCVs0EuJauEuQGRAT4M6DcOHaIS1oiDvhTTS42yC6IDkccjcovK6FhzMk0cK7yMh6ITELcQyEhIy+QHIfpGX59+9fiF52dnZ4TQmxF6IdEn2QKIC0EiCRAokOyDAPpDsOGXKAzJVAGouQdg+khw03DeISuMchAQK3Ec39yFyIRkjOhQcgRDskAJGtgCR4uGK4+RCNEMdDciikhQQJZLh1EO0QxRASUhBBFMAthdgIEYSTyO6E2wuXhTsVmQGXhehFNhZiF1wBnAFXCRfBpRKiAFk9nA0JH2Tr4GyIGmQzIWxIyEDMhCiGr4yBFKeQmIVIwZUNTgbEjxC3wVM1PD1AsgMbGxtkISrk4gN4FQAJDYheSAqBsJGDFBJWkGQGKf9BK6UhtkLk4CQ8NcBFIMog/RhIEQ+ZaoUUbT9//lRWVpaTk3v48CGkYoM0qCHsX79+QRwKqT8gEQNxGaRLAXExZBkORBxSKEAazvCwgDsG4jeIMyBsSASjKcBM7pD1PpCrk75//y4rKwvZrQghIQUKpBMA6RlDfPHjxw/IvYeQKXpIjQvpV0FKYUhzAe4GSBBDQgwSMZDghjsV4l/IkjFINQCZlobs7IJUD0JCQszMzPz8/JB6iJWV9fPnzwICApCcz8zMzM3NzcfHB7m84dWrV5CLHCAbNCFp5ffv35ArNCABDrEUUg1DCneICyEkxG0Q10LY8NCDhCpcEC4O8S+kQQbZmysABu/evYNIQcIBUpZBPAipxiAmwO2CxOP////fvXsnKysLme0WEhL6+fMnKysr5DYqyHJ3SDUDKdMh2iGhAfEa3IWQJATnQmR5eXkhpkEWY//48QNyWNj///8hlQokzUNSLGQXOGTpFmRNPmS/OzysIG1KSMKGpAeIZyH9aYgDIP5CdgaEDekcQIyCuA0SXJDcARGBpHlIawbiU4gaeNBB4hF+JiUkQiGhAeloQqaHIAkbkowhaiBugKiEsCG1KeQaEkhoQ7IAfLAKEkQQh0EUQ0Qg2uFxCkknkLwAKSggaz4gzWjIzAXkaiZIqwjSpoS31SDpBOJZCAkxH5mEi0PsgoQhhA1RBlcAYUAUQKyARBBEMTx4IcqQvQZJDJAsg+w1SPhDtEPUw/XCIwXCgBTZEPdA1EP0QoIOrgtiCEQZhA1xLSQdQsQhIsgkxChI4waihiokxAqI4XAD4S6By0KkIMkb7lmILmQ1kNwBOVgCrYELCQRI+ENMG2wA2SMQNiR2IO5EFoE0giGFAKSCg4xfQiIdTkI0QuId4n3IcAskQYJaqxBDIRogohA2JJggbAgJCWvISDJkUSVkggeyyeHTp09CQkKioqIcHBwQp0BqUMgmfUjtBekHQyoVSMaAuAySpSHX9UDGSyH5E1IgQlwC2eYP6RJB9g5BWtwQ90P8CXEnhISYDBFHJiEVLeSa+tevX6uoqEC2vkBKT3iKgXR0/v79+/79e8ioO+TuYUjnD3LeCCQQIIUOPF1Csgck2iAugeRqSD8AIo5c3MjIyLCzs0OueIKcRQU5S5KRkVFKSurTp0+gSGIBtZYEBQUhuQJiLCQFcHFxQUZW379/D6m0IN04SDUMudMXUihDChSIAyAkJBfBAxDOgAcdxDpI6GHKwsUhm5ogzSZubm4eHh7IgnmIOyEkZGQScmQrpLMOCWpIdoXUcwwMDF++fIEkUMh9hd+/f4dMD0P2zEDSA8RArI1ruMshaRXChfiCmZmZh4cHstELsiML0jCC7BeHtKUgA92QHjBk9/bXr18hJ05AwhmiAOIASOxDNELGpSFDIJBggYQtvBpGDnAIG1I7wutCiJmQqguiAOJ4eLqCM9DMhzQOIN1uSHsIUgdARpIhyQCSryHikJCBGwJhQJq/kCvFfv78CTlKDNKfhrsToh1SkcNdCx+Eh4wwQZI6xDpIkwKSYSFVGiTvQNiQ2Ic4BmIaJGNCsgZEHOI2IklI+oQEGiQA4RohUhBb4CQk5CGhCtEFUQ8plyDRB3EMvCUENweiEkJCDISYALEXwoaUWnAtaAyIXkwSklaRxSEa4QEC4UJIZGXUYpNtMlwjJBAghTOk4QVphEHEIR6BK6aWs6kIIG6DkJAUC0+ZcMdDkg1kfgrSiYIM7UDmiSHVGaQ0QE5OkEQFkYUUZZD8AirhIWUixAI4CS8+IDoh7oAkL0i2hDRpIWENGbKDqDQyMjp58uTdu3f////Py8sLuaoIUu9CjtCD1KCfP3+GJHGIjZC9WZBCBNJshyy/ghzhC6nmIQUKpIyGJ33IkU8QoyAkJD4gXoUogwcoxIWMjIyQcVoWFpbHjx+rqqoKCwt//PgRsukWsrkCvizry5cvkAobkmkhIQDxCEQlpCiHdNEgcyGQcIc4AFK1Q3qBkJNAIGtSeMEAcoqpkJAQpJqEjCtChr4hRRUDA4OYmBjEUniMQEo3SK+OhYVFRUVFTEzs7t27N27c0NHRgZxCdevWLQUFBciiYjExsTdv3kAWT0EOSmVnZ//27Rvk9qpfv35BbISMpUN2kUEKXLi9EAYkVcFzFGStIKRbCZmYgHQu//37p6ioeOfOHciRVZD0Cqkkvn37Bkk2kAQDqUch1TOkrhUUFHzx4sW3b98g05yQaxAhtcLfv38hi6gh7TNILw3iBkhBD6kIIVc0QjI8conGxMT04cMHGRmZo0ePQjbFMTAwCAoKfvnyBdI6gS8TY2JigtRGkD1pkCoZks4hW2AhzoaEBiR5QGY3ICNDEOdBHABRCUm3yCIQNqSRCglbeMqEbIiHZG9I1oAkJ8h2eXj1Bsn57OzskAEbiEWQlA9pnEGGSSDtM8j+XUjrENJuhuQLiDMgjQlI0w0yNA0xnI+Pj5ubG+J4iPlw9RDtkGYlJPAhdTPEF58/f/7z5w/kLi+IOCTFQtRDJkcgBkI8CA8HSFDAMw6EC/EUMgnPzhBnQNRD7pWBjDHA3QkPOkhkQTIjPBwgaRKSf+EdFEjhCCmv4I6EZAeI7yBuhlgNiQ6I2+CVLsTZyGkPoh2iBVKQQtiQIhiSQSCGQGThLoS4Hx6GEI9DfAdRiewYOBviAIiByCSkBIN7Ch5ucDUQjRCPoLkZYjWEhLsH4n6IdoheCPvv37+QHASJWciCUMgJ8xBHQkZxIKZBROAkPJAhRiGTcPXIglRko5kP9xGkyQ4JLog7ISohJCQ8IZEC6SpABqshl/ogOw/SW0OuIyCykGBkgSdEiLkQmyAqICQkoUCSDrIsRD2EhFeuIiIiMjIyDx48+Pv377NnzyDXkkPCHVLeQdIWZCMEpHSDmwzJ0l+/foWoh9gOzyGQqX54KoHoRe49wNVDnAQ3FiIOCVZIoQ/ZfPz79+/3798/f/5cSEjo79+/Hz58gKzl/v379/fv3z9+/Pj+/fsvX75AminMzMzgqhN09sjPnz8/fPgAuaIAUvdDdj8zMTGxs7NDvAapeiEjzJD90JALiCC7R+A1LqRPAKl04UUqxMEQX0DYEMdD2JDiDOI7FhYWbm7QNcns7Oxv3759/PgxOzv758+fIcdVioiIMDAwQEYmIXO3kPoPUpVCwhPZZHjkQgQh8Q6xFF7MQfIJJBIh6iGFLOToTQhbUFAQUpFAAgfNnB8/fvDx8UEOIYGc4gIpdyDBDumbQja5wutsiKUQ0yBdE0gZCgkiSDqGFBwQcYib0UjIOD8nJyekUIY4FRIskLQEScOQhgUk1UHKWQgJmQeC1LU/fvyANA2/fv0K6TRD8hgkUiDBAi+IIcUfxDGQ5AoJEEggQxRDZCFsiDjEKIjVEO8jdyzg2ycgQ7uQlANhQ7qw8AX/EJMhAQUxE2IavByHTAlBBtUhxkKSB6RxBnEMpJSBsCGOhIQDxEBISEJmpiBtU0g1DBn6gqymhAxlQfI1xDSIw9DYEEGIC+FsNAYkYOFWQxRD3AaRgpBwBRC/Q5RBEgnEwfCSBCIFKWchCxTgpmF1HkQWbhREO8SREEMguuD2QqTQBCFpAKIGjYQkGIggRC+EhNsL4cJJiDhEPYQNl0JmwKUgKiFSkLBC9gJEHBLLEDYkJCFsZHG4gXApSHKF5CaIByF1MGRZE0QvJAtAVKLZi2kg3ORByICkH4ibISSk0IB0riBzOj/AALJtFd58gYQ/PFQherFcdAgJL4g1EP/DSzoIF6IAwoYYCgnQ79+/i4iIqKqqnj59GnICoqCgIOT8RXgqhAxCQjq+EBdATIM3EyB2QapkSN8XEmeQvA2ptyAehpSnkNod4gCIkyAGQhwGIeHiEI0QQciBlA8ePODg4ODh4YH0eiFbLH78+PH58+cPHz5A7i2ArESFdIx4eXmFhYUhHYW3b99++fIFUrhAhlV5eHi4ubkhG0i4uLgg18lBqmFOTk5IvwSySxLubMgtAvDQhuRkSEkBdzbEwRAuZDwcHkr8/PySkpKPHj169+7dvXv3BAQEIPPBHz9+VFZWhnS+Ia6FBCak+QbZNwypLOEJAmI+hITkIkhIwkXgDIh7IHkYUiJDetWQ8VtJSUlIcwQSMpBiBW4U5JhSNjY2SPsGMncISQ+QNPPlyxfIlBIkScD7TxCXQxISZB0+vNKFew0SbsjpCs6GLLfm5+f/8OEDRBDSeYI0KSAmQMpWiDjEIoilkC7j9+/fIdUVJHFC5sIhLTBIGEKCBR5KaAwIFxIa8OCFCEK0w10FSQOQZA9J2JCghvTSOGAAsngKMhoGORYb0gnm4eGB7wKCmAkJfLjzIHUwpEEDaf1AFsRBkiu8UocnUWQ3QJwKOaEFHmgQp4LLnB8QD0LSM2TxBGTvAGTBFzz/QkIAEsgQ8yFBQSQJcQbERxBDkH0K9y8kJOF2QWITohLChhSOkGIB4maIOLIJEPUQWyDikOiA+BTuYIhjICRcMUQWYgIkdUFyLkQEohiiBm4aRC+yB5GVQWQhWtBIiJlognAuJBAgJLIvkAMf2QRkS+GGwBnIKiEmQEpjyKAUpMkIqYo4ODiQIx0SI5AAh2iEGAUh4eYPfgY8JCG+gGQWSCMD0uKHzH9BBo8hA2mQYIfELEQXPBygp2iheRs5UCDxgaYZIoisCxScjIz///9XVlYWEBB49uwZ5DAHyMghRDuk6Q3JnJCSF+J6SDEH2fAD390IMRySapEdDbEaIg7pIUFUQjwJJ+FegFgN0QU5VhMy+AbphL169YqdnV1MTAyykwrSlIMYDvERZJgR0u+EzOBKS0srKioKCwtfvnz5/v37HBwcoqKi3NzckJ4uHx8fZFgPUt1CusWQCW9I8QfP5xCnQpIsxC6ICMSpkEFdiAiEhIhDYhriQiYmJl5eXmlpaSEhoYcPHz59+lRDQ4OJienr16+vXr16//69lJQUpNqD+AJiC8QEyNwhRBxiGqRwgQcmxFI4CTl1C85F9gWkLIMcuMHAwCAiIgI5gRJSrsEjAsL4+/fv27dvIc0dFhYWyJnhf/784ePjg1TMkPIIknwhg6Lw2IfkYUihDwk3ePqBeA0SwnBHIvsFUijw8/NDNhxDAhMyOgLxPmTAFm4j5OZmSJhAaixIrQOZNIF4GVL0QDIkxECIjRCfQpwBcRhEHBcJ0Qsh4WogXIgLIQ0myIAzpBaGj0jDVx1DKlHIeD6k4MNqNcS1EBfC12R9//5dQEAAYj4kA0JyFtz7yK6CZChIpQKZPIO0UCHrPzg5OSFpHnJ0D0Tw379/8OY4ZAQCMjADSUUQx0BcCyHh1uFiQNwAaXUhGwIJc7gsJMFA0g/EFggbQkISP0QxxCLIDYwQNmSEAxK8yCkZEiZw70OiCU5CGBBZiI1wEs6A2A4nIW6GJHuIIEQlxCg4CRGEuA1OQhwDl4JELlwWKwNiIEQKrhFiL5ogRCUyCXEqRDGyXohGSMEOaddCwg2SSiERBA9niEYICdEIARCLIOzBQ2K6CuJySKEBT64QZRCfQpZWQEIA0mT/8ePH27dvIQUXJHwgJRUk+kBzwxBDId5GZkPMhYhjksgqIbKQO5G+fv0qIyOjpKT04sULAQEBiCHwCICkEogLIK6BpHVI9QzJVJDyF1LIQtwN6Z1AxCG6IOkAXgRDEgeyLZBsgGw7hA3RCGnvQ4Lgy5cv7969g2xbgoQpstcgQ2qQ4klISIiNjQ1ykgYjIyMvLy8jIyMfH5+4uLiioiI/Pz+k9oUsWoG4DRIyEIsgNxpBHIkcDpDyCK4SkuEhPoKQcC1wL0B6gZBChI2NTVpaWlJS8vHjx5DbFLi4uP78+QM5ollaWhpSAkLCHFK1Q8IQUi1BJiPhtkMYyCTEdogIJDogjRhIdEBmNOAhBuFycnIKCwtDxgkgQQpxOYQN2R8M2Q8DL5rZ2dk/ffoEmSOH2AUxHxIaEPMhbTV4wfr161dIqxOS9CGGQ5aJQcINYg4kxiFRAFl2DlEJkYUnLcjaK0jOgfTCIafKwI2CzBpC8h6kxISHDMQBEL9DnAohIVZAvAB3BkQQbiyECwkfOBviQkiUQaIJcv4UZDQFwob4COISSLhxgQGkEoWIw50BMR9iLNwlkNiEF52QXjXEtcjqkQ2BiENMgIw5QybjISdyQ1IyvBr+/fs3fJ05ZNoF0piAxCAkEULEIR6HOw/CxUXCgx2SiSCOgeuFuBBiBVwlRBbiEbSQgUhBBCHxCFkeAVl5BwlkSIsE7h6IORB7IdZBpODWQQQhXLhiiBqIdXC9cFk4A64Xoh6STuCycAZcFs7AIwVXg4cB1w5nQNyPRwtcCqISnpwg8QIpDCFnAEB8ARGHhADcFmRDIGxMKYj4wJKQeIFHHLJjkP0F791CFiJALhVkYWGBdDAge1ggY9SQQIOs+UCphpH9D18QBLcYEnwQ69FUQgQhg8Y/f/4UERHR0dG5evXq79+/3759C5lDhaiB9CEgHQ5IqQoZxIA4GnKABqRKhpgGiT+4XkjWhRSFkCwNuScH4iV4SEHUQ0iIFJwN8Tb8ZAyINyE7NCBZEeJNSL8HYt3v379FRUWlpKSYmZmfPXv2+vVrQUHBf//+vXr16tevX7y8vNzc3JBDp1nBADLnCqmGIU6CZG/4YZZwQUj2hiwBgIQznESOTojj4STER5AZaEjBJy4uLi8vf/PmTciyXi4uLkjxcevWLQMDA0jjBhJlkOWskAoDUuVAqmGIGuTQhrMh1kEcBilY//37x8XFBTkNAzKkgewYyHItyL41SGMIYhTECsgwNWSbEGQtA2SRFB8YCMIA3J2/fv2CXPkMCRBIjEDiCDLnDZmjhawvgxS+kDQGDy5IIENqFyYmJgEBAcjCJXgFDHckPAFAChSIRnhdiOwLCBsSJhDHQBISnA23HRLXkMCHC0IYkGSMVQpiKSSsIKPNkHlfuPkQF0L0Qso7yJQwZIQf7jyIRXASYiyEC2FDRrm5uLggQyZw7RA1EBKSliBhCxGBBCbEa5B2KuSEP0hrFSILuVkEsjscsp4OckMXJDlB4hHiTogvIIEJJyEWYSUhetHKPohGiJPgCiB2QaQgroJIQUQg8Q63HSIIiXRI0QTRDiExXQIJFoh2iGMgaiBsrLogUhBfQ6yDkxC9ECmIL5BFIMogdsHF4QyIOEQXhA2XQmNA1EBIiEoICVcG50KGfyDiEPUQNsSFcGUQb0JCFbLKDzJWBClbIB1BeN6E6IKQyMkJIgLxI8R8uF3IDLgyZEE6sNG8D3cnJEXBuRDnQXIo3HeQWgDeOYYcaP/161fIiR+QkIGUA4gzpeGpBGIisg/hVsJthchCVEJIyHEckP6WiooK5OpZ+EgvsnqIIZBNTRBLISUOJA9AqmHIkh9IXQvpnUCKHoheiGkQ3yInBYgsxD2QfjZEFiIO8QWktwrZWg5xLeTuHR4eHrhiSJ0Bacrx8vIqKSkJCQl9+PABsjJZQkJCQEDg8uXLkKHmD2AAaVvALYLEB6QChvgCXvlBpCAkcrKDVAOQWId4AWIaxLOQbA8ZA4S0EiCNLCYmJiEhITk5OXl5+Tt37kCyARsbGxcX17Vr1968eQPZQgbRCHEwxHeQ1d3wMIHYBYkOiI3IJGQj78ePH9++ffv371/IhmZI+EDKLMjFG5CM9+PHDwUFhYMHD8JTIcRrkPiFXIkIiWVIvcjLy8vDw6OpqSkuLs7GxqagoACZb4ZUsZBIgZPwQVrIXCPkQiFIcQ9JD5AtxZBghKQryLABpGiA3J0M6TRDVo5AQgPiC0iBArELEncQN0PCDV5wQ3IOPKwg6iERCichDkCOX3h4QqTgJEQLJPwhVkCiBkJC5g4gfWKI8yC2Q+pRyBJIcDcYdI0KZJ4FIgVxFYSEGA7xC8QKiO8gbREuLq7///9DdnNBkjEkkCFlMaRZg5z7IOkZ4hjIjgbIeD5kUgaSpyCXnELGPCCLViDxAs+VaL6GuBAeRPDUDheBM+Deh2iB5xS4AkiYQ5RBIhfiWUjygDgAogviEYh6iGnwAXNI5EIcCVEMiS+sDoMIQpRBnAEJOggbbhSECwlPCBuiBUJCRCDxBSHhInAFEAbEJRBZOAmRgnMxGRBnQIIF4mVI3oerhJsAYWC1Ba4YYgJykELWvULKH0i+g4QeshZIQEF0QdZRQ9IqBECigKC9yAYOBjaagyGhBwlbiO8guQzS+occkg8+LfAbZBIWMu6LmBuGhBGchPsQYi5amMIFIWHHwMDAycn58eNHXl7e79+/CwkJSUlJQc6XhqR7iGmQ1AnJ0pCNoeAOJCtEHLLDGOJcyFZUSNcKUkTCkybEakg6gBgFkYIHB8SpEO9BnAcRgZCQU4shhRFk5PP79+/v37/n5uaGmAZRBpm2ZGFh0dLSEhAQgKxhsQADFhaW27dvv3nzBnLbz8uXL/n4+Pj5+SGnR0EiAJ7cIXEAOXoCktogCuBuhhSdaI6H+xEebhD/MjAwQBajQvwFKQr5+PiEhIRkZWWfPn0KsQ5SDd+4cePdu3fCwsIQvZBRRIhFkLIAXjxBBCHK0KyGuJOBgeHTp09v37598eIFpAsOOdgZYs6fP3/Y2dkhdz9DSmFRUVGIaRDPQsyEJErIoWB//vxhY2OTlZXV0tKSkpKCrFOD3G3879+/Dx8+QBaXQSII7gZ4rEFGDiF9UMggD6RjBwkfiHqIdRCvQep1ZmZmyHI5iBSkyoGEJGSWF+JmiCyk/w0JNEjEQWyHr1SHKIaQkOIeknIgXoaIQxI2pASEiMAjFNI0gXAhboCQkGldSIMGUpxBogmiHdKYgzQlIe6ErMaHLNeChzPca8jmQ5wHcQzEZMhCVog5kBFvSMsJkoogIQAxAVJ0QkatIOohi4oha9YgTRzI+AQ7OzvkEg5IBoecaA3xDiSQIR6HWwTxNcQWCAnxBYSNSUK0Q/wCISEhAym4IFEPj3SI4RBlEClIloF7BFkKYi9k1AquAOJOiDMgxkKUQdgQcYgtkICFi0AYEEGI1cga4dohDoBLwcUh2iEkxBAIm2wSEj6QsII4GEKi2QhxCZG2QPwFKTYhvWGIaXBDIMtQkAXhi28g96dB0iHEJZB0DlFMpAMGUBmkhIe7FuJlSGxCXAUvNCCFACQ7QHIZZAKIhYUFklNAg9IQPXASEuWQYgsiCLcAwsVFQlbwwstoPT29U6dOQZz169cvyL6xz58/f/v2DZKlOTk5IY1uSEcKciEPZIUtpCiHrEGFtFghJ05DPAbxFTw9wattSOkA6fZBTtOEOBUSUpAU8///f8gCNogHIaOpzMzMHz58EBYWhoybQYaaIYt1jYyMICN1vLy8ioqKRkZGmpqaHz58ePPmDWT/EqRYfPPmDRsb279//yDnNEFmvJDrV8iGH0hqg5RukECAFN8Qd0JISIhBNo1Akiyk7wuPdUivAhJokFrq8+fPEhIS6urqr1+/hgSjkJDQ3bt3RUVFjx49qqCgAFmYBmlnfP/+nY+P7+fPn5Ag4uTkhBwBA6lvIGELCUlIvoWQ//79g1zKq6qqKi4uDjnSBHL1Mj8/P8QvkIneP3/+QI5DERERgRxEBUk/f//+ZWNjg2xVEhISkpaWlpCQ4OfnhwQvZG8SZKH19+/fIcOkEKshlR8knCHz65AhHUZGRkhzErKxGBL+kK1E8K3hEDVcXFyQbfWQky5ERUWfPn0KianPnz9DvAxJWpCGIMQuSOKEJB5Ikw6SFCEJCaILwoZEKyQuIJELj0qIFIQLT7HIDIi9EBISUJCeN6RIgoQAZHEcpMCCZBBIVcTGxgY57wXStoBU/xAnQeppiLGQOhLieMi8PsRYUOZnAd3sArELsnUbUm5C6h6ILRDbIdUSRCVEO2TLA6RPAxmZgKxJhIwzQe5QgXTTIaZBmuMQJ0ESOYQNcTA8iJADB5IOISLwITFklchsSP0KqRIgZkLCExIsEFmIvZDWAGSBBTygILZAHAmJdEjCgzgSohhiHVwWwoXYghbREC4kX0BIiGIICTcTrhcS1BBdEDUQElIaQ8o0SNEK0QvxCFwNxPEQLi4SYheEhHgBYinECoiBEKfCwwoSAhAtyMZCAhlSykFqX8h1vJA1CpBcBol0iAkQAyG+g4QkJIIguRKiCzIOAYkOZLvgbIib4VxSGXBfkGoOLvWQdIXpDLh6SDKDK4DfjAfJRJBuHmS9KqgygrsPkwEJOLhB+BmQiIQM9LGysgoLC0tJSUEONfz79y9k5w+kxETemgkp4CAFH6QIg4yYQ8oOiJMgq2MgxRNEDSQWITZC1EBEILUaxJ8Q18IDBcKFJAtIaoNogSQRyKpOSFEF2cIBOX5EVFT058+fkNVAwsLCioqKEhISkMXA8vLyL168ePv2LaTL/u3bt48fP/7//x9ShUCG6eAugYyCwh0MKVIhXMiQKdwxkIIAcvY1xLWQwgge658+fWJmZubg4IDsjIJENhMTk4iIiIqKCuQeRsjELQcHx7t37yAndUBGFCDjnJD8DAkQiBsgJEQEK8nIyAg5WvLHjx/Pnj37+fMnPz8/ZCstJAYhjoSYA6mQLCwsbt++ff/+/T9//ggJCYmJiYmLiwsKCkL6vshLKCF6Ie0MSJKDxCnEJZD8CZ+EhpxuBlnRCmlQQ1ZlP3r0iIGBAeIqAQEByJo7yMEaENMgDRfI6CsfHx8kwNnY2CBpD2I7vEiCFBYQh0EiCBIX8JQDKYkgiQfiTogtEDachAtCGJBIhLAhdkFKVQgJEYfohScDSMcUMuoAcSRksxYPD4+goCAvLy+kDwpZdQgxBxLLkJCEiMDTIcQXkOQHl4LLQmyBOBISPhASEq1wElLow0dlINZB+rsQvZDJMAgJybaQbAghIR6EmAZhYyUhoQHxMjzYIZ6CSKGZAFcDsQUSdxD1EBEICQlPiAnI9kK0Q6yDmAwxAaISohdZPZFsiHZIwEICExJ6EDZEFuJIOBu/yRCNkGIQopJIjRDFyCREI4TEFIe4Clkc4nJImoekf0ipAlnOBimxIWkJbiZyuEHYcPfDGfDQRrNrmHEhSQuSASGDVZCmPKQbAzolETnE4SGISxBP6ED6cJBMLikpqaqqevv2bcipOnBdkPUakN4YpAqBTCdA7IW4FRIx8GiDuAQSwZDIgyQFSOKGaITkIohGSEMMXpBBUg/cAfASFmIUpBRmZGT88uUL5Do8eJXMzc0tICDAyMj48OFDyK1K9+/f//TpE2QlFOToTcjRTl++fIF0F9jZ2Xl4eCAZGFKpQ5wECXG4jyDuh0hBBjkhbAgJcSrE/ZCFrJC6B9IcgWx7FRAQkJaWhvRgIFaLiIhoamreuHEDsn4b0uX99OnTy5cvRUREILuJIN19SCBDEgSkDIWEITIJDzS4kyDJBbJVGlK2QnpC8ACEOAMyOMzMzOzq6qqiovLo0aO/f/+Cz5kWgMw+QgIB0rmBbGaDuAGSNCFxDQkBSARBLquAjFtANsZA7P358yckgn79+vXs2bPz589/+fKFj49PEQw4OTkhhkA8BZnChAQpLy/vFzCADI38+AHa6gpJPxAbIdEHadJBhjQgZTdEFkLCiyEIF2IXhA0hISKQ0MNKQhpDaHUhpKMJMQESsJBUBAkciCMhMw4CAgLCwsK8vLyQMzfgy6chpSFEPYQNkYIEMiR2IN6Bi0CCCOJISPhDnAH3I0QKkgEh/oKszIJ0neGz13AFEBHILcWQAIQnObj5EDMhFkHMRCMhUhAvQwIEogBiC1w7RBAybgRXDIlBSNgipzcIGy4OMQSS1CEJEhIpEHGIRRASYgtJJKSZBQlbiMMguR7ChotDGJBggWiBs+FciAshgQDRDnEJxJ1wEiII8SOEjUxCtENE4JYic3FphKiBuAFCQsIK0g+GkJCsBElvkOIXohKuF8KAuAFiESQ0kB2P5iqIlmFDQnwNyXqQKhIy6AvptIBGpSBehYcChAHRBkkTaAogXDQSktMgSRxS8ioqKnJzc79+/Roy5Ajp1kBOY4AMgULOLYIMbkD6HJBOJCRqIfUTZPoKsnQWErWQRACxHdLLhIyuQDIMxPEQlRA1cI9AGJDoR04QEMWQDTN8fHyQDaOQPPD792/IvO////+fPXv24cMHSCHIy8v7/v17yBlVP3/+hAzS8vHxQVwCcQM8w0C4kJCEJDuIjZAQg8vCBSEu/PHjB6T2/Q4DkFF6SOn88+dPAQEBLi4uSFkJcYmIiIiYmBjk8GRpaenPnz9//fr17t27kCVmHz9+/PnzJy8vL7wpDUkTkIIeEjgQx0BKQAgb4myI2yA3OEGGUzg4OCDXH8E1QvwLSWGQWFNVVVVUVIRsXYevooKckwXJsZCxE0iYwM2BlKGQuIM4Fb5sHj4NzMTEJCgo+PXr14sXL16/fv3x48dfv3799+/fy5cvP3z48P79ewkJCVlZWR4eHkj4QOpvyAQqZPIV4kdIMoCkKEijEO4MiMch3TtkxRBvQkhITEG0QGITLgIRhAz8QkIS4k0ICfEdhA0h4akX7iSIOBoXshoZMhYNudQBUsvCtUMyIIQLWUQN8TWk0oUEO0QNJN4hKiGehZNw30E8BRGHqIS4B9KGg4hATIakEEhDBzIBBumgQwZUkfMFxF+QMIGEAx4SEjWQwIRohMcI3ASILCRfQNhwB0Pa3BBDIJM7EJdD0hiyCRA1kPIHEj4QEuI2uLEQLjEkxLUQK+CBBgkluCCEATcNDxceEZCogZsDyW5wEyAeh8jCBeGOhzDw2AJRADcEbgKcASkVIQfXQOaGII1vSEqDpC5INQzPMpBwgJgAcTwkNCBJAuJ+uBo0t0F0DRsS7k1IxoGnZJRBaeTQhwQimgj+4IAEKyQf/vnzh5OTU1JSUkxM7OnTp/AZKchpkfBeLMQ1kJILEgGQUQ5IjoKIQJwOyU6Q+IMnMkikQhqwkEY3RAqeZCFciLPhKQwyiAoRhFsBGQSGdIwgx/JBxjA/f/7MxsYmICDAzs7+4cMHyBA05GZ7SM/y////X79+hUx8cnBwQDIzpMEBMRxuEaTOgyQ7SO0CKffh9cTPnz8h5xBBrlD8/PkzxDRI8QF3P2T9MGQgCO5TSPZgZmaWk5N7+/YtAwODjIzM/fv3ubi47t+//+7dO1FRUcgcMGTiFtKPgTgJMpwICUaIa5FJiC8gs608PDwCAgKQKh8yWwwpziBFGyS0Ie6EdGEhw5KQ0UtIwwuyFAsSp5DsCtcFEUQmIVIQ70O2dUFmviGTGi9fvrx8+fLJkyffvHkDaX98/fr1+fPnP378eP/+vaSkJA8Pj7CwMCSgINMiIiIikB1ukCsjIe0D+HgDZO8cxP0QZ0D8BfEjJO1BkhyEhKRbiDgkQiHicBISjPCUCeFCzIfkLEjYQsQhIpCsASnaICLwagyy/5uDgwPSLoQMR0P6nfAKFZK6IBEK2eMEGbKGi0OGMSA+glQzcJ/CrYO4HxLskHQFV4PsYMhSAIhREO9DWs8Qx0PcABGHBBS80IGbBolfuPcxGZCwhZAQXRAS7lSICZAghZAQKUjBAjcQ4iNI/EJKNsioAMRJEPPh2iHBAiEh/oUogLDhZpLKgLgcTkLcicdMNClIAYjsX+RBRDTFEMMhPoKQkIjAVAb3BUQZhIQLQlwL4UICAWIOZOMiZJgTcq4RpBqGBBpa4EMshQwHwgs0SLqCd8CQiwKIdcOPhIQDxF/wwIQMuYGqYYgEMgnRACEh4nA2nAERRyMhNQRk/eqfP3+EhYXV1NSePHkCOSfy////kJ4Q5LhaeExAam5IVoHX05CGFSTZQQZjka2G5CWIZyA+Qc5R8MoJ7jx48oLYAjEKmYSohCw0gBgOWW8CubMIUgd8+PABUgNBJtvhm48hJ0DJyMiIiYlBBuIg20vgToIYDhk3g/gFcrM6pG8HSc3wnd2QSgu5moQsJodMpoISLDMzpJUDCRxIKQ8JzP///8NncIWEhCCXVXz48OHhw4eysrKQLcJ//vyB9EEhdQzEQHgmR8t4yEEE2WIEb1FBpvCRi3WIeyAu////P2R2FjLsDDlDG2I4pI0CqR0h5QXEFngNDc/G//+DdvRDSIgLIeur//79+/r163Pnzt25c+fVq1f8/PyQWfAPHz5ARqrfvXsHuRoLUvJCwvzTp0+QKPv48SOk5QTZ7ASZ2ofXOpDIgtcuEC48pUEcA6lXIO0niBSkeIKkLjRxeARBwgfiWUh8QQyHBAKEhDSMILZASLh6yJZ3yKp4QUFBHh4eyEEZkBiE9IkhCQ+SdCErqCFbtCGGQ/IUxGpIiQmJEbgzIDZCIhqSiSDhAHEDsvsh7oSLQDwOMQfiHoivIQ1NiI0Qu+AkRC9EC1YSXizAtcATBrJ7IOEPIeGuhWQ9SETAi34IFyIFaStA7IXohTgS0qCB2whRQB4JcSQkSCFWQMyBVDlwv0AEkRVARDBJiIGQqITEDoQNJyF2QZRB2BBDIGwICfEasjikuEOLDoghEGXIJKSb9PPnT8hOccjKU8jgB1Z/QYyFmAbRC1laDw9tSDsSEhoQQWTrhhMbHgiQMIGTkAQJ3bAEVwSPFXgQQKTgkQ0XR2NAuj6QUhgyvcrPzw85x+P79++QCxsgbSJIxwuSkiDWQVp2kPwPrx4g1Tkk80CyDbJLIKkKUgfDxSFZDpLUIArgvoUzIIohapC98PfvX8iMNQ8YQJb5QAa9IWkFshMDMisG6TFDdjGJi4tD1h/x8fFBagt4CQLpH0CKeEgfF7KDG3L/BmTY+fPnzxBnQIo2SKULOe8JMrQLqYDhFR5kuzDkTqpfv35BDvGH2AipUSAboH/9+qWgoPDz588vX77cvXtXTU2Nn58fsrQY0laAzLBCCk3M0IA4CUJCZDk5OSF1J9wlkFFHSDcXogZSP0GCGnJwDGS9MaTqhews5OXlhay3gkQ6PAdCUgXEHAgJMQeSTCGNGMhCyq9fv96+ffvJkyc/f/6EXBHx+PHjb9++cXBwQG6zgKy9hGR7SHT//v37zZs3Hz58+PHjx7t3775//w7pZULGXSChB0l4EC9DEg9EL8QZkJoGUlJA2JCUCVEJMQ0iAkmE8IIVrgDuKbgVyFKQehHSbYWYA1EGD0DIRLgIGPDw8EDWo0JSJiSdQM4Ug+yFgIxdQ0TQ3AYJcIjhEK/B2RAuvO6EOwmiAOJaiC8gIQMRgZQMkHoXYjikRIZkZ8ikPkQEWS/ELkj+hZiPRsLTElwXxHCIRohiSETAgxpSDUOUwWMBwoCUNpDghcxKwGfBIBZB9GKmAYhFZJMQt0FISEBBQhVuHdw78MCE2AUJYYgsJATgbEgihAhCzEFWDNGOSULMh6iElLpY1UCMhUhBFEPYcBIe5pC0Bzk5H7LfAVkvRD2kwIeYA1mfASkGkeeSIdEBUT8SSEhEQBIDpF5D9IYhUYsnFCBBiUcBpE0EWQsNmcrl4uKSl5fn4+ODVA+QCgZyoAck6UMyJ6QnAamr/v79Cz8EChJtkHodYiA8zcHjG+QB8F28cEMgHoGU+8iuhXseUqzDvQMRh9y3CinyIBUw5HJfZmbmp0+fSkhIiIiIcHBwvHr16sOHD9++fYOMSLOyskpKSvLz80MOlIYcOQJZQgWprSHda8jR9pAhAcjIM6RCghQNkECAlJuQ9c+Q4w4gU3qQQUVIkQEJIojfIRf//fjxAzLXDqmlIKdJQ+57ZmRklJGRefToERcX14sXLyDnS3///h1SyEJqcYhREBKeLJADDSIICStOTk7ImDAHBwekRIBUnJAAhBgCUQnRBem5QiyC2Au58QLua4jHIZUlZJoZYgiaAyDlO6RmgrRUvn379ujRo+fPn0PaAf/+/ePk5BQUFIQMt0CGbQUFBSENFMiObciBbpD9cpCkD/ECpNkE8QKk+IbYDqk8IN6BlFmQORdIaoSTkGQM0Q5JeBAtkGIXQkJCCSIO8SCEDRGH64KkbUgZDdcIcRIkZ/Hz8wsKCgoICECGoyHtJ0gFDBkShCQVSDUMGXSFdJEhO4sg7oessob4EeJsiGMgbEiYQFIIpEKCOBiiHkJCKk5IExmuC1K9QUh40EHKawgXkoAhpkHCE+JHSEhCTEYjIekErgUSFBC9EJUQEyBuhrgEohiSweEFAnIcQVwICTpI1EO0QwyERAEkQJDFIbKkkhCnQhwJ8QskX0A8AiHx2ALxEcRSSCKBaIf4ESILYUPUQEi4SggXPwlxIcS/EAPh6iGCcC6EAVEDCSVIWxyyIhUyKgORhahEJiFRDCmgIEU6pNXLwcEBiQ7kNI+scfix0YIIEn2QoAYNCEA8DOFDIhvSgkYWgeiBFGGQtAUxFCIOqcAg01fwrP7nzx9JSUkNDY1Hjx59/vyZmZn548ePbGxskHVbkKP8IVvHIEUt5L5GSPaAZB5IYoVEIWS/LEQcYjXE2RDHQBI0pLaGVIEQWUwS4ikIiSzLyckJOU5LRUUFcjEULy8v5MhcSPENuaJHSEgIsu4GcokNqC0HPjL0169fb8E3FkBWLkBOtIessYIMPkMqUUh1Anc/JKzY2dm5uLjA5zmCLnmFHOqJ3AmGpFTIgQmMjIyQjikDAwPkJEhhYWFIXxCyWfP379+QHaXfv39XV1f/////8+fPb926JSUlxcvL++vXL0jVCAlnyDFMkF3kkGYEvBSDBw7EtZABKEgZDclakKYuZFEupJSHxBckSUBKXkh3E7LbFR5TkNoUzoWEISRGIHrhiRASrRCPQ1rcX758gVxDCam5IaOIkIoKcpcLJyfn69eveXl5RUREIDUB5AJUyFw7ZIcSxEeQAgXSm4e4FmIdxHZ4OEAcBhGEHA8CKeIh3Sx4tEIG1SFdQMiwAbxMhBQ3kGYHshXwEIAIwo2CJDBIoDEyMnJzcwsKCsrIyEDm5iGtNMil15BDa9nY2CD78iGhAZmXhaQZiHsgsQDxAvxgHEhVColKiGLIll9I+wASKZBGDGT6HLIPAuJNSNqARzeECykcIPv4IZ0eyBQGpMiGqEH2MiQZQKooeCBDFEBISGKA2wJRA6nXIakXMtoECWdI5QoJ5D9//kCSNGQIFGIRZGwA0vdiZGSEjNZAyhNISoBIQdwDcS0xJGQ6H2IOxCUQd0IqOUgKhHsHq4EQWbi9cO0QxXBxiFHwAoSDgwMSPhBxiC5IPEIMhIhDkjokRUEMhCQ2CBviSEiTC6ISTiL7BVICQ9Ln9+/fIVkPnuogQ4PwcgBuMiS9QU7agUy6ff36FbKzH9JWhqiE+AjChrgEziaJAXc5SboIKoaUA/AghYQeZFgOq15IRGBKQZwHCRO4LCRgQbGDLAE3ApJwIVxMEmIKJBFgJSFuhWhUUFAQFhZ+9uwZZL00ZHqfjY0NsnQWknUhxQfEw8hFBsQEiHWQWUYIG5mEJBeIJ+GBBWmzIyuDsyGlDMTZcEFIkfT///9v3759+fIFcmMuxCWQHPv161eIRZD7zDk5OT9//gypkyBlAeTKIEhzD5KwICSkCINYCnck3F4IA3K8BqSjDEnckCoHEiwQT0ECCt48gjQ1II0YSN6DZFeIFZDOEKRvLSgo+Pr163fv3r1+/VpOTg6ysgaiGGI7JAGgBQhcCs6AOwOiHi4OiTWs2iGZHCIFj0oIFxKYEDPhboabCVcMsQsymgJRDJkiFRAQgJzXASn+IP6FHCLBxMQE6ThCFEBO5IBsp4aYDzcc4hKIIGb+h/gLLgtnQJqMkGoAEvKQ4gniWUg0wV0FcTPEIggbkjUgFTnETIgsvLKBFOsQR0IWpUMWoEEGafj4+CCdD0g6gWz/g8wyQBwGCTEICWkoQCbIIU6FkHA3QOyCOAaSXCEZB57wIKka4kGIXki1DTEf4kiIL+AkRDFcAUQNJIrhapAZEAUQEUgQQRRDggWZhKiBOB7iWkgyhgQdhISUaxBn//z589evX5CiDFI9Q7wAsRFiF8SdEL1w80liwM2BGAVxMMSREBKiACIOISHmQ7wJYcMTD4SLTEKkIIZAtCAbgqwSwkZTCRGkFglxDCSzwNs98IQHCQGIXZBAhquHBAVEI+TeWIiyIURCfASPAuq6HNEbhgcixD6sgQsPTUhSgLQiIWx4Qodoh7tSQ0NDQUHh5s2bP3/+ZGdn//Hjx8+fP3l4eCBnC0N0QQoCiAMgWQtiJqSwgyQsSE0GyTAQKyDicCdBuPA2IK5iFBKOcOfBGZBq/tOnT2/evJGSkoKslIYcEwGpIL98+QKp9iCLXyC1L2RFFaTogRS+kNY6xF+QchAiDtl/BXE/xFKIg3/8+AHZ/PPr1y9IHxpSxEC6HZBaE1I4QjpVkLVRkGXPP378gNxjjxwIkJqAnZ0dcmyWuLj469evP3369OjRI1FRUSEhIYj58CIYUjbBgxoSthAXIpMQ10JEIGogJDydQLgQEuJgSF0LyXtwF8IZEAMh0QFRDzEcQkLEIWxIVxVSnjIyMgoICMjLy9+7dw8yAwK5yBnSHYdkewkJCUjj7/fv3x8+fHj+/PmdO3fgBkJcCElsEDPhbIgUMglxADIJT1eQlAZZ/wUZZ4P7F+JlSLxDTEP2LMQ0iGJI4ENSO8QZkLYdZOwBMh8sISEhLi4uJCTEyckJmRWGdFUh4yWQBY+QnhzESRCfQkb7kbuDkF4yJDAhtkPshaRSSAUGSTyQng28MoMohmxzhHsK4i8IiRynkHwECQFI+QCRhauEeB9OQsTh4QNhwLVDXAhRA9ECiWKImyGRDskXEFmIOCRvQqIG4nj4olyIURDPQgxHiwKIOWSQEJMhZkK8DPELJDogKQ2S6SBegKiHOA9Cwi2FSEG4EDbEKEgKgVgBEUdmo1kKtxeuC2IgSSTEEAgJcTYkhUDCEzLrAckREDUQu+AkxEmQrgikYIfUwfD7WkhyzCABkJCnrmNwHt8BCVyIZfAghocvJINBSIhKSAUDSRYQXZBoExcXh9xA/OjRI0iJCTn8CDKxBxnYhBcWcEMgFkESH6TagJgMsRESuxBZuNvQuLgCCy4O0QjRBTEQsi3nzZs3kM4TpMSBVL2QBVyfP3/+8eMHvEEAqX0hRQakHIRkNggJMRlSqkI2REEyPCS4IAUBZN4O0jr5/PkzKyvru3fvPnz4ADkpEzJMDZmHhrgWsk2IiYnp/fv3379/h6x9FRUVhYcbJD9Dxg+5uLgYGBhERUUVFBTu3r374sULyPHXkAXt8DiCuBbS44QIYiUhDoDECzIJ8Q5WLfCghgQRxAQ0EhJKEAWQWICTEDMh0/+QUSDILX7c3NxKSkqQ/cGQPWaQNgRkolRISAiyU+7Xr18vX758/fr18+fPX7x4ATlZDJKK4KEEKVOQvQNxM2R0BKIYmYSohIhARiYg4x+QFf6Q4ROIGsjqBIhnIQkYwobIQkyAJGZ4AEIqUchKAshkgZCQkIyMDOQ+aSEhIcjdCZB6FzIAANn7D09XECsg1kESKqSignSXIdUwJKwgwQ6pFSBVF0QE7iTIKALk8jFIwEJ6P3AtEC/A4wiiHZKq4YZA1ECCFKISk4SUEpBIhxgCUQMJFkjChojASYgHIdkTUgdDXAUJQEiOgwQFxLOQOgOSQyFqIBZBnAcJPYgjIQkDbhExDIhFEO2QyIXogjgPLgsPE0htBPEvRCVEFx6rIa6FGwUJE7iNcEMgDIhiCBtiMi6VcDVEMiDBBWmNgcZRwY1BSDTBTYCogXMh3oSsS4XMhkAGeCD3iiIrG+QAkkrhIQmJC5LcDNeLVReiNwxXB2Fg2gQRgSQCSNqFsCFBDyHhdsDdzcTEJCcnJysr+/jx41+/fkGGCv/9+wfp7UFyBSTnQEyD9CMh8QdJUpBcBxmnhdgCcQlcDdxSSLJD5mKy4ekGbjiEASllfv78+enTJ8gR05B+A2RpPqS0hUyeQVrZEFlIOQ7xLCSDQe6phbgZshQLXjpDHANxPKSFCCm+IQEOGaV///79u3fvIFPFQkJCoqKikBNFINXkr1+/ICurIadUQmyXk5ODXO0MMQfuHUhQ8/DwKCgo/Pr169WrVy9fvpSQkBASEoKohLgHUpDBgx0iiIeE64UwICREPcRrEDachCiABBEkypBJiGvhEQdXhsyAbBSGFGSQwQZBQUEjI6Nnz569ePECvuQbcrAUZAr879+/N2/evH//PqSehqz7gwQXvLyDOwziVAgX7hJIgMADBzJOC1kDAXEJpBqGdBn//Pnz/ft3SEcQIgsZvIX0kuEmQ6yGpHMIG56eIeEAr8a4ubkh7VcVFRUxMTHIRRfwSw8hVkBSLMQiiBcgAQtJn9+/f4c0sCDHbEEacxDrIGELyXoQEpJ0IcZCZCHpEzL0AtkEARkAh/gFEgvw6IYYAvcCxBZIEQFxGFwlhItMwnVBGBApiAkQNpyEGALJWZBKDlkZxA3I+RTSSoZ4H9J2gYy6wSMF4l9IdEB8DbeLeAYkHuHqIY6ERASEDXEk3Ba4SjQGpCWBJggxByIICXlIqMILMYjhEAUQEmIphISIQJI0mghcCg8DrgXOgKQEiBaISyBSkECAuBAiC49NSAfmx48fTExMkI2L8IoconJoAWQ/UtHlKL1hZDsgORNiE0QcQkLSE6R4gqRjiBrkZASJG4j479+/JSQk1NTUIBf+QHIFpJEOKcggFkFKPYgVEO2QiISwIQUKPD1BBOFcCANCwrMTXA3EGbhIuHpIgmZmZv7+/TvkAEghISHIwnrInDEkS0C8DMnzkGId3leAGAUpJiDlKaRAhKRRSLjBPQh3HmRUAKILvp/4y5cvnz59ghyDBVmJDdmn9PPnzw8fPvz////Tp0+QNefs4HNFhIWFIX10iC8gnoUsXGJhYeHh4ZGUlISsW/n06RMfHx9EAYSERCWkmoHEBUQcjYTHL8TlEI9AwgRNJYQLUQZhQ0IGogVOwhUgy8LVQxiQOGVlZYVM8kFOBYFEgYiICOTockjwsrCwcHFx8fLyQhb6ffr06d27d5DTzSB9QUj4QAxEJiHOgIQbnISsLYKHDGTwDZJEIZ0qSDkIWYIH2QbGyMgIWUkO6QdDrIN4FlJTIpf+kEEgiCzcMRAzmZiYeHl5JSQklJSUVFVVFRQUIAefQfqyEBLNnXATIBkK0jKArNSDZDd4HQyPL4jVkFQHqa4gCQBCQrIeZPU+ZN0lZH8UpOkJCTFIBEFUQrIDpGpkggGIIyHK8JAQEyB6IcrgGiGOhFgHJyFuhgyfQKyCDL9D+vQQv8Obv////4csIIcsE4PohRgFiU2IFRB7ISSmCEQcogvCxkNCggISzpCUCfEOxFiICMQoCAkRR8sCECmILfAsCTEH4mWILuR4h9gI0YJJQgIZUxzNBKwK4I6BWAo5RAFNJUQKbhokECBxCl+uCDlPBtKbgqyLRDNkkAOIHyGhAYkvkhwM0Y6pBWIgqBqGq0BmQMoReMhCpCAlICQpINcrENMhjoOYCyEhIoKCgioqKnJycpBlTZByChJJkEQGmYuCZBKIRRDtkFQLGXlDTkkQNiRdQkyAsCF6IY5B64NCBCHNYWRPQTRCRCATcn/+/Hn58qWkpCRkGhVyExRkBhcyGQmZeYLYBRn+hezFghgFmS2GkBD3Q8ThLQ9ImEBshIQhpM6GDAlAlh1CguLv37/fvn2DXBXHwcEBaVd++/YNcpgc5PqgZ8+evXr1SlpaGlJnQIyFeBYiwsTE9O3bN05OTllZWfiN05AuO1wxpPCFOAziL4gJyCQucUhMQVQiq0EWR5aFqIHIwtkQBlwZMhcybQxphzExMUFuvoK0ljjAAOILyCAt5JAsyIQ6ZE3+ly9fINuU4ZUcJDoguiClOTxVQ/qXkEiBrESFDPuDh99Y4KEESf+Qo1ghh4pDZi4gLRXIgDYk+0BMhscmhAHxJnK5CfEdxGFcXFxSUlLKysoKCgrS0tKQxWiQAT2IvRDnwYMIuXaHFH+QjixkFxO8CwsPcEg6hIzWQlRCciLEqZDKCRLm4NAFpTrIqSAQLZAkDfEpxEyIpRCvQWYQIEZB3InpWbgIhAGxHZKjIdEB1wixCxJQEAWQnAKJO0jyhrQ8IO0hiHcgrQpIWEF2IkBaunBzIFKQNQ3wYIT7BS4CcR5JJMQvkKCAmAMJCkjMQrwAYUNKLYiTICkToh4iAsmJEKsh8QXRhWYaRAuEhLgfEjIQjRARCAkxFiKORkK0ownCuRDtEBJiOMS1EAMh4pD4gvsIIgVpFf379w+SYeHzKRDt+C0dzADucojfqeVUUDUMCV+IiXBrIFwICU8EyOkALgh3ECSdwbmQ+IDkYXFxcQkJCchND5CWKUQxPONBdlZAmvAQSyEkJI4hy5UhBkLE4bZDyju4INwvyIdWQmQhJEQ9xCPIaQJSnEFWZn348OHLly+Q8gVyMyOkjwVpd0P6rJDbhSEZD+5IiHcgM77wwVJImQXJTpACDuISiBsgPWZ4HQwpIyAFEOS0ms+fP3/58gWyqAHSA4YkcVZW1p8/f74Dg69fv8LHXZENh3jw48eP7OzsoqKikM0kkJsvIcogwQUJTLgIVgZywkCLYoh6SNkBVwZXAxeBKCNIQtTDnQTZWAIZDWZmZoZchggJ0r9//3758uXDhw+QmzR5eXnZ2dn5+Pggk9+QPigkkCGnfEDMhEQWxOOQddeQAh1S10K6m5D18JDaEVITQ2poSC8WUh9DGkyQRALZBQCJd0hEQ1RC3ACpPCBHwUAagnBdEGdAIh1SBUpLSysrK2toaEBG1yH7wiEugfgF4gt4KMFvkYK4Cp6tIGMAkMFYiAMg3oSMJ0O0QxISJLFBki4kwUCsgwTI79+/IYKQ2gUyAgRpSUPyI8RGiCwkeUNcCIloeKqApweIOJyEaIeQEFcha4fogsjCSbhTIRsUIb74/v07PFSRJ4MhwQJxBsSnEFmIXRBnQGyBsMkmIYZAwgES7xCPQEhIWEFcDlEJISHOgDgPq9VwZfDYhyiDa4Rw4SSmURBfQ8yBKyOeAdcIsRFNI8RVkCYaRAoeTZCg+PnzJ2RYBbIPE5I7ID0riPpRAJpoh4QCpDqBpBVIuENKK0goQ5IyXASiBVkxXASe5uAikO6CtLS0jo7OtWvXvnz5AtkGysAAWgIOyeGQBiwkh0NSMKRggiQpSHRCqk+4OMR8yModyAwWpMSB1GqQ0TNIooekHngWhfS8IdrRWnDwq1W/f/8OOXQJcpo0pFSCtKx//PgBqZjhJTjEFsjcLWQ7FuQuBsgGX0i9DjmfCx6YkFCCkBA3wK2AFPfwpjqkaIbswoTEAqTD8f///+/fvwsKCv78+fPChQtmZmYQb/7794+Dg+Pbt28/f/6EXDUB6QdDFp1BbkmC9w4hc5mQdhLkjDBcQwiQPgfECoizIQEI6fnB2ZA4hXAhMQVJM5DAhzR0IDEOUQMRh8QvxHeQ/Awfb4BUh5AjuyGDAfCQgUwYQ2o1yHT+v3//pKSkIKkLcnbHv3//eHh4IO1xyBGeEPfAoww+bg8fdobUPUxMTPD6D+JfOAlpREJSJmQ+ApISIIeCQeIREtoQlfC0DZGC99ggu9Qgk20QX7Ozs0MOnpOVlZWUlIScmQrJFJCQhwcpxNcQkyHNFIiPIL6D3IMJ6QJCtEBkIWEOSWDwrjxkszhk+xMkOiDKIM2IX79+QUpViPch2QpS7UESM6RtATkPDlLNQwp9iCEQd0JMgLScIGyILMRTkHwNMQ3ifog4hISIwLfn/f79G94qgjQFIFsGIGPRkBIJUstCBgMgJMQvkJCHBwXEfIhLkElI6YcsAmFD3A+xAo2EBA6krQOpZiCjTRBxCAkxFqIGbiA8v0BCHu4kSChB8gVEDSRsIQogshADIUZB1EDY8PIEkkQhJsMjBeIYiEqICRAzISSkFoDbC9GLHDUQjRASbhREPTweIfZCrouFHAbMwcEB2WUHaaXB4xRiDoUA4gu4IRCPwLmYDDT1mAqIFEEux4jRAokXXCpZ4EkKrgISjpBQhmRjCBtCwpURyYBMBkAOGhQVFX3+/Dmk9IfYC4l4SMKClFOQFIMZmpDIg7gNHpSYiuGOxPQ2RARSjmM6Hp57IcX9hw8fvn79KigoCMkAkOoQMr0BGYKGlI+Q/jEkvUKSI6RYhLgWkusgLQNI8wLifkithux3SOkAtwuuHRJKkNoRksMh7oSULJDq6vPnz48ePdLU1IS0MODKIKEKWSHMzs4OOSkMUqN///4dcooNvKCElG6Q2U3MwEHO58iy8IhAFoSwIV1SiN8hIpCogTgP4n5ICEAqM8j2VkjVAmldQSqSz58/Q4L3LxhApCBD0BADIbUXAwMD2ngAJOlCXA4JT0gNBKnvIf6FWA1piMBlIQyI4ZgkxEBIPMLjC9I2+vfvH+RoFMgiFEjihAQRpACCsyGJBxJfkATJwcEhKSkpDQaioqK8vLyQWhxS+kMGpeGOgbsBIgupFyFmQnwHCXB44oTkJkjBAXEVJF1BSIh25MEbiO8gshDnQayGiEB8AbECssYQEneQQIargSuD64U4A6IRkjghHoGIIMtCHAAh4c6DpBxIDQfxGtx2SGMCYhokbUAyKcTxkPQDiQK4YyCWEk9CvAMhIRbBQxKXl+F2QTwLIZG9iWY73HC4g+EiuFRCrIaTEGWQYgdiHdwEuGMgjoeohGR/ZCdBKl14yEMUQIyCxC+yYrghkLUUEF2QCQLIpu0/f/5AyhmIXjR3Imsf4QB0pjQ8quAxBKkRITEHKc4g4QgJaJKCDFJScHBwyMrKKisrP3jw4PXr1xBzIKkNUhbDox9SWSJbAYl4eCGC7Fp47QVRD8kYEPVwv0CkIFw0vXApuDkQL0OOxHr79q2kpCRaUEA6BJDLhiG1KXwaGNLchowbQ1wLEYFURfAAhKRFiBR8hBASyJAKAFLlQ5wKyQCQgIL4C1JnQMyHlCyQU6NVVFQg88eQ+h4S7P///4cctwSpGCBjQZBTpeAdBcjoPeQQRIgVyMECZ0MMhDgejYSrQWZAOlIQlXDfQbqqEFsgnoJEGcSz8CCCrCaD3MwI6UNDymKI1yDjxpD6hgsMIFOzkMPIIG6AxBqkFIbUuJAqE1I6Q7q8kB4wxDQICXEAxGSIkyDpASIOdzZEENIggFyNB9lfDkkPkDYTJL1BwhbibHhUQgZO4AdUQdIeHx+fjIyMioqKrKwsLy8vFxcXRD0k2CERDbEX4gxIfoFU/5AEBqmlIB6BJyH4VkB4UEBiBOI8SLxAnP3r1y+IGojJ8BwKsQ6uC6IREsiQSIHUwRBfQEyAl90Qo+BpFaIXbjLEgxDzISTEWGQSMlcFyWIQ0+Cn6UHqYMgKIMh4CcQ7kMiFhANktAaS0iDNFIgaZCuIZEPKJWR3QvwF0Q5pgsPTDCQ0IFIQEuJZSGqHhANcHNlMuDJIqQgxBxLvEPVoJEQ9PHYg6QQSL5CMA7ELYgIkACEmQESQNULEIV6AsCGykPQMyT7w+IUrgDMgBsLjC5L9IYUMZCAK4k0ICdc1yoAAUDUMYUECCEKCRqtZQB1lSMxBghhCQhQTT0L6N+zs7GJiYkpKShcuXIBUw/BkDU/NyOajpQZIgoCkOYgU3GGQdAZXAOdCuhqY7oRoxyoOaUVCkv7Xr1/fvHkDuZYHkhAhw18/f/6ELHT68uULfEQOso4XntshhkMyA8TNkJVcEA9CRODOgHgEXgFDQgOiBmIOxGtwErLpCzICDylx/v79+/z5869fv/Lw8EDKHUglBLECkhshVkNsgTgMMg0PKeUhjVnIrlyILrjVcAYkYUDKEUjcQRwJEYcrgzMglwRDci+k5IXMHUD6wRBlkMYBJNjhnfWfP39++/bt8+fP8KuQII6HhwCkmmRhYREUFBQREeHm5oaYA8nzEFsgZS5keyJEHDKKAGltQCpgSG8bohJiJtwiSCqCcNFIiN8h7ofHHWRcGlL9wBVAYgEy4AzJBZAQgxTZkFVmkG4uPz+/jIwMZCyah4cH4h1I5Q2xHVKtQtiQAIe0DCBzEJDDBSHNAojXIHU8xDrk0XK4vyC+hoxUQRI8JJ1A/AWJZYh18PQAYUBsh4xpQxI8ZNoeksIhy2iRqxCIjZBAgOuFGAVxHsQjEGUQGyHKIG6A9HohjQlI6oWnWEiVA0lgkPIKEsWQTAHJR5CEBw9wiAmQaIL4lHgS7h6I85BJSDhA4h3uBYgCSKKF+BdiF1wcwoUogLAh5kBIiAgkauBakM1B0wgJTLgjIeEJUQ+RggQIRAHccEj4wJVBAgriAIgUJN1CTIOkdrheNAakkISULZAkB2nyQu77gtgOMQfZ5WiGDGMAj0Q0P0ICH1TXQkIHOQFBQhwigiYL0YZmFn4uJB1wcXHJyspKSEjcu3cPcsUNxBaIXogauOEQBiTRQNiQaIawIU1aSNkEKa0gCQiSaiHZDJKMIIbDSayCEFnwkOdfyGJpyM3B7969e/78OWRsELJoGbKHGDL1C5mmgixahiQ7SFMRMvwLKT4gOROS+SHLSeC2QJwKGUCDeAdCQjwIISEOg4Q/nA1ZBwRvZECmSCFnWUDuF4IMjUJMgMc9PHghzoA4DzKdA3cJxJ2QDhzcOrIZkHCAZDlIuQwJDciUHqQbBxm4htyy/PXr148fP75+/fr9+/eQdViQqhFSx8CrTIj3Ibc4fPny5ePHjwJgAGmCQE6GgSQbyLABJMAhZQFEBGIUxLOQ0ICnc0goQdwMGfaAeB85GCGdTkjwQkhIEQOpOyHWQRwAuWcM0teERCLEfEidxMLCAmlRCQoKKioqKisry8rKCggIQAZdIakdYjukdoE7EiIIcRLEF5BBDnitD3EPpLkDCXl4RoNUXRBnQ6pPSKKFeBlSuUI2k0BMRqsjIVZDtEOanpAFE5BKHR5fEG/CsyHEqXBBiF0Qh0HSHsRYNA9ClEHsgpAQBZBEC8kskDoYUklD2BBnQ7I5xEYICdELcSEkdiCWUk5CKi24CyEOg1gHsRpOQtIAHhshKiEhAzEBEnGQAIRrhNgFJyG6ICQk0CAWQeIOIg7xMtwcCANCQoyF+AKy6xoyuAIpXeFpCeIvSH6BaEEjIe6Bl8OQ+TvIdgOISyDqkS2FiIwCUCMSEmeQ+IaEFyToIWyILJyERCfWgINEA6YUZJ8lJP+LiYkpKChcv34dsoYFYikkz0ASH3KigRgIjzZI8QfJt5A0AUmpcCdBSnmIekiqgidKiKsgFkHYmCSkOoeUQWxsbL9+/fr48eOzZ88g1fCfP38gtxNCDraE7F+CtP0hDUaIkyAkRATiF0jOh4xDQspoSAkLKVshJCQc4K6FBAXEIxA/IrscctsEpDKDLLaC3Dfw5s0bBQUFyJAdRBe8ewQZCoZ0TyFFNsSFkOlAiJshoQ05hx0zcCBug6iBBDiExKoSIghxP9wvkF4afOMv/Kj3r1+/Qtalv379GrL8DeIpyDYtyHUakM2vkHoRMh3+79+/T58+ffnyBXJ5lLS0NKSbC4lESHKF9IogwwMQ2yHVMCRBQhI5JFlCggviYLjjIZ6FcHGxIRZBog85YCEikGoY0uKBDJxAkgQkocL348rKyqqoqMjLywsICECWjEGMhYQwRAuy2yDiEDUQEuIXSDxCkgqkKQZJb8hqIGOGcDMhlRbEj5AmEaQYhSiApB944EDcAJeC5BTIgD+kyIYogPgdogwiAmEjkxAbIQ6DqIGw4SScATENMqoBKZEg1TDERggJadZAoh6iBmIXxC8QoyCVNJpdcGcQw4DohZCQ7AAPakhuQi6akA2EJB64RggDIghRBmFD3AwnIR6HxClEGcRSOBuZCzET4h64CZBkBvE+xDSIC+GKkY2CCELauJAFd5BlE5D2K8QZkLBF1oXMhuzCgIQ5pEUIyXQQNRA/Qtgjk4SEMKbfISED2rAEiSR4WCMHN1wzPPNjGoRfBJIBIFMFwsLCqqqqV65cgdxZBElJkJIaknogInASnobgDIjbICTEA3CHQcyBFEmQOhuuAKIdQkIEsboZUq1C8vP///+/fPny5s0bSGkO2Z0COUULsvoAUppDCgKIaZACC8KG2AWfoIKUxRAXQpRBjIWEOVwL3OOQYIeohAhCwgdSbcAbMZAiCbIQEXK/E2TLLEQ7pI8CiVxIHQZxFcQ6yGmFkElNyHZbSA8VIotJwnM1RApiBaTLBRFBI+G9JUjpANl8BVnyCsntkO7v+/fvP378+OPHj69fv7Kzs/Py8sKP2oFMKcGHtiClLaTB/u/fP0lJyW/fvr19+/bLly9v375lY2OTkJDg4eGBBBfE15AxA0jdBhGBBDgk/UCCFyIOISFpAyILT1cQAyG+g/gawoYEJiS9QYIOMhMPF4dUw5AuJmQKE1JIQZLB379/+fj4JCQk5OTkpKSk+Pj4IP1pSFkJMRaiHhKPyM6AWAFxBnyQFq4Aogvid7gaSKccPngDqWIhlw5B7MKshiG9IkiSg7QmIR1cSK0DCSXkMISEHqQ5AkmuEHdCzIe4CuJ3iB8hZsKDFM6A6IKYBuoogG8yhRgIb15DMinEdohPIXkB4iqIO+FaINkQ0u+HGAtJk5DAIZKE+AKiHaIFkiMgU+OQUIKUdRBZuO0QLsRTcD/CHYBsICQGIQkPYhSkeIEYBTcHwoBrhJsJsQIyLAyJO0jKgXgfEjKQEIOYACEh1kHSP8RVkJIB0kSDDNdBrIAHPkQjGgnXCwkKiKUQ6+CRDjEHQsLdPwpAiRwSUhASuZDCDCaICCQQiQ87eMOciYmJh4dHWlpaUlLy6dOnkD08kCwNSdBwkyEWIVsBTyUQF0KkkJMFhA3JKpDUDCkOICZD1EMSIq5BV8jwGiQRQ4oMyED0hw8fIFf/QgyBp05I2oLkEIjtkO4mvFhEVgkxFlL6wDMYJI9BjEX2MiQukEUgtkBcBT+eGtJogAz+8PHxff36FVISQXIjJBAgNQFEO6SJCqk4Ie6B9JYgYQvxAjwAIa5CJiHZFVkEbhGaIIQLmfWEjGJ9//4dckjnly9feHh4IOXmt2/f3r9//+nTJ8g+McjlklxcXJAGOKSbBWmsIGdpiF8gtQhkRfHjx49fv3799+9fSC0ODzdIUoH4DhIpkICFiMBJiGvhJCQRQki4ILJPIVIQEqIAYjjESZDKDOIGSIhBhiIgk7WQ+VcIyczMLCUlpaSkBKmDIRPzkPiCJAxIXED8C4lNiKUQw+FOgrROIKkR7hKILNyP8EiHHLoJiXdIrQ8ZmobMbUPUQ6bqIYkNYjukLIa4B9KEgmRqiPchaiAkpNyHuBAuAnc2JI1BmsgQQWQSYhrE5RASEoBwV0GqFoixECsgWQnSIIZHLnJYwdmQKh/iALiBcBuJYUCqGQgJMRZCQgIK4mBIkoO7EM6Auw2uHdNGuGKIFMSRkDCHiEC8DGFjkhAr4I0tyDlikAl7iN8hRsGVQRwPaa9A0hvERogLIWkAUqFCZCEJDDL7hmk7xBzISBV8mARSAEJKYLjjIc7AasJIBiyQ4XtI9EAqKggbMnZKfNDAwxcS4hASUvH8+fMHMtr5/ft3CQkJbW3tW7duff36FXLgPgMDw9evXyGHVUGsg2ROCBsSwZA1RJCUCkkQkHQPz/aQ0gTS2YK4H64dogtSEqGZDFcDMR8yswgfxmRlZf3y5QvkMDzIeYqQowwgPoXsa4IMWUPCDTLCDNlyCrnXFrKdEZ4Q4VULJLtCcgLEtRAS4h540CFzIYKQqhQSJiwsLN+/f+fh4ZGVlYVcCP/p0ydIbxKuEeJsPj6+Dx8+QFaT/v79G3KRLWQoG9K///fvH8TvPDw8nz59goQAJMtBpiohA8WQkIe4BBL+kIwKCWFIXMOzMScn59u3bx8+fAg5VPL27du/f/9WUVFRVFRkZGT8/Pkz/DxOTk5OERERyDHjkDwPycCQCWBIxQZqMLKwQM4hh4QqHx/ft2/f2NnZpaWlIWu/IWvUITXKnz9/IKvYIFcyQ6b8IYZDihhISoAnG4jXIDELCV4IGxIvEE9BSIg4xMsQXZAAgXS2IIEAaT0wMzNDpi0h0QGp9iCdJ8g9UbKystLS0pAzwyE3B0PaiJC0CglbeB0DsRFSVkI8AqkAILZD3AaptyCykAYuxBBIhH4DA8h8CgcHB8SbkBVtkFXHkKQOGfiBVNWQsIJYAUnkEHFINQxP8JAwgaRneGqH+BoiCKkeIBEHGYCBNK0gwQVXA9ECsQ7iF4i/IOEMyT6Qi4Qhe8Ehd51BDIGkDUgoQUIG0tyBXHACMQGSaCEeh9iFScL9giaF7B5IdQ6JSkgIQ9wGcS3cDXB/QXwEMRDSCoGUABBzIK6FNEYh8YssC7EX4nJk8yG2QGQhzS9I1QtpaX39+hWyfA+SLCGOhBgCcQbcSZA2MSRaIckV4gY+Pj5IeoAMpEEyAiRpQRyMZhp8ryOkGoZ0XSBnd0AiCM1eSAaECCIDXOKQdIWsEj8b7kH8yiiUhdsCCR94jMMZcAW4LIKkN+igNHKYwo3ApZMkcUhygZgP6XEKCgpKSUm9ffsW4gJIZoZEMLJiiBZIFELSH8ReuBpkLqZv0ZTBFUMYmCSyeohpEBKSuCGlJKRdCSnTIRkAkmQhrXK0uRBIYoUYAqk+IbkLHmEQD2ImO4hnIYED0Q4hIW6G7HGCDNhCkiYbGxvkhl1mZuavX7/++fMH0qeEl7CQwh1yMzxkWzMkc0LKEciwxIcPHz5//gwprSALaCEOgFgBWcYM9z4kV0PcCamhIbXFnz9/IKdhf//+/eLFix/AANKJ+fLlC+Tcsffv30MG/H/+/Ak5LhFyvA4kJOFmQkqoP3/+QFwFqVwhKiFd+e/fv0PWrkOqBMhpeZAGHyQBw8Mf4ink+IWEPJyEBCxEF8QByJECCXy4CNwcSAKA64WYBikQIekBMhLAwMAACXlIVQc5r4OTk1NSUlJCQoKPjw/SD4b4FzK4DTEKTkIcAAlzSKRAKhhIQoLIIjsDIgJpYUC88+vXr69fv3779u3Hjx+QSXfIIkRIwwUSQZCDxuDZDVJNQiZTIH6HpARIwxfiQYgDILJwB8Bth4QnhISEFSSnw0mIFNoQDtwcSK0P4UJCFRIgkOvIILsV2NjYILeQQbbqQQyEhyTEeRAT0BwJESSJhJgA8R08DcCDCyILdwCyAoiz4Y6BMyBq4CREGaSIgPgdEnfIjoTYDhFBk4Wk9r9//37//v3nz5+QkTnIdAykaIXoQiMhBkJCDN4ih/ShIQkA7i+I8+AehHAhspD8BUlFkNIA0naHNDjQbBw2XEj4Q0KAEk9BogB6wxLcOEiygHMpsQCiF24gJP2xs7OLi4traGg8evQIsnMJnpQh0Qm3GqIeXjpDKhWIoyEkxHxIrx1iC0QEk4SYCSkLMGUhIvBSBpLUIIKQEWDItlR4aoaYBk/okJwDSbWQigrZKHh6hUhBSEg2g/sC7lO4pRARiAK41yAMyAQkpKsH8TszMzMPD4+QkBDk7AjI6V0MDAyQpRYQB0CatJD1ZZDZVkg1BnEqpLSFrFiGnEIMWecMqbMhroKvgYIYC/EvZNcsJPN/+vTp5cuXj8Hg3bt3kOOr2NnZBQUF////LywsDFk+9vbt2////3/9+hXiEciZi5CwhQQspI6B5+qPHz9CRFhZWbm5uSGnAUAOEfv27RvEd4yMjEJCQpBrm1lZWSHFCiQ5QcoCyAg5JAAhWiAkPC/B0waEAVcJUYacJCCRAgkTCAlxNqSCRJaFGAVxBiSEIUMOAgICQkJCEhISAgIC3NzckB4npA+BbCCEDTEQYhTEIkh1DhkegExMQNRAZCG6IB0+yJpw+AYwSHsLkrQgfSDIQj+IC+GjI5AYgSiAVLqQdg8kTCANSjgJScmQYIRYDXEqhA3p1kPMh2RkSAsP3oiEdNnhpsG9APERhIREAcQKSFsE0reG3AgJ2RYPSVqQeIfoglgHMRBCQsyBOIwMEmIIJBAgPoIYAg8BSCKBKICQEBshAQ4hIVogRsHVQ0yDOBi5fIArhvgIoh4iCDcZwoBYB6mJIfkakuAhc/+QETu4Rog5EC0QNmThHmSsAqIRsj4LrhEep5BhFYilEI9DHA+ZToZ06Lm4uCAn0EHKFmR7hyIbHllwx8OjA1kKLghXRiQDohFaDaPpgcihCVLOhcyfiYiIqKqqnjt37smTJ5ClW5A8BiltIRUGJH0g2whJNxASTRyZCwkaiIEQcWQ2PD1BpJBJXIkGcigMZEQX0r+B5ChIiw/ChnQOIOkS0jCHDO9AfARpZ0DSNKTOhjsSkqAhhkBIiJPQvAlRDynoIdUhpBqGKIZso3r9+jVkHAlyCOK3b98ga49//fqlqakJOQ4CslAI0rWF6IIMRkE6xxD3//z5EzJBAHEPpKZnYGCAdGchw60Q90BWXX379u3ly5d37959/Pjx58+fIW0CERERiE95eHg4OTnhe5TfvXsHGUuA1CWfP3+G2AKpXCGRDin0IUUtpIUOGZCAjPFycXFBQh6yqxiSfri4uCBnbkPSLST0IGxI7EPYkOCCkBAvQGyExAKyGoguCAlXD1EATycQE+AkxCOQMISwIQUrpEaE+Bqy8FtUVFRERISHhwfSD4YbCEknkN4hxASI1RB7IdM6kBVqkHwEzykQZRBfQNiQEIAUr5BtXZDbqTk4OCBXdX3+/BmSaOGbqiFDC5CBE0hKg7gf0kKCGAuxAuJHiDjE+8iycO9AQg/iEggJSRKQmgYSLBDPQgxE9jJEFmIsRBxexULmSiCbxSF350EaExDrILUCpF6HeBDuQkwGxHwiSYj5cGdAIgViESRYICIQn0JIiI0Q90PYEJUQGyFOhZCQ5gVa+EAMgSiGJ1RICQZxDMRMiPkQcch6QEgTDZLYIAUFxG0Qo+BsCANiCySpQBa+QTYmQBpMECsgGiFsiC5IlEHEIXohtThkMwKkVQRpAUPUEE9CzCdePT1VIrsNwoaECSRaISKkugeiCzQoDdEJ4cPZcAsgImSTkBQDcSikyc/NzQ25mJ2TkxNyIDtEFpLtIXOBkMwMcRKu6ITIQhwGcS2EhCQsCBtCQtQgq4eIEENC5pt///7Nzc0NOSAa0mCEF1WQiUx4qQRp6UMKSshgGsRfcAWQbAN3GJyLnLLh2QnSHYGHD+Q2eIheyCQ0IyPjhw8fXrx4wcvLCykU/vz58+zZszt37ty7d+/r16+QUTsFBQXInhlIL/n169ccHBw/fvyAnEYCqeG+fv0KmXKD1PSQTVYQqxkYGCCLkCEbjSBLlJ8/f/727dvHjx9DPMjJycnDwwPp9v38+ZONje379++QDuu/f/8gFydD7maATNf9/Pnz48ePkHFRyG1IkMIXHn2QkIE0ESD2QiohSDX86dMniIMhu2+5ublFRUU5OTkhqQVSKkFm7OBegIQbJNLhiQHOgIjDSXi6hYtAzIGoh8giGwiRhaQKSHkKCRbIEi1IM46dnZ2bm1tISAhyISPEv5DaF2IgvLSF+B1CwgUh/VrIwY2Q3ipkhgJiNZyEOBgSp9++ffv48SPknhLIwdGcnJxfvnyBXAjBzc3Nw8MDSaXwFQPwBA/pEkF8BK87Id6HuBliERoJDxN4FoZEKMR58EQOF4T4DlK9oRkFsQsSCJDwgZT4zMzMkNQOH9+GyEKsgJCQOhjeUoG7Cs5As4sgF+JgiDuRHQYJH4gIXA0k+cFdDrcUIg5XBq+DIZMRkGQDCSKIgXBXwbVAfAo3EJLGIKMOEDYkzbOxsXFxcUEmcSBaIEZBjIWbBgl8SDcaMosBOZAcXgdD9MKtgxgC0QUxCnIaIGR6C2ICZH4K0nzH1Ag3YWgxIJ6FkHDvQwKcKn6EHt8BSbsQC+BsqoQUPCIhDMhMHh8fn6ysLD8//8ePHyGju5AcBVneDHEGPI1CEjpWx0ASOrKDkUMKHkAQqyHG4jENbgVcI8RkSEcBMogKWcsKqfAg0QCZEoYYC+nJQYbaIHohmQqSwSAiEDdDSEhxBmFDVCJbDVcPqekh6RsySw3ptUB6NpAdOy9fvoQc1s3FxQXp9TIxMXFxccnLywsLCzMwMLx//x5yKQXkusBfv35BRqEhLXFI4QvpvkPu6IYMaUIshdRtjx8/fvLkyZcvX379+vXp06f3799///5dVFQU0i2GrAqBu/nLly8Q90CuZ4Cst4JMHUGWb3z//h0y6A3pGUMCAeJ9SMBCYg2yygzSg4csxYSMK0A6ypBjL799+/bq1StJSUkeHh54hQGZGGNjY4PUVcjBC0kkkCIVYgty1MNlIX6BcNHYcPXwghXuckicQqyDxDukkOXk5OTl5eXh4YHM3MPdCVEJSZyQ1hvE+8jikMYT5NwYyAILSLxAylNkqyEOg7gK0tCB3C4KWX/OyMgIqZg/f/4MmZiHBztEC2TdNSRqICkN4gWIk+COhIQJhITYCAkfCBsSsBC3QUhImCDbBbEO0jaFGAuvDODegZsPz1wQ8yE1DbyihQQUvCaAuAQSvBDvQHRBxCFsiBUQNpEkxFMQR0IcD7EXrh3uU4hFEM8iq4ErgDAg5RtEMXL4wH0NNxkSPhBdcPWYspDCBzKnwAkGkAYrXAtyUofYAp8QgfSDIWNdkA40xHyITyFsSKsRHnSQoIC0jCEnEEBSFGTIEO4jiEVwEwgySFVP0EAKFUDcAyfhDMioDKTwhKRPSiyCHmYJD1w4A2IfJUbD9UIKcUh+hkQPGxubmprauXPn3r59C+kwwe2FxC4kjcITAUQWQsKNhTAgQQCRgrgZkl4haQ6SGSDiEPX4SYg5EBKefCE1FmQeFFIjwkslSOsB0uiGVH4/f/6EJG5IuQAxBOJIZKshDoNX5xADIYIQZZASCmI+KysrOzs7pL7///8/Ozs7fLr6y5cvkIHljx8/vn//nh8MFBQUJCUlf//+DWkRCwsLv3jx4t27d5DLdyGHk3z//h2SheApCRJu//79gyzngVxPBlmA+uvXr3fv3l25cuXhw4ecnJzCwsKMjIyQxT6vXr2COxjS8/vx4wekAoaMHHJwcPDy8v79+/fdu3eQpfKQKgSyOgmiBlIxQ8osSGqBRB+kKoV0iCFJAlJzQ0YL4G2Rnz9/vn///s2bN5AbESA9RchwK6QahqQ9SPBCIhdSqkLiBWIXXBzChacZuDjEmxAuhA1XAykoIYKQqISzIQuDWVlZ+fj4eHl5OTg4IDUiZNQHYgKymRBHQgyE54V///5B4g5SB0MKSojjIRZBSGSXQ6pbyMw6ZNAeYiO8cwxZZgwpNCF78yBDxJB1dj9+/IAMm0MGGCHJGEJCXAvp7ELshZAQcUjNB3E5xHcQXZBIgaiBiEBSOKRwh6uHeB/ZIxDFkBiHpCtIrwuiHZJmICKQOIU4BhLjEDaERLYaIkISCc8dEE9BYhkykIBmDsQiuMMgXGQPQrwMMRCiF2IaRCVEHMKGkBA1EHshbEgpClEJISFzZz9//oTsYIQ09ZB7ycjaIWy4Rki3ATL4Aam5IXkQYhckRiAJElJWQMIZ4iNIyxjSleLi4oLMZ0G4kPQJsQti1FAkIe6HhBWEhAQFxI+QLgG8niLDg5AohvaG4QZBRCE2kWEopha40yEZA2I+MzOzvLy8mJgYLy8vZDEOZLgJYi8kgiH+hyRQSN6GiMCtgBgFTyUQcbgauI8g4hCT4bJwQTgDYho8z0O4kOIAksQhnSqIekgeg7Dhs5iQNYqQ0RiIr7G6AdkKiOPhfoRwIcZCIhgy1wIpMSF11c+fPyHzo5B0ANknwMbG5uTkxAMGkM1LkC4mJycn5GgOSHHMzMz88ePHT58+QfRCms/wig0SBZAeNqQxAVmu9efPnx8/fkAqb3Z2dsiEwvv37x89evT582f4QD0ki7KwgLbAQY7g4OXlhewE4+fnh1TtkPYEpFrl4eERFRXl5+eHtAYgpSokcODhAA8ZSOcGUvpAZCGjYZDyF9LJ+/Dhw8ePHyErwiAqIa17SLsVogsSrZAQhsQRJIrhJEQKmYSkGWSNyLKQdAURgUQ3xCKIAyAikBFCHh4eyLwGpDMHSTaQXgjc15B0DjEBUthBvAmphiElLKRBBslNkAIdoh3iBgj5////z2Dw7ds3yCImXl7ef//+ff/+HTKlAlljDFnUBmk2ffv2DdK//Pv3L+R0HUZGRj4+PriBkKIZkvIhwQUJGYgCSPhAXA4RgTSbICKQeISIQ3RBRCCNAEgYQkZiIOEGac9BanqIOZBtVJA1bhB3wisMSHEBWVQIrxfh9kIshZMQd8K5xDMg0QFJMxBdECsgIhASIg4hIbIQEuJlZDXIbIiTIC6HqISbAGHASYgsRD2EhJgDyey/wADSyIM02SFBCglqSLkECWo4CUmE8OYsPL9A4hoSF/DUBbELHvWQzgakDwAZ44TMRkOWziF7HO7+ociAhDnE7xASEnrwxAmJOAq9hpgbhhgEsRUe9BBBZBKuAFkQ4jJkEUgqgUQzpCH8588feBRCigYLC4snT548f/4cMg0JOT0YMn8MORoN0tSCFKOQZASJXbjhkLyB5lqIGkjTHtIig6iHsyG64GEKUQ8pXyBGQaTg+R/imHfv3kFOIIGMS0P6FpCqC9IPhnR/IXZBrIC4AVKFQOZpIGyIGkhJCjn3ChKq8L4vZFsLZHwJ0n+CaITM0UKuKWRgYPj+/buMjIyqqqqMjIykpCRkvRKkzoYcs/Dy5UvIZVBfv36FbNWFrGaEVIQQQUgtCBmHhJgJWQUNyWCQ2WjI+CQPDw9kBvHhw4eQkzcgNTQrKyvkJC+IU+GdXUjEQep1yLAVZOXa////IXt4eHh4JCQkWFhYICdTQjI/pPsFqX7+///PyckJGXmGiEBSGqRkgeyx+f37N6TJ8uXLlw8fPnz69Imfnx9y1DZk6yRkeSck/UCsgMQ4JBbgJIQBiQiILZD0jFUc0wRImQXpf8DLNUhwcXFx8fHxQToKkATGyMj48+dPyLEYEFsgFTbcLkj1DDm4FBI4kCYR5PIlSEqGa4Es9YI0pyCtri9fvkCONOHh4eHn5xcWFubg4IAkD0FBQUjbDtKlhmy5fvfuHWQZATs7+6dPn169esXIyCgoKAhRA3EhxOVwNoQLDy6IOKRohmQfiCMhMYVWVEG8Cak+IakFEnoQ7ZBE8uPHj8+fPzMwMPDz87OxsUGOGYf3t+AGws2HxC/EGZDog7gNYhfEtXASUi5BFEMUQEiIRog4GglxLST9QKoriGI0jfCEAfE+RA3EKIgI8o4PiGJIyYPmWmSNkIiGaIdYB9EIaYKzsrL+/Pnzw4cPkAUZkDEMSEkLCRz4fBOkwIE09SBrOP79+/ft2zfIOB+kIII4D1I+QNwALwcgoQfP1D9+/ICsz4BsYeDj44M0niCtTEhUQlwO8T6NSEiwQJwKJyHJCWIjJGAhJEQEK4nmVEgahghCCnNIdQARh2wrgIQSJC7gZhK0CK4SmQHtDSML0YfNzs4uKioqKyv74MEDyJ2ykBWPkDob4hlIAoUkJkjrA+JnSFqEhxE8zaG5HKIYHk+QSIKHIyRVQUiIgRDtEKvhJET9r1+/INf+QFoJkLQIUQ8xFjKwA1EMcQ/cZIj74Yoh4pAWPaQghtgFqYMhewwgA8KQ3g9kwRTcF5DpVUjzE3J3pKKiImT9FCMjI+S27ZcvX0K6v6ysrJAdll++fIHsV4EM7n3//v3NmzeQJU6Q8gXSkoC4HFJVQ6pnyBKq////8/LyQm4ShLQ/IDuRIMU0ZDgL4k5IjQgJT0j/GOJxSFxAwgoSAvAaC1I6sLOzw6tbSIBAWgOQiWpIzQEJXoghkI1JEDakq/Tt2zfImVyQrjykQIFogccXhAtxAJyEGwIRgaQrSIELYUMcD3EVxGtwLXAupOJE9ixEF2RgANJHgUQiJFdDZCHmQFwFISGhARGHpDrIKAtkvB2S8yGyENdCcg1kKR+82v7w4QNkizA/Pz8fHx9kxAKyWhvSnoMkPMgON4ir4IkNkg4hAQ7xDiYJCQqIA+BsSFghl1YQP8KDCNMcuEcgRkFISBX79evXd+/effjwgYmJiZubm5+fX0REBLITBr+BWG3BFEQ2BJkNcQNEPSRGIB6E+AsiC1cPkYIogwhi9TJEGcSzcDbECqzqIVL4ScgyAsiaie/fv0MKBMhKeHgigZsA2QoMsRqS3yGJENK0heRTiAch7oFU1RDPQgyB+w5SqUOyKqT+hvS8IQogiiEWQdhDnYTXO5AwgYQbJMQgWZUqHqd5NYzsSniUQOZEJSQk1NXV79y58+3bN8hSUkgSgaRXSLKAaIGXcZBUAhGE1BnwYEKLe4hKSEhBDIQM0UD0wlMYRBlcEKISkq8gBkJs+f3797dv3yCrTyEzwRAnQaoKSEEGUQ8pviG+htgOUQOxCFIlQxqMkDVQkDwDqZUhZ1BAeoqQghtSGkIKJkjgQNz29+9fbm5ueXl5dXV1bm7uz58/Qw6M/Pz5M2TnwLdv3yB3QEH6QBC9kB7Gp0+fIAvUIf0neNMe7gZIUvv9+zfkqGdIFf7u3TvICmfIfDPE8fAcCCncIb6GuBBSC0JEII1TSP0NCWGIOKTRAAkTSPhA3ACJU4hKyBQvZAk0JBwg+54hbQ7ICmrIgWJ///799OkTZBMUOzs7pAEBsQgyow8JBIjhkMiCWAFJDHARSIxDKhWIFMRtEDY8qUBMhuuCBBpEEJK8IQELab5AJhTgJkMSCcR2iKsgbIhpkPF5yDFtkOhjZWWFbMeESEGUQbRAjsmEDM5Dxq7fvn378eNHZmZmTk5OyMAA5OAOSGsJMrABcSEkfULqXcjIOeQMJvjJKpCBX7iXIQyI7RCfQsIEEuMQ96AFL0QLxOMQNlYSYhqEhJgP2YoKWVcI6RBD0gZEDYSEGEXQcIgjIYqRoxUigkZCTIabCYlWSN8OYg6kbwDxLMSpEBIiC0kqEEPQTIaEErJiSPjj0gJRCSEhhsMNhLgKsvfhKxgwMDBwcnJCpoThiQSiF+IYiI+QC1WIpyClIqQxBxlRgORlSDzC7YUYAnEAZHsFZMgHsrsJsn8dWQ3Eaoj6IU3CEwzEF5DcCmn0QBIkcnqAqCGDpHk1DHETJIbgXoKkAH5+fnl5eXFx8QcPHkBWk0LmiSH1FmRYFVKaQ1IGcppAjmYIG2IFRA3EIkj6htSRkIIPkhYhapBJSM8MYg6EhDgbcngTpKcLKRcgZRZEPSQCIPZCSEj2gIhDSEgFABl5g9S+EN9BBpwhY6eQMhE+tMvJyQmpg+G59C8YQAbrvn79CuntiYmJiYqKsrCwvHz58sWLF5DNP5C+L7zxC9ktCmnHQRZUQw6lYmFhERMTg4QAJJQgdSFEJSSUIHU2xEeQ1sDPnz8hO6PExcVFRUUhfS/I6AW8VIKEFUQXRBASkpBZYUiYQEQgzeqvX79CemaQNgEkoiHaIf6FrMqBVB6Qcx/5+Pi4uLggo6/g6bBfX758gQyrQgbZIMUTJB4hWQXuEogghIR4H8KGJBi4w+CxCWcgK4aED0QxnA0JOkgyg0Q0pDnFyckJiXFIOoTogpTIaGy4XZAwhJy1ApmGgFTDEHMguuAkPPogc7qvX7+GjOUKCgpycXH9+/fvw4cP7969+/HjB6RPCdmLAmnQQEIPsogMUoJDrjP59OkTZGwTssAN4jAICQkuiO0QEXjIQKQgJEQQ7jYIF6ILKwkxCkJCGqbc3NyQI04/f/7Mx8cnLCwMOYUNuWUAjzWIRjwmI0tBXIisBSKCrAbOhiRFSOELyaeQXAlJUZB4hBgF9yyEgWwmRBlEBOJmiBoICckUEFmIvchsiAgmCUkkkCG6P3/+QOpgyLoBiHvQtECmzCDdOIi9kEIYwoYkY0iVjBxZEFlkoyCTXJA9F5CRHoil8ORNjOORDRzkALJ8AbKMBpIMIOEDKdIhcQf3AiRy4VziGfSohuHJAhLZEMdBhshERUUlJSW5uLi+fv0KmbCB7G/h5OT8+/cv5KwlyG50SEsNq1GQtAKXggQTJETgNiInDoh6iDI4CXcVhAERh2Q8uF5IWxIiCKm3IOZDWo6QzAbRDlEDqQMgpSekaIb0kCBsSIcSkqvhPRX40C4kk4Dr37+QNWKQagnc9gVVXZBRKchtjJ8/f37x4oWIiAg3N/fbt28/fPjAx8cHuSzh169fnz9/fvfuHWRvGGR/rYCAAPxUYci2JUjfEeIReMr7/v075HRMZmZmERERyGpkyAJsISEhyCQupECH+B0SPhASMi8OKa0g63shQ8cQWUh1BWlWQ8axIeEGCWpI2EIS+rdv3yDLjCFz3pDl2ZCp6J8/f0Iq6d+/f0PuKv706RNEFzy1QOIaEk0Qx0CcCrcO4hIIF05CSis4F40BcSSyIMTBkCIbMj4MWf0AGbSHlFDwBAnXCHEJhISkXggJGSSALGWH3FfBzc0NSScQo+AmQJZoQXR9/foVEvWQA6uFhYX//PnzDgwgwQJZxARPmZBrJSFL7iHuhDR8IUEHiVb4vDvEXohFcNshPoJwIb6Ahwwk2CGFFJouiHpkEhI7EC1wEnLwCy8v7/fv37m4uISFhSEjHBCXIGsnjw13KlbtEO9Ail0IGzKiA2lVwxMSXC/c2ZiehViETELKFkiEoqlHUwbhQtRASIgIJKVBBqsg++YhY1QQ50EcDFEJcSFEBOIFSJqBjJn9/PkTkiogMQWp2iHOg/gIoh3Zv/D1OpCmOaStCWk5ISuGs4c6A9K8hszQQcoKSOkN6X5Awg0SPpT4lObVMCT1QEh4yoB01xgZGfn5+RUUFMTExD58+ABfYgdPNHDvIWd4SKaF+xmSXOAkXBwSZBAb4QZClMHTGUQxRA2EDSch4Qvp9UK0Q/IkpBaBlGWQBA2puiCGQHYTQWpfSMcOkjHgG28gVS9ECpKXIL0TiAJI2QcZAIC0XiGTN/A9shA3QE63f/PmDeQ00JcvX0JSxs+fPz99+vTmzZs/f/4ICAhAVsZCDov++vUrKyurhISEqKgoZHMtpLqCjCxBKnh4HEGcgTYoysHBISAgABn4/fjx44cPH0RERCCTixCPwBuMkOCCRxmEATnVBLKIA7I8BBK5kFoWkqUhFQBEPWSRGgMDA6SXxsnJCekG/f37F3JsNeQOWmZmZi4uLl5eXkFBQRkZmV+/fj169AgSaJBghLQGIEUepHKFuBZiOyQ2ITZCoh7OhjAg0QoPGXjagzMgaQmiGFIZQyZZIXsoIdENUYxsFMQuiBvgZR+kLGNkZIQUr5Bj8SFj8pBBP4guiGMgbHhQQ3Zyf/nyhYGBARIakGUB7969+/TpExMTEx8fHz8/PxcXFyTeIeePQna7QZqJv379grhcTEzs169f/Pz8kK1rkBYApM0H9yyEAXEDnIQ4BlJNQjIahIQoQHY2RARCQgIHwkYmIR5nZ2eHbGzj4uKCmwwJN4hieMhDuJgkxF5I4ENkIWwICfcIRBmEC0khcBIiCBkGwzXeC/Ep3BDIjBXcCggDHj5wxRAGxDtwNWhciJmQ4gjifkiihbeZIGfCQAZdIIohJkAUw0swSOhBGveQHZg/f/6EzG1BikpIroewIaUWxOMQ0yAlD2QqmoGBAbIoGpIrISZDrIb4EaIF4oChTkLSJ6RIgWyWgeQXiH+RfQqJQfL8S/NqGM1ZENdDhqAhiUARDF6+fPn+/XtIUQ7ZQQFZTATxJ2RdEsQoiG8h8Q3PhJASEGI4RBmEhOQlCBuequCpH2I4GglpM0IKbsgEJMRGeKULMRNiF8QZEPMhxkI0wmtiSIKG1LtwNtwoSHMEYj5k0fW/f/9+/PgBsRcS95CBekjeg1gHGXp9/vz506dPOTg4Pn36BGmTvgCDP3/+iIiIQAYY3rx58+PHD0hfVkhICDKyB8nAEC2QRjGklIf46MuXLxAFkFwKtxEyOgrhQkZ9IXPPkIEsSMTB8yokqCEZG+I7SPkF8QXEpxA1kGM94He5QCabIRkbMhIAOcTx48eP3759g1TAkIlwSJaArNIUFhaWkpISFxfn5eUVFxeHqIRszoFELsRrkEQCcQ9yJEJyGjwS4QogDEi0wk2AMCCOhxgO0QhpQ0D2a3GBAaQOhlSuEJVwvRDtkMCExDKkiQBZdgCZyoWcvgIZHIakc4hFEPdADISQkDoYcj6lsLAwRAtkGTykuyMoKAgZKYFMAUIWOnz69Onnz5+QiXaII5mZmQUEBCBjv5BaEDJxAEm3kNCDuAFiL8Q78NCDeAcS0XApuHr8DIh6iAkQEhJEkEXgkIQEiXG4SmQ34DccYhQkNiEkZOANIg4PTzgDkjYgiRmiBpKpIeUvXC9ECkLC9UJcBbcF7jCIpyDxCAlJeM0KUQwn4SohRkGiBm4OGgMyo8/JyQnptEGOP4LkMmQnQSpXSLEDOWwHsnMBsvwerh7iZYhLIOEMsQ4SIJD2IuSWOciSdcgZtHD1EAbE2RCNw4CEdIcgQQSPa7i/IBFKuZfpUQ3DYxSeYyHe+PXrFycnp7i4uJSUFD8/P2RN7K9fvyBjsJCaDDI7BSnjILogfoYkVni4QNIc3CKIOEQNhISIwJVBVELSDVwBxHyIFCSrQNgQcQgJUQwJfUjqhLAhroWbD8m3EC4kv0HYEBKiERK1kFlPiKcgHTiIOGSUGDIEBMlFEL2QAUbIUPP3798hx19AFtBDalzI4tgfP358+PDh+/fvLCwskC0rnJycEGXc3NyQXSssLCyQCWDItDfEa5BBKki3HnLmItx2SA8V0u7m5OT8////t2/fIEdYQ2oRSFBAAgoSgBCfwkUgowiQOhsSLJDRHsjYMgcHB/ygiZ8/f0KWhr1///7jx4+vwODDhw+QgxghQ6kQEyDbWxUUFNTV1aWlpVVVVSHDAJDggtgI2XIGF4FEK8RtkCIeOWVCZCGDHBBxuEZ4pxASX5BEBfEdpKUI6VBCNm5B6lTIwjRISoOohLAhI/8QN0AaHJAQ+/fvH2RNO2Q4GrJAGpIw4NZBXAgxh5GR8dcv0Ow4ZGk0ZLIAMi4Cac/x8PCIiIgICQlB5vIhcxCQE7khEQppI0LGpSHj/5A+EyQ2IVkPEg4Q9+MhIckA4k6II+EBhUsXRBnELxA1kHQIMQTSSoAMn8CrYYjDkLVANJJEQuIX0uCDuAFZOyReIBZBYh8SSpDUguwpiCyEhNRzcPcjGwhnQ1Si2QjXAmFASGRb4NqRGZD5Ox4eHsieJUjgQ5rFcJdDQgkSgJDWM2QsjQG8pAuyixLZIkznQRwDCRBIzoUsJoB0hSF1M8RVRCYSiOKhQkLyJiQ1QgIHEiBw90NCGM4lj0FyNYyWgAjaClEPdzqcAdmQCrn+VkdH5+HDh69fv4YP5kCGziAZj5WV9du3b/Cd+/DWKKTmg+w5hqQGSHMVkhogyREScJACDl5qQxp9kGYOPBDh2QyiHTL8Akl2kJ4BRPzXr18QBiTRw3VBhlUhY8uQOIOYDHcAZGYUUt9AKmkICdkdBFEGyQ8QjfBOMMSbkNYuxM2QgVbIJYB8fHyQEGBmZhYTExMWFoYs53716tXnz5+5uLhEREQg2xggR3aAD7kDtZ0hPWDIzij4vkw2NjbIminIfDw3NzdkQg4yXwBZKATxPmSwC1Kyw7MoxOOQcIbECMR8SDBCfASZUf7x4wdkFBRy58T379/FxcUhy0wYGRm/fv368uXLp0+fvnnz5u3bt5B7+iAVMGSkBFKGQlbXQxocr169evLkiYWFBT8/Py8v7+/fvyEegcTd169fISUOZOsO5JIoSKqAGAVxMzxxQkZEIJECUQZP5xDvQ2IfrguSUNnY2CBndED6cJCiEJ5uIRkBYjKkPQSpBSF7iCGDEJCTOyGbwXh5eSEDwhAXIvcyIQkYklo+fPgA2foJaX5BTlmBHGPJysoqIiIiICAA2dMJT1eQi/DgSwIheQ2SgCGNQkiEQmITMmEBWZEOWUwHWT8IGdCCdK8hAyfwxA9xGCTEIGEIYWMlIc0XSBqG7JqDuBO+zRrSb4MENTzvQ4yCBCkk1iAVKkQcmYQkVHh8QUZ6II0/iAch2RCekeHmQNoiEPdDuqTwEhkeiZB6F806iLGQXiNkzzok5UMsgngEQkICCuJ+OAmJboi9kEYkZPQILgKxjpGREZI8ICMWEGf/+vUL4lTkkIGkQ0iSg9ySAmncQMbDIMkb0vSHpASIOyEhBnE/JPYhhQCk3Q/ZLggvuyC2Q4IFYh0kEiFOpSkJCS7KrYCEGKY5EF9DdjxC6hdIIoSoh0QQJDYhuRJePkBCABK8EEFMw+EiJFfDcJ2UMyB+gDTAJSQkhIWFIYtu4AkOkmcgx2XABSGRDSEh0Q8xB6IAknngdTAkS0CkIAEHCSx4Dw8iCBkchvsIkiUgeiFDi5AMAyEho4iQhUWQUIZEA0Q9miGQGgherkHUQEptiC2QihmiCxJzEBIiAil8ITkNkpkhp6BA4hWSqSD1NKTXAul7ffr0CXLuFWTRNcQQiNUQL0CshmiE7FSGjP1CHAYxHLJqDJLyGBkZIXucIK6C+BoSdBBjIVkXkpkhJKQahoc2RBBSbP348QOy/RrS1mFiYhIQEODl5YWUvK9fv759+/bdu3dfv34NOaAAsnUKsn0Wkisg4QnZNgAZMv379y9Eo7y8PKTtD0kJEAdD2hzIDoa4BCIL8S/EIxAROAkvU+B6IW0gCBeSiiAaIbNlkNQCCXBIqoMXExAtkMiF7C+CtwYgp3xAxqIh4/OQqg6iBWI+xJGQdiok2UMmFCDL5uGDk5AEAKngIYKQxTuQGIRsY2NlZRUQEIC7BOIY+HQAxFKIFZC1dZAED0lgkCwJ2TAKEYGU1xDTIOkHHnqQxAbhQoyFsCEkXAQSU5CkAvcsXBYSjBAuJBAg2oknIXqRbYG4FtlkuCxklAISa5CkBamhIYZALIVoh7AhhkDYyCSk3wzJsxDTILkGWQ0yG24+RCOECychJQyEC8m88PIHzQFwNRDDIYohDoBMb0OMguRrCBvZO5CMDAlniDiEhJS3kOWHEF3IFkGyCcTGIU3CPQVJD5Bl4ZAwhAxuQUIDIoKcvOH5BRIdkACHJGZkZbgCZ8CqYYh/IEWAgICAvLy8lJTUixcvIA6FBAek+QlpKUOWMkF8CychTV1IEkHWAjmQCxIK8EQDsRGyKAnChrccIc6AFO6QKhySsCDNf4g4RAuk+P7z5w/cPZAyF2ILxEaIFyC6IGx4JQSJJEiMImd4SLxCrIB4BN4yhVQqkLF6yOgxKysrJycnOzs7pHyE9L0gQcHOzv79+3fIBhVRUVFubm7IYCOkCIA4FZIsIAU6fC4TMhAKqWMgCiBhAnc/5IgAiAsh4Q9xM7xZANEFaXZACmtI9Qnp+ELCk5GRUVxcHLIXFhIU//79Y2NjExISYmFh+fz585s3b+7cuXPjxo0nT558//4d0lCAeBPSVYKnb8jwAMRYSJ/s8+fPz549e/PmDaQHDwl/SOEOWdYI8QuchOQ0SKkH8RFcCuIXCBfiZQgb0hCGlM6QOIU0AVlYWCBLySDVJyQxQDwI0YhsCEQjZHQEEnrwZta/f/8gtSZklzDEbRArIPELMQdSSkIm+X79+gVJD5DLmCEtA2ZmZsi8AySdQHIQZGHO169fwWee8kDu0oY4ADJmACmCIQ6GpGSI1ZDKFV6jQHIlJPwhNTFEGSRrwLWjMeAuh5gMJyFBDenwQSIXEumQXAAh0YwiiQtJIZDQg3sBUp1AIghiBSS1QLwAaUFC8j6ktoOUMBAvQAyEsCG+gJgAiRSI2yCykD43JE/BszNEC0QZhIRoh4hDog+iHSIOYUNSFCTMISEGEUH2Atw0iAshyiCZFJLUIVMqEJdAFnXCkz3ELogbICZD4gKeVuFFB3L9DbFx2JCQwISkAXiChGQQSNaANMggAQtRBgleSAhAylhInoWQkLiDyOInB6wahkQwJPo5ODggS2wgroekRUgSgfgEEveQYIJogbMhBQE8OCDq4TkZogwScBA1kOQFEYckOIhFEDWQUhs5OUKGMSF6IeohEQAJdEiJDGFDHAYxB+IMiC5IroCQkAIL4kE4CdECiSeIw+BZGpJ/IPs7IT6FlA6QhbiQs2Qh6zIgYwbw6V5WVlbIUh1IzQEJEEgygrgK0h+FdHk5OTkhJ2pBRgghgQAJKIirID0eSJRBAgfSOIAMGELUQwodyKJuSHMBctQOpP8Kb4lDhncgp2CysbEJCgpCDmf4+vXrvXv3Ll26dP/+/ffv30MGCZiYmCC9cIgVkFCFBBGkKQPxHSRUId16SGUDsRTueEjgQ1wOiSxImEP8CCmjIckAORLh2iEMCAkJPUhQQDqFkNFdyBAfpDcMMQTiWkhTD1KOQyyFkB8+fICMDf769QsysAwZ04YsfoEsaYbYBXEwJAogboAMEkIm+VhYWLi5ufn4+CCr1iEDzpBFeRAtkBlBSNcZMosMiXRIKxBSIUG2yUEMhzgb4gVIiEHiDuIMSB0MSZbI1RW8mIZohBiC1UCIIEQZJJ1DijxI8xeSoeCVH1wZxCVwEmIIMSQ86uG2QOICYgUk0pHrYEhVDdlOCck1kDQGsRpiGtx38BCGuwQSZRADIQs7ICEMCR+IerhiOAPiTYjDIMkDLgW3CxJWEFmIIISEq4RIQdIbXAriEsiiTkjVCylLIe6BeApiL0QL3CUQBoSEJwDIqCEkJcDthXgZohIuOKQZkOQNSQmQVgtkygYSaPAghTMgwQgJeQibVO8PWDUMqTYgkcfKyiosLCwpKcnPzw8Zh4Q0wCGZBDJchuwxSEEM0QtJPZCkAAkCyBwVvMqE1JrwIIPogshCSIgI5PgIiGmQdAZpAUEKXIjJcHGIY+BciDshgpDKEm4OxGEQlciGQCyF5By4dyA2QlwFKZUgORmyQgdSQkG2z0ImgD9+/MjHxwdZJAUxCtJDghzFDDkeErJgGHIhEmS9G6T6h5SnkJwJOQoH0taGjN9CfASppSAhACm1Ia6C9N4gdS2kmQKxF9LxhSwug4QAJIdDliyxs7NDnA05Zfrbt2+cnJwSEhJCQkK/fv168uTJjRs3rl27BjkHG5LiISEGCUOIgfBwg3QyIGUT5ApeDg4OyIXHkHt5IavMIOYgF3+QQIZ0ECGpAhI7EPMhkQgJTGRxSPkL8Q5EFhI4kMlvyGUbkBwLkYWbA+dCTIDncMj6dshULuRAb25ubsjIPPw8BEhoQ4yCdGUgS+h//PgB0QI56JGHhwdyvDZkDTmkcww5IhgSgJCzsb59+wbZiwwZZoAMorCxsUGGwSEhCfEUxEaICKSlBfE4JEAgDSD4EAUkqUBqLIgWiHY4CYkyCAlxD1wKkjfhbSyIIZDGIlw9phZk7QTZkCiGWwRJCfDqBGILJFIgRkGWX0BiDZ7wIENHEAXI6QSSc+HiEPWQ/AJZRQhpIEIaZxCXwAtriC647yDGQtwDD0aIFrgUJKjhXIheiBa4aRBZiPshJMRVkPWbkEiHZAGISrhdyCZA0ipECjkHIWuEqIeogbCHAQkJK8iQHiSFQ0otSNsF4ll44ECCF5K0IBrhIpCogQQIJJwhbFzkgFXD8EP4ILULPz+/nJyckpISpHyB9JkgY4mQ3h6kSIJ4CZLyIMkdIgL3HiTdQzRCAgVZAUQWnnng5kAavBBxSLKDsCErFCDtWUjIQkyDaISogdSaEAdAChQIG1JyQfr3kPILYjskKUP0QuIVYj5cHGIRpJqE5ENIaxQSUHx8fJC6+cePH//+/RMXF4dUhJDeLaSfBDn8GXL+CaR3+O/fP8gdOxCXwPMzpFSC9CMhhQWkKIQECKQogTiPhYUFwoWEAKQ7C9nhCk+1kEIcMpoNOf4X4ilIIoYUr5CVWZBUy8nJKSgoyMzM/PLlyxMnTjx//vzjx48QKchR/pAuCyQeIaEKyQOQEV1IFQgJScgSZchqcEggQBqwEKsheiEBCwlMSAKDxBek/QGJL7hKCAMe/hAuxAQIG9KCgSx5g+zcgKQKiPshroK4HJ5QId1uyIABZCUa5IoqLi4uAQEByKgyJBYgGiGGwBMJxDEQ30EW3EFmfyEXSEN2KEFaJJCGDsTvkAl4yKkvkF3akK2ALCwskDVxkH48Wv5C8wskkUMSD8SDkOYmxG0QD0ICB5I8IGw4iRm2EGWQ+g+SbCDxAnEzxOOQcEYjIQ5DE8TPhcQypN0GSYTwRA7XCMkRkL4BRBCe9yHlLEQBRAqZhHgEEl+QcICQEOsgXQhIkQIRR3M/nAsxB8KFsCEkpByA6IWUAJDAgcQIcghDsgZEJUQvsjshbEgSggQIRC/ERggbErMQlRBxiF0QEUhehvgUYj5cDSQGIcqGLgnxFCRw4MEIyeaQZAOXggQXcuBAAhaSHZDFiQyNAauGIT0qeNRyc3PLyclpamq+ePECcqI9pNkICRpICoOnEggDnofhhkCUQRIKJEQgoQMJNYiBkCwBCR1IWEMCF1JSwEsBiEaIFCT1Q0QgJDxPQkIcbhek9oIYDlEDyS2Q8gtCwkUg7oS4DWIOJMNDXAVfhQgZQoQcfwFRBkn0kE4/pKMJmTfl4OCAjBNC9hJADroD33f3+efPn5D6G9IPgDSKIe6E1JrwmhhSMUM6dhDPQhRApnshboPEHeTuQsjh+5DEChnbhOiF98YgkQUJGUjlAbGCm5ubh4fn379/r1+/fvDgwd27dz9+/Ahps8NP+YB0wSHuhJOQJAEJRgiblZWVl5eXh4dHWFgYckoopIcHqZUhLSG4dkgRDIlTSHBB+jpwd0IKF4jJkBQFYUNMgCiG1PqQHVaQ9jIkaiBxCjEBEt0QXXBxSJD+/fsXMrUPWWUGqYMhUQzva8LTD1wvZCMfZGEXJFVAFjZ/+/YNEheQq6sg51dDvAOZnofc0QTZ5w2JI8jp5ZAVfPC6B+JNiLPhSRriDGRfQNjw3ATJOJBJCrheiBpIHEFSODwWILZAPAVJFRARSLMJkj0hwQ4xBI2EKEYTxM+F12SQqIe7Cu4GiAshIQ9ZyQ+xBe4peJUMj1k4A6ISknMhkQspNCDBAjk1D+I8eDEF4UI0QsyBuAQS5nARiCCkTwZpAUMiHbIqBSIL0YJsICSHQnwEEYekTC4uLkjsIEcoRAqiDE5CUg4kCiCKkZ0EUQYZUYNoh3gEIj6kSYjH4akF4i9IaoGEA0QBPDQg4QkJKEh0QLRAxCFaIBEBEccTOANWDUOmEiHdnf///0PW6UhLS/Pz80OOR4akMEhBCenqQbwBCQtIuoekOUgvE9LVgMhC+joQNiQIIKEJCSC4OZDcBck2kHIZnm0g9kJMgJgPz2PwkIWYDDENQkJaBhAFkHwIYUPSK9wN8IiEmA8hIT6CJALIpC9k1xCkXoFUnJDDLv78+QMZmubh4YGcMfThw4d///7x8PBAhvQhB059//79x48fX758ef/+PWTqF7IVVUBAAOI2iDMgYQLxOGRqGSIO8Quk1oGUX5AYgYQDpE8G2bgM6cdAAhCuF7KzCxIsEO9DSIhH4NXYt2/fXr169ezZM0iN++vXL8iRApDRV0g8QgxBIyGnTEAcw8LCAjl2GL7rCdJRhtzuB8khkIiAkJACEeIeNGMhiiG+gLAhsQzxOySOICEGOa4SshkM2RCIsRA1EIsg5kBEIE0QSMxCJvghk8GQtV3wSgjSN4VzIZPQkBEIyDgBZB6BjY0NMubx7t27379/Q/rTkGYBZNQdspsLckQdpOsMmfWEdOIhtThkyoONjQ3iC4g7IbkJMhACEYekUjgJ8RokWCCCkMWPEHPgAQgJcHiYQAITkm3hbEhqhKQxSF0IkYLYSyEJcRu87w7p1kBiBGILhIS7EDIpA0n8kFiAZFtI2xeiDOIpZIdBDIGkRojvIIUGPAYh8Q4pmiGKkbVDghHNWIjLIU0ByLYxSBaDlPuQ3jZcC0Qxsr/gUhAG5F4WiF5I7ED8AmHDHQNxG2Q9ASQuIGZCFEBKA2S7IIZAZIcBCfEahISEGzw7QFIpXBAS/hDvQ8IQrgvS4oQENZFhwgIJd0zVEKMxxXGJQFIYPM4gxkImtCBa4OkJsisJ0iqH9KsgiZWDg0NZWVlDQ+Pp06c/f/7k4eGBrFKDbE6HZAOIsZC2GKQ7CPEtJDiQ3QBZpAMpxyHtR4gsJLAgWQWiF9IU4ODggNTHkB0gEDdDmp8QlyMrhhRSEEPgEQPRAplLg9RqkCEpiPnwcXJIEMEdDNn8CjmaETKrClmQBfEdJycnpGyFLAaG3NkOKUP5+fkhJ1P++fMHMif65cuX////i4mJQTpMP378eP369ZcvXyAda8jNspDTG759+waZOYZEEMRrkKVGEK9BumuQ3YGQlAA5XAVyoQKk883GxgbZWAxRAPE+nISYCSn1IEUSZKQBMsUAEYcsv/r06RPkdEyIpZCAgqR+SIxAIh1S7kNCD3JAB8RAISEhAQEBERERGRkZXl5eSCODk5MTUq9DDu6AOAZSnkIKRDY2NkjRBhmhhQwSwGtZyLYfiBsggwEQZb9//4a0iiB1J7zIhrQjIU0oSGKGlPsQb0KCFDJ0D5mxhpyRAknGkFXKkJYTPKtDvAxJq5DQgyzIgqyhgwxdMDAw/Pjx4z0YQG5ugCzsYmJigswIfPv27d27d5BbRCGz15AQgIxFQ45egqReyJw9xL/wQIB4HOJIiEZI5QSpbCBORY4UiDik+QXxOEQNPElA6ntIpx+y/xueCyD5BWI1xEmQEIDrJciA12QQjRASslkWMt0LcSpEGUQWErxwcUjSgpMQcbhKiNsgCQkSxRCjIDECSWyQniuk8oZs6oUYAlEJSQAQvXBjIQx4cwcShhA3QLIVZMYE3ryGhB6kMIQEFEQZRAskbUMMgVgNKfTg5kMCHK4YsgQHks0hi2MggxyQ4xwguQ9uCyS4IA6GKIOECSSWIeLwaEJ2FVyQngxc7oF4B+4SiKcg4QMpeCFdIEjHDzKsCPcmxKcQvZCWMaRYhixGgcQ7ZCwKnp0hCQaiBQ9Jtd4wmrchVkL6NJCkABlSg6yAhexSheQ9SCaBLBWBnEooKCj46tUryBQapDiDJzuIsZCghMQ0pFiHJyx4sEKCDJIWIYkGLgVxKiRFQsoXSOsPYgjEcDgJqWsheiFaIEUMxPGQ9imk+QNxG6S3BxmkhdQTEDdAXAsxAVLeQayGBA6kaQJpbEK2GHFzc0O6jJAdLJCRQ0hBD1kZC6meIU0EiCMhBjIwMEDyKiTwIcUoZKnkt2/fIKENORAD0u+EOBjiSDY2tjdv3kBOZoAEINybkFr8Gxh8/fr148ePEP9CQgbChvgO4gxIiQAPH0irAs6FLBaDLB2CrAaA6IJEAcRMSChBwg0iAkkGkGoJUp/x8fEJCAgICwuLiYkJCQlB7taFxC8kBiGGQEQgfoSIQ9ofkEoaYiyyFZDeKsQxkBCDOA+exyANLLh3IJEI8T6EhKiHVMAQN0DYkFCFlMsQGyHJCeJNiNsg7oGwIUXA////IdumITvxIEU5ZPEz5AxLyNkdkBuomJmZIeulIYfeQG4Jg/S24acBQ1IIJNYgViA7AM6GuBYSDnAS4jCINyEk3BzIMn5IaEPSJMR3kNIKUthB5vUh5QAk/CHxAjEKEjJwA4lnQCyFuA3ChgQjJP1DRrwhDWLI0gpIwQKJGogDIE6F6IWQcNMgAQKPQYiZ8EiHBCC80kIWh7gfbhqcC4l6CBeZhFgEkYUEIKQZDWkSQcY5IM6ABBeyXrhrIdZB2kwQAyGpEaIAogUiDmFD6g+IdZABQsj2SIguiHcgZkLUD2kSEnfI3od4B9KEgjTNIWUXpOiDyGKSkFEfyPJ7yMgupBMFCS74QAKmRZhGgUobrKJkCELiCW4rnAHxNmQSCNKLglRRkCoH0taDnDXBzc0tICCgpKQkJSX15MkTyBIkSOJGziGQogGScyAkpPUHSUaQvAcpZCG6IC6BOw+iAJKIIZkQQkLG+uDikBCAmAzJFRB7IY6H9JIh8QQpEyHqITUExECI7RASYizEBIgsxOWgCGBhgaQAyHFLkFMgICdaQLpokNuEIK0NSNnBw8MDmemBrL6BVAaQmwAgZSVkfguydAtS3kGSBXwkGdJhglTwkN4npOqF5HZIsx1CQgyERCJkJFxQUPDnz5/v37+HVEUfPnyAqIFkcsjQIqRdAg8rCAOiHlIfs7OzQzbPwFugkIoZ0pdCDnB4xEHiAlLQQzruvLy8oqKikJMa4QeAQAaLILogJMRJkHERSGKAlC+Q/UKQ9ACxEZ6EIBohcQdp6EBCBrKsCRJHcO9AohISxRCTISSkRoFkaUjmhNgOiS+4LKRygkhB7IWwIYZA8jnkziVI3wWyGgBy5iXk7C1IswzSQYf04yHFKEQ9ZNgJMv78//9/yDY2SDUMCVJ40oUw0EhIVEJUQkIJ2XkQR8L9AvEsJOVAci7EDRBDILUgxOXw7AZxCdwcNNtJ5UJcglwvQhwAiSxIaxuS5CCnXEEyLyRyIc1fSHqA+BFiOyTuIFEDMRmS1CEkRBaShSHZE5JsILIQE+AZBMKABCOEDVcG7zZBvAAPQ8h1HZD9/ZDFdJBUClEGMR/ZtRBZSOBDzIR0BiDpE806iEsgWiBGQTYZQi5IhUx8QAyHeB/ChqgcoiTEI5CQgXgBIgLxOHzUAdJugwx3QZShkWhpCdJBgrTwIJUaJC+g6cLFpVpvGFcMwZMLpACF5zdIyw7ChQxNQxKxmJiYlJSUkJDQ27dvIX6DhAgk1ULSDSRJQeozSFMOIo7sc0imguR/iBpIHQmpliAmICdKSADBxZHLHUg8QayDOAZSAWOmb4gVaNUtJGQg2RXiXwgJSQqQYgjicjY2NsiWFcix/hBBDg4Obm5uyA27kECA9CEgXVvI/Srw0ygh7ocU9JDyGnKDJKTKYWJigowAQ+YUIV6GjFJADv148+YNpPX9/fv3b9++wfvokB4VJycnpOvJy8sLGUWHHCsNDyuI9yG2Q2oXeEBBhl4hoQdpBEAmL+Hn00J2vkJ21MDLBUhahxgIKTEh09uQm+8ga7IEBQUhVQvEQEiLAR6zED+iceGhBJnvgLgfUk9DEhKkqoAkUcigAjwNQJY1Qeo2SL0CiU2I3yFVMkQEYizELkgagEQfxChIwwjChshCVEJSBSSxQTqOkDl+yIkxkLqWgYHh27dvHz9+/PTpE7wfDEnqEI2QEIY4CXJYCqQlBDmFGF5PwIMFkknhzoCLQxgQj0AiBeJIiAchbDgJCTpINEGCHaIFMmcMaRRC9mJCnATp1SGHIUQXeSQk3CDhCXEJpCqCJB5I4ECKWsiUDUQlvMSENNwhGrGGBkQ9RAFyGoNkRoi/IBkWXixAPALRCGHDEwCyIMTlcAUQNZDmF7wAhNSI8FX0kICFxBdEPbJ2yGpKyIgIMzMz5FZgSDRBIhRZMVw7JIgg46tfv36FtNsgQ2UQX0NMQHY5mjlU4cI9hWYateyF+ALia4i/IOTPnz8hjVdIUQkJakiYQBTD3QNxCWQsChLIkC4lPCWjFQIQ7bj8BTGWytUwxEsQh0JISPsC0t6E3AcA6cJDZlMgPRVIVQRp8jMyMoqKikpISEAWB0LW1kIGtSDFAbIVkEYoxCfwAggS0JBqD9KohFTDkGCCdP4gWpCNggxcQwILYhEkrcNLHEgzAhJJkJwGsQJiFNx2uHqICMQxkAIRzobbAsn8kElWSBEJOfcKUkJB5tIgC6AgS38hRxJCbqn78eMHZIwRUmpAwhMS5pB2ADs7O2TRFkQlpBz88OGDoKAgpI3y+/dvyLGXnz9//vDhw4sXL169evX+/XtIVvzy5QtkYRdkVBayIklISEhGRkZeXh5+SBN8Th3SjYCXehAvQ3ohkNoXMi4K6anD6wlI8wIy5wrZVAPJD/CZKsiSIrheyJAJNzc35AJayK20kEYrJK4h9kIqA0hooAU7hAuJTUjVCxmqgcQjnISEKmSQCjL/BxkMgGzqhfgLHtdoDAgX0jSGdE8hWRG5EIT02uHWQRiQFAXxAqRtCtkS9vPnT0iIQXz67du39+/fv3v37uvXrwICApAwhzgY0paFjLLAiwNIHoT0qCBug4QMxD2QAIGwIc5AJuF5BK4FYgKaLkiShrgBktkhrSJIDoUsCP/69SvkWidIcxPSt0POd8j2ksGGuBA588LHeCDOgCQtSBBB2liQahiSdOFxhNVqSDhApCCehaiHVPaQFZ2QLI/cyoGohzgMwobYhSwCMQ0uAnc/JD1DQgnS+ENOHhBzIGZCXAIxAVJ/Q3aW//nzB1JeIbcbIFrgMQXRBYnNf//+/fr1C9L4hu90gKgfNiQkvUFiEx7UkLwGKQ0gLR64MojHIcEFCWeICCTeISQkw0JyOiS+ILU4RD3ELkgsQ/RiklSrhuFWQlIkxH2QOS1IxwhS40IqGPhZnRApSK0AXwgqJiamoKAAOYsA4gdIeEFISO0I8QnEb5DUDyl04KUJXDHEJZB2DaRMh+iFK4BYAemdwH0BSZ2Q4gySRiEdO0j5CynlIbZDTIO4AS4O4UKcBNcOF4RohNgL2eMLjzzI7CMDAwPkjAXIkBokTUAaE5B1WJDtoZCuMKRjCrkVAJ7fIM0XXl5eyDI3+PwrZEAVMqz9/fv3jx8/vn379tWrV8/B4MOHD5C+Ajw3wpv5kDULjx8/fvTo0fPnzxUVFXl5eSHOgIckpPqHFNOQugFSAUNISNBBeg+Qzhmk+QVZB8HDw/P9+/evX79C1iJBRqchGiE9aUj2gGxzgpzRCGmgQAIHHl/wQIZEJYQLGdKHOAxeSUAKNUi4QSbSIIkHEjuQdSuQlUSQsVweHh5ICwaSEuBxDTcWEt3w9ADJ25Ale5DEj6wR0oKG2AVxPIQNcQNEL2QbEnz8BrIw7f///1/AANJSgRS4kMMvIbog1T+kmIb0tCBxAVl+ARGHOxKSOCFcCAl3BoQLyc5wF0L8CFcDZ0CcDQ9ziLGQkIG0cn79+vX+/funT59++/ZNQECAnZ0dcnoasglw7RAGxAFEkhAXQgoHCAlJjZBcBmm5Qg5khSQq+Ao1SPkAcTAkuOB+gTgDUgTDzYSkKEjigXgNkjEhRRk8VUCcDbEdYg6aCIQL8T7E8RDFkKQIcRUDAwN8jQik/wBRCbcdYghEIyRmIefMQxaoQpwEtwLiETgX4iqIRRBByHA9ZOgLsgUAogUeIBDbIZbSiIS4BNNwalkN8REkuuF2QQyHdK7gJTBEEKIGwoa4CsKGFD6QXAxJNhAzIc07SDKAqISHHkQ7VpJq1TCkLIaMokD6EJAMDMkMkJ4oRASSUCBzMxA/Q3RBlqj9//9fRkbmy5cvz549gxzuD0lekK4hJMFBPAbxNmRNGqR0gLgBkrDg1SokvOAlAiQ1w5MgpFMCNxbCgAcrpBqGlKGQmgNSokGyIsQBEBKiBmI4RBaiEuIwSLaBq4E4BhJJkHoFcqs5pIaA7LuFHG8COXKZlZX179+/8FFiyGJdSPcUohESdJCqC6IYMloC6cBBLPr58ycnJ6eUlJSoqChkdPrx48cPHjx4/fr1mzdvXr58+fHjR0idDQ9GSHxB0g0kFiBruyCVk4yMDDc3NyQuIN6EBAWEhLQHIUUehIRUwxC/Q3q3kFocMkUNudgD0hKHpB/I/QSQlAMPOrSaDBJfEDdAMgxk9g6SBiCNGIjbIKEKdxu8NfD161fIlDmkBQMxBLJxGWIIZMgBMv/Ky8sLdwkkp0HiGpK3IV6DBBckDH///g1ZywYZG+Th4YE4A+5giEaILyBWQ1ImZBvSp0+fIKedQJodf/78gbgWvqQc4kGI+yE++vr1K2RhPMQcSNRDGnmQ5dOQVgvEARAHQ9TAbYe4H05ChpQh6uGehTRqIVZApCDqIYZAAhmiGOLf////QyZHIP0GyJA+ZIgL0kKCaKeQhMQXcn0JmVCArHKHdIUhpQFknBbicQgJ9wUkq8IFIckJQkKKBUhygoQAZN0AxEZIwoCkCsjoNNwQOAMeYhARSHDBfQ1JM3BfQJwE6c5CGqwQKXjwQjRCEg9ECr6hEdLfgCyhgAwvQ6yGpDe4RkjIQIpfSFcYkt4gg0yYQQEJAYj2IUpCyjGI4yFJFEJCRukgK1cgYQWpuSAxBVGPTEISEmRFG6QSgRT4kLEQSDhD9ELiC8JGNgGZTbVqGJIOIEMikGFnyGAmZNAMUphCxtMhQ/CQEQCIo5Fb8WxsbHx8fJBJL0itBklnEBKSNCEBB8kP8GoY0jKFOACysQeSjCAhC8nzkPCCp35IAEFcDulbwG2BlFCQUgMS4pC2EkQc7gyICRCXQKIBkgMhWiA1N0QW4l9IpoL4GuIMyOZRyA4WSIhBop+LiwvS8oBUPJAFTZ8/f4bcAQzpGkL0QtbsvX//HuIYSEEAWQ0HKSwglwkyMjIKCAjIyckJCwv/+fPn7t27t27dun37NmRcGlJKcnJyQjYRQQbEIEN5EFexsrJCLgL6/v3758+f3759y8/PD+mIQ0IDEjIQEtIMh3gfEiwQL0NkIQPCkFF0yH2XbGxsIiIikIQBiQ7IcCLkjAtI8QRJx3CHQcY8IUEEKR0g4QkZcoS0SyBjoZBUBNm0BgkiSCxAEgPkMgxI8oBkUYg53759g6QcyPYeHh4eSDsXXtpCohViIEQ7hA1xJ6Tg/vv379u3byFlImRCHX7yKFw7pBCHJDxI4oFkhx8/fkBuMISMl/Dw8Hz69AlSDUMGdSF5CjJqArnh7vfv358/f/79+zfkqglI4MDLYkgGgQxrw6MMUhZAmiAQNhoJDxOI7+AkxMEQxRAvQ8INkungBRkk9iGllYCAAGSyn5+fH3IvMiTTwRVDXAUxkzwSnnjgKQ0ylgBpUELSCWQDAqSZDnE5xM0QH0EKUAgJdxgkBUKcByl8IJ6FiENCDyIOyXEQY+GGIPsFIgURgbMhKiEOgHgBogBiIzypQAQhvkC2COJOiHbIXB7kaixIawOS/iG6ICREPYSETCRDigvIXk3IZBYka0MSJyTS4a6FOGOIkpBcDwlYSJRBwgEy+gVJNpBohQQ7pDzB9Cwk0iF5EBI+kFIFkt4gYQWJEfzmQExGVMOQhAUhIS6DqEAjIYOTkDYsJHFDCqY/YPAdDCBzEpAdNZAGO2TNC2QBDqR04+HhgTTMf/z4ATmRGJKAuLi4fv/+LSUlZW5u/v79+0uXLkHGVyH7cCB9LEgZB08ikHYcxDGQ8IX0CCF1FaSIhIzSQDqXkDCCGALRBQlTuN8h0QMJXEgfAhKUEJ/CowpSaEI6eZBqhpGREXIyFHyRM6T0hwwkQkISMgcM6aBA1EN2N37//h1yW46AgACkjwtxAGSAGtIxYmNj4+fnZ2Rk5OTk5OfnhyxNgkQ/ZJwfsgD1x48fDx8+/Pv3r7i4uKio6NOnT1lZWTU1NcXExERERL58+XLv3r3Tp09D+sGQvAcJTEhHCpIKIUNtkOoQ0jL48eMHZMsyZCAUcuExxIOQuh8SbpBQgrMhzoP3iiC3GUK8BpkYhowBQOpjSHkEiUR4kMK3rkF6ZpCwhXTcIYURpCiBNOp//foFSWaQc0t4eHhUVVW5ubmZmZkhfXfkNAA5wxwyVgmZAIakCsgaKEgC5ufnFwQDSKRA3AbxHcQXcC2QBAxJ1RApTk7Onz9/fvr0CRL1AgICkHCG1IWQEIYkJ4ghkLUCP378gJx7xczMLCQkBOlDQ5IKJycnpFyAtPMgeiFlKzjngRbWQbhfvnyB1N+Q0UWISkg0QRwDsRHChngH4h5I0xPSz4NkPXhVCjEZkk0gGQeuBTJxAGlawfMXZAYKUq9AtqKKi4tDTINEHKQLAglSiEvII+EWQRIqxLOQQoyXl/fDhw9fvnxhYWERFBSETO1DRg4gcQRRBnEDvD6GmANpPUC60ZBUCil/4G1BSMKDNDch5QDcTEhKhpBwTyGHM9wKSERAGruQOSBIK5aTkxOSayAKIIZAXAhnQxrKkBwBObYW0luANDUgk30Q7XCN8NiBeBmSX75+/frv3z/IqeyQXRiQ5hdcF0QxxF6sJCRCIRUPXAEkqcC5xDCQnUeMergLIRohJB6NkKwHyYZwT0FaLci6ILkYkrwhyQnChmiB5FNIwoYM2sFbdRD3wJ0BSQCQPItsPhobUQ2jSeDiQk5MhCQaSKqC5AHIJkVIOQ4ZQ4P0U+EVNsQpkK0+kCQLdzEke0NabZD8zMnJKS4uLikp+eTJk48fP/79+xdyCgwkz0BCBBLlkCY/JJNA8gAk1CBFNmRNJkQ9pBMGSV4Q3yEHFiTFQEhIpYtsGtynEI2QLASpJyC1DqTPCrEaUvFARt4g0cPAwABpXkCyGSTmIBU8pAsIGUOGiEPKMngOhDiemZkZMv8HOaARciISPz8/ZMQJcgc4ZMgU0u7h4OCAVFTcYMDGxiYuLi4sLPzr169bt26dPn369u3bkCiDuBzSVYJ02SHVMCRwIIEA8T4kz0PKCHgzEBJWEBKiGBIskOIAzoaEBiQKICEGkYKkAUZGxh8/fkDGriEehyRfiKsgoQ0xHD6MBm71/YGMr0CmkyFD5eBp0y/fvn2DMISFhcXFxWVlZSHGQjwFISFpCbL2DbKRHbJgB1Lrw4MRsjgZMioIcQncsxDHw5MEJJQgSQiikpGRkZ+fH5KleXl5ITEOUQ+ZQYB0fCFBClEGGfb/9u0bZIoOMgEBWQcHCTdIAoa4AdKk+/r1K2R9OyQvQLaDQ8IfogzuJIjVWEl47QsJFkiWRNYOD3+IAyB2QYozSHUFmUqAKINohCQkSJqHBAikDoZEPaR6IMZtmA6G6IKUABBzIPkd4mxkeyELP+GNeEiwQLRDSHhigJSwcLsg3oTkPoh3ILkbYinE45CGOEQWYhpEO8RMiEo4CZGCuBMS2pCqC9J8hKyjhFTw8KMhIEkCohGNhMxKwt0MqRIgroIkJ7hrITGCph3OhWQ6yEAXZKoI4h24gmHGgEQN3FOQBAPnYmWgaYGEJzzvQ7iQWIakGayG4BckuRqGpDaIfRA2pCKB7J+BHCcEqTAgZSgkYUG2NkNKfEhkQ9I3xHGQ0hlebUOKG15eXsiWUEhfGVJEQrI0pBEACR1IbwxSAsITEKRcQC5QIAogI5kQZ0OshqdjSIqHhCnEHEg6hnQgINohshCNkHoIohK5bQEpPeGdXUinAdIDg2QPyHwtZCfAv3//IKOIkGMZIIPMkBV3kI4I3A2QCVTIOmp4uxVSskNCGHJ6FDs7+7dv3yALiX/+/Am5bEdMTIyXl1dCQuLfv3+PHj06f/785cuXf/78CR+fgdSvkIIVMjgDCVuIfyFugAQaZCwEMtgF9ztyzwxevkDaB5BMDqlL4G0viBpIvQgxloGBAbJkBlJMQ+pgSMqGFNmQIQ1IKQNZPgYZnoWM3ELqIcjyLkjtCznsArLkW0FBATJJAVkrjuw1yFVUEO9AkihkNPvHjx+QAOcDA/gRVJBWMCRY4C6HpAdICoGUy3A2CwuLiIgILy8vIyMjHx8f5GwvSLKEBAKkkoBMyEGas5BToP/+/QsZeIB0aCB5HlJqI7sfElC/f//+8uUL5JgzSG8PMg4EaQ4iRx/E5RAHY5IQW+AFOiS5wrVD9EJqOEjNAfEIhIT0CyGegmQZSPTBkxYkuiElAMQiiFGQfIfpGDwiyCEPWdAE6btDEiQklCDrPSFtGsimOMjiREhygvsF4gZ4IQBJYJBQhWQrSDEFSZaQoIBogYQSZLoBUl5BZCGhAXc8XDFcHFLuQ5wKKSEhzcdv375B/AVJQpAwhAQU3DS4IZCWB0Qckmwg2w4hg/yQ/Ajp1UDUQMIEwkYjIVNaEC9D8inEakgyQ1M8DLho/oJ4HJ4AMD0IiRSIODx5QOIFks0hCuARDZGCqCeeJLkahmx+gNgNGQ2GjCpD4h5yli8kaiEpA1JlQtY6QbpEEL2QQ/whlRlkqAeSNFlZWSHpEnJ1uYiIyMePHyFlLiRjQMIR7luICRC9kGQKyZmQ3gyk8QtJtfCcA8kJkKCHZEhIiQMRgRgFz66Q3AVRhhzuEBFIQEPyIaR5AamGIa6C9KsgORnSy4fXwfAlV5BhZFZWVi4wgNSCkEIEogUyzwcPWEjOhzR0ICMNkMQBGTKFlLyQnPzt27e/f/9Cth1DVqXeuXPn/Pnz9+7dgzQLIAECKVIhYYKcdSGBCYksSABCvA+ZmEQeW4YUUpDcC1EDiR0IGxKSENMgFT8k6UNacnBdkLkoSNxBNMINgVSNkHv6IPdVfP369cOHD5BaFn6xAaRzD5l9gCQSBgaGr1+/vnnz5sOHD0JCQhBjIS6BRCukWoXM/n779g1yUSMkhCHndUOWlENiE5I80AIEIgjp6kEKO0jCgNslICAAGWOAtMwg6iFFJ+Q0ys+fP0PyAmQ1758/f8AJgQvifUjrE3L4KFwvJAAhHoGMP0Gv9xqpAAEAAElEQVSSDaRzDOkNQ8ai4ekfohdOQtItVhISBZBpGkjMQtIGRDFEFjLQAvE1JEAglS4kRUESJMSPyNkfkrMg6iGmQfwIYRNJImuHlH2Qli7EaxAHwxeIQDrokEwHWQ0K0Q5JHhDXovkOIgVJ8BDHQ3I3JKFCwhyuEVKsYfoLYggkTJBJeIhBYhC5/IS0AiEGQta0Q9YiQLIJxF54EMHNhIhD9kNDljdChm0g8Q5RBkmQECfBTYAzIFOEkKQLGV2HBBFcwbBn4PcvJKYgIQm52hUy8gpJD/BsDlFAdliRXA1D8iek+QmZNYGMNkMSDSQRQJrGkDwA6dXBExYDAwNkCPHbt2+QHiEk7iE1B2SMHlKScnNzy8rKfvz48cuXL+/evYMkI0jpCSnZIT6HaISIQxIlRBzS+oYEMTywIEUDJLAgqRNCQrIHJCdDMhUk7yFrhFgBUQ8nIUZBNEIUQ5RBeu2QcQJIPmdmZoachwU5vxfSXYOcycDJyQnp10IWsECmGCFOhewWhZwVDKm5IbM+kOoWUhzA2xCQ/ceQQpCFhQVSb/Hy8kJqkffv3z969OjevXtv377l4OD4/PkzJIUhtxIgR0ZDPAVxNiRIISSknQE55hqiEjLKCvc4xO8QEh5fkMiC2wXXArEFHnSQvjgkIuCKITXTr1+/Pn369P79+8+fP3/79u3Tp0+fP3+GTJZDjraAhDMkzCHjMZBuGeQE0Ldv3758+VJSUpKDgwMScRBLIZ6CHIoJacRApgYg0SQsLAy5yxkSEZAxQAgbzeUQ0yC+hrAhCiAJCdKygSRyiI0QN0ByB6TvDhmQhMzSQab/2djYIDvHIGH++/dvSGaBmA8xARLCkNqFjY0NsicN0g+G1MQQSyFZAOIkZDZEBE5C8jWkfwZJEpB+KlwLJFtB6jzIigGIlyEKIEkRUixA6jC4CCQrQcIBUotDNELqYIgv4M4gngExH+4eSAUMISHxDlkgAsl3kPEMSPhDPAIZMIP4GlKkwmUhDIj5kAQJiUo0cUgsQPwF8RFEAX4vQEIVohLid3gHBjJABXEwZHAI0mxFNhCiBZmE1A2Qrgtk7B256IOoRDYBjQ3PKfCkBXEbmrLhxIUkAIiPIJGIlq8hUhASUhZB2JDDd+ELPyEtGEjpCskFEBKimCSS5GoYMq4LuYsQUnxAZtfgGQDSxIOUMpDGHbwnB9kHAhlkhuQfSJ8V0qqFlPuQMywhGzykpKR+//79/v37Z8+e/fjxA6IFUutAAg6SBCEJCJITIM06SC8HsmAbsnET0jyEjG1C0hk8AiAMSKhB2JCCA2IgRARS08BJuCCEATEQEruQljichDedIGdaQTpAkH4bExMTJycnDw8PePYWtPMHUnFCigbIimhIHQYhIUuUubm5IaP3cKshQ+Jfv36F2AW5swES8pCVXJD1uq9fv4ZUXT9+/IAUl5BRYki5ACkTIWEFCQpIqEJsgXgc0hqADJP++PEDMtYHmZCGl/gQlZA1I5AkAUmakMYBpICGBC98CASiABJ6kJQASV2fPn2CTPFCtpy+ffv227dvkAFYyCkQkPiF1BkQQyDFEAcHB2QcAtKseffu3fPnzxUUFCDDvBAfQXwHqXUgQ/eQtRuQlVwCYACpm+HmQ8piSKMTEkRwz0K4EDPhLkG2CBLIcAX////n4uKCHMoB2cwDWRTNyMgoIiICOeUGMkoJSR7wmReImXArGBgYBAQEIGeZQQyHtHchW7EhDoYkTogsRDvctWgMSMUD9y9EMSRXQiIO3tCB1BzI3ofUr5BIhCuGdJohCQZeH0AYkHwKIdGcgZ8LKRYhA2MQB0PUw6tSiE8hrVVIjoAMwkHCAaId4hFIRxM5lULcBjEW3vCC5D6IdogURBkkeOFxARGEKIO4AUJCghFiL0QE4mBIBQ8ZxoCsIIGUTpCGFGQRGaT5BTcTHrwQEyB5CjJWBMm5kO0MkPIBogbiPLjbIILIJCR+IdkfIg5RDNEIERlmJCStYsY+Lm/CAwS5aoNMt0HSACR3UxJiJFfDkMkeyBAKpByHNL0hPQl4Hoa4D5IEIQkdUuRBSjFIpQhptUGyBKQzBMnYEL2QeTtZWdl37969evXq4cOHkElBSAsRYjK8KQexAqIRHpqQ4IZ3lyHVKqS0hYcsxEbkTAIxGaIYHrJwQUhuh3AheiEqIUUPJEtAmguQqgiyWg3iX4gsZOwIsuSKi4sLsg4Wss4Z0qGBlCCQVcSQCIYEDiTXQTIMnA3xMsQl8IwN6QfA6zlIY+XDhw/fv3+HBM6fP38gg5aQPgGkdIBMIiAvXoUYC/EyZCwa0vqBVJOQW7AgFTCEhLgNHjiQsTL4oDfEasj+GV4w4ODggHgQUrpBuoOQQzwg3d8vX75AugiQA5ggM9OQZhxkgTekvQUJBEghBVlADl9pDNnD8+zZs/fv3wsKCkI6GfByDeJUyOA/ZOgSsiAZskYa0uKEtBQhE/YQL0BISNqAlGIQNkQcYjiyOCR1QVpXkCCCXAwMISEHan78+JGLi0tMTExYWBiS2yEDHpB0BVm8imwLhA1xP8SFkMIXMsAOGZSCpExIUoe4DaIewsZKwpMuJENBkgekHoIMcUGiANIFhJgGcQmkcQxZWwTP6ZAYgaRVSJUMSVEQqyHZE64dIkgMCWmrQZwK8R3EEIiB8OoTUv1DuiwQj0AcDFEGaYxCggiS/iGuhQQ4pJiCBAJEDcRSSEKFRC5EFuJgiAgk6iEiEBLiX0gCgItAGBDFEAMhgQNxKmRYEeIvSO6Aq4cwIFIQd8KbI5A2MeTGM3gaQ/YXJIggJqCRkGCBCMI9AuEOPxJSHEEqHUhfBRJKuHwKSWaQLABJRRATIC08NL3IEY3LQKziJFfDkGLx379/kMUgkAwJ6fxBKhjIzhNIKQ9J2RDHQZYIQg5DgJxpDEkZkMIavrgAMnzEyMgImfQSFBRUVFR8DQaQUIAkFEgegIcOpCCGZBhIqoIcDwKZpYaIQ5IsZOMmPClDpNASLsQEiBSk0QQJbogIhISrgXDhmQoSPpChUch6ZsjGA8hQMyRSIccKQsp6yJwo/AxnyJAUZCkWZLgDUvxBijlIlxoyXwgv1iGlNuRqBPhaJMhaGC4urnfv3kHMgaxmgqwF4+TkhIx5QiIOvkIbskgbklAgJQgknCFj45DdMpAJ1K9fv0I6o5CQhyuDBBQjIyPksBHI+ZSQ5gU8JCFXMoiJiUHOkYYUcJCK8/3795B9zJALGSENL0hi+PnzJ6SBAqm9IDdhQKp/SGkFyR4CAgJ8fHyQ5gKkS/Hz58+3b9/Cz7WAxDXcjxAvQ0pADg4OiE8hDURIdQIJB4h6SBEPTzyQNAAhIckSkgwgCR4SFHCNkOYgnAvZnwYRhOgVEBBQVlZmYmJ6//7979+/eXl5IZflQaZ1IFkJoh3iJEj2gTStINEKWQcASVEQWYh6CAlxJ4SNSUK6YhBbkGMTHmuQ2gsyzw0JQ0jEQdgQA+FlE8Q0eEKFZD1IZEESDKQWgQxuQ/QSSUL8BXEnxG2QDAgRgYQkpFiAkPDIgkQHRDEky0BKYYgWSJRB2JCqEeJOSBsUbjikSQGJNcigDtzZyBZB7IJLwbkQx0PEIaEHWaMHWSACWUQGL1EhQw7wYhPiBrheCBfiHkjhADlTD+4RSFqFq0e2GiIIJ+EJA+IFCBcStnA1w4YBSYqQfRaQMIGUABA2pjfhIQxJD5DghUQoJBtCUhSmRpJEQMU1JEFA4gDSo4IYAakaIWUcpCyAzFRBWsSQJScQ/0DOoIdUDJDldpBhNMjxexD1kPoVoh6SwiAVA2S/M6S/CCnFID6H1Fi/f//m4ODQ0dH5+PHjzZs3v379CjnhBTIXws7ODlkgChkigDgVUhxDtqBAeu2QUIMUtZBEBvcsxKfwfAVRCVEDiRjI2aoQNsR5kO44ZOQTwob0ICFDppBCEDIODxkbhAQCZBQX0nHh5eUVFBSEuBDiEcjGKsjeGEgdzMfHBxmFhoQApJPHw8MD6fRAZr/gW10hZzJD2tSQdrGwsDDksMmPHz9evnz5379/QkJCXFxckPXSr1+/hhRSkAFtSAkLWZDCyckJMRZSk0GuUoB0Oj9+/AgJT0hPlJeXF7JVkY+Pj42NDVITMDExQXz05s0byEIqyJZEyMDply9fIPUc5G4GKSkpQUHBv3//fv78+c2bN5CWCmQgGpIevn//zs7ODnHSly9fIF5jYWH59esX5KQRRkZGyP2GkO25P3/+hNx1yMfH9+PHD8jtIBwcHB8+fLh3756ioiJkShuU6FlYICsbIAmVm5tbUlISMqEOOZ7s69evkCE+SOTC1yFCzkKBlNeQegUyoghpI0J6UZDUCMmxkJoJUiFBkhmk6fP3798vX748evTowYMH////l5WVlZGRgWiB5DJInQpveEEyJqTOg9QTkFIA0kaB7NSHDL1A0ipEJTw9Q9I5pGxFTt6QvAZJAJAhfYh2iEsgVkB2VcEb2ZDBA0g9CjEWMkIGacxBchYTExOklQnJ75DhHIiZkPoDYjIkWCCGoJEQZ0AUQ6TgzoY0TCFmwr3548ePz58///v3j5eXF3L9NryWhWRbiF2QyTLIkAwkM0KG9CBlMWS8ClK/QtoiEL2QYIREHKTpABlqgkQKxHkQj8PVQ7gQX0A8DlEGCTdIRECqBMggEGTzIeTsaHiBDK9KIUUrcmhAtrZ//Pjx169fkEwKOesGUj5AVMLdAAltSFzD3QxJRZDUC1EJcSFEL4RNfxLZJcTYDglJTJWQwhBSR0LCE+JfyAkWkOlUyLoKyMwIJKbgtkMSGyRHQAQhBkLWxkKSNySdQNIGJN4h0YTpGDwiEMNZIHED4UBUQ4oYyGQDpDH48+dPSC0CuaMeogyyTBfSJYI4AlJ0QnrJkGk5SMkOqRchDWSIRRBZSDaAtDIgNSgkg0EyA2QjKWT5EgsLi56eHuQ4Aki9C6mQIAU0xEyIGyB6ISuNIdUJpGREC2VIUoMIwklkBpwN8SwkrCGpGcKGj79BjteA5DRI0EGapZBzlyB9/V+/fsHLVsgeecjmGciRVZAGB2SGEnLDEmRUGV6OQAIW0qmFNJYhHTVIzQcZmYdUJ5BmASsrK2RO8cePH2JiYpAaC1LzQZaGsbGxffz4EVIKQLIlpD6GeAqy4BZS/UCGNyHjwJCQhLRmILUpxM2QtA5xHqTqhdyECCm4If17SOqHbNBiYWGBjDm/fPkSMrUM2f4LWaIMSS2QVgILCwtkFTFkSxukNwxZ1/b161eImyEzf5BOw79//969ewdZgvDt2zd4tffr169Xr169efNGVFQUEomQ2hFSBsGnDyAnl0EqVIgD4NEKMQpyOCLEBIivIbPsEBJeVUPOAYaYAPEOPOgghkNmu+/fv//w4UNGRkYpKSlhYWFIuxbiX0hShwwpQdwAKSwg8QuxGlL5wVuxkHCAVEsQBfCki8aApG1IfoGQkBwEF4eXQZC0AUnDkOElSKUFEYfMQEHaIhDnQUo6uHZIQEHKEMhs/e/fvyHqIa6F24jmQjgXTQEkxUJKFUiyh9v7EQwgp0FBGgQQKYjtyAZC6mNIPoI4Bp6b4H19uBfgGiHlJEQcM3ghAQgJTLgWTC6kDoYU3/AAgQwfQopNSPRBqg1IOQOJfUh5BdEOcQkksUHaIhBXQUIbbjtEI8QNkHQLkYI0ryEBC7EOIj7MSHgcQQITkg0h5Q8k3UJSILw5BfE+PNDg4QYPYUiahyQbSAxCAhwSkhDtZJOgy24h8Q03Ap6kILH++/dvyIAeJAdCkjjElZDDbCElIKSagaiBHAsFKYUhHkPODJBkBOn/QZqcEL9BOt+QLAHpqUCGviFzPJqamjw8PPz8/G/evIEMvUISLiTjQcpxiHsg9kL6i5DGL9xH8FY/PFlDAhHiSHg4QJI1hAupWSEikBYDJO1COoiQ9sTPnz8hy+cgUcvFxQW5gB2ysg4y/AvpqXBzc0MYkMngb9++QapYyPJj+NQOpOUFWacGMRNCQoIL0kaGtM0hxzJDmkQQh0FKFsiBD5Be4KtXr3h5eeXl5QUEBKSkpO7du/fp06dHjx7BD8OCGAuJbsjhjpAyDtI+gBxlDPE7xJ2QVSRCQkLCwsKQKgeS6P/8+fPu3bsXL15AogPiTsih2ZACGnJXAeSaZMiAM2SCmZWVFX54JKSrCqnsIcEOSTwQ30GcBHEwpGEHacpAWoq/fv168+YNJAlBkiWkeffnz58XL148e/ZMWloacqQiJElAEgkkSf///x9yEwakZQlp1kDyMMQZkHwISTCQNAwZ24Tkxrdv30KSNCSIIAECGT+H1JeQ/AWpgCGLt+/fv//lyxd5eXkpKSl4CwCylwxyhDVkVTncqRBLIY6BpGTIngJI9xSSQiDOg9gOsRGThKiBZAGImRArIAkeYj5cDWSgCzKTCtnXDlldASnNIYUUvCsJySyQpAIJFggJEYffHACZ/oTkekznQUQgWiCOQXYqxMuQYViISyBn1ENiCpLMIO1XSIKBlFQQM+FsSMMLUphCHA+JdEguhrgZYjVEI6SZBXES3HfIQQQ3GT8DksUg7QNI4QA5hRSycx3S5IV4BB4jEAMhIQBhQ2oUyIEtkO4apNSFNPsgDkYjITkRYjukEoIkZvzpBM2QocWFxz4khUMSBqQzAGnTQ6YAIEkIuUsNqQsg4Q+JcUiZAwl8yDguJOVAQg9uESXhwwKxCZIDIQZB0gGkhIKU1JCGMKTwhbTHIYcZQZZlQbIENzc3JF1CVvpA9pBA+jeQYWpImQJZLoTcnoW0RyCDV5AaFJINILUspI8FyVeSkpLs7OyQmTNI5oEUvpD5FchsIiRoIDkc0lmEBCLEU/BBA3iyhngZEvRwNnJoQHIjpFqC5ECIFZBJfsh4HWTEHjLSxcfHx8XFBRmkhcyPMjIyQnaCQkjIuCiknQGZQob0+CHbaSBF1Z8/fyCX+UDODoN3PSF9OEiUQTIzJAFBhoIhFTAkPP/+/fvhw4eHDx/ev3//169f/Pz8srKyysrKSkpKMjIyHz58eP78OWTdE3wjOKQk+vTp0+vXryFTvxDnQRZSCQgIsLKyQqoHyEgpeJUVaDcUpJr89+/fly9fXr58+eLFCxYwgFSlkMbTv3//vn79ysnJ+enTJ0gDApIxIJusIN13yC3LkMICUkxARtgg1S1EPSTwIeuBIb20t2/fQtZPQcoXSK0MyUUQxZAY/Pjx48uXLz99+gSphiGpApLSICRkLPo7GMDTCSQPQ0yD1OjwOXjIZirIoBELC8vr168hq9ggg6KQFbCQRhI8vpiYmCANhSdPnty9e5eJiUlBQUFTU1NERATSN4IkM/hwNKSzDtEOkYKUBZAhH0gDFFIHQ4bXIMkY4h1IYsYkIWog6R+ZhIQSnIRYBGkwwRuFkOIeYgIk/UPaUpBOKqRhCkmxEDdACgRIQoVEJSQSIbZA6jaIGkx3wkUgCiARAbcIUg5CCoG/f//+/PmTg4ODj48PMigNH0WApyWIT+GGQDI4xBB4ow2elSDJBlK8QjRC1EA8BW8CQlwISRtobLguSDAiy0KC9Pfv35BtEZCuMGT7A8ReuF5IKCHrhZgGyT6Q6WRIToS07CHZEKIeTkKcBymHIfU3pNCGbA2FVPxwxcOYAYk7yI1VkHIJsrIY0pqE5HdISoOkDXgsQAbkIDNrkPIfMuUEqWLgcQQJZ7IDkAViEMQF8LoKklvgB/pAxh4hC1jgJ/5ASj2Il8ClLgtkKBjS+YM30yC9CkiGgfgNklwg9kLSNMR2SB778uULBwcHZAgeUgdDsjrkTFoxMTEeHh7IQBxk/BPSHoeM4kIKLEgDApLJIfcUQcpcCAkpFCAuwRNqECdBogRSJUAiEpJVII6H1FuQgVzI1iNIroA4GxKYkBoUsiIaUlZCOpeQsUdI9wIyhQwp1iGVIqRhC6kYIKU/RAQ+NAovQSAxBVED9xSkcQBpl8jJyUlLS4uLi0PcJicnx8vLC7nFFjILC+nKw+Pu7NmzkOYLJGbBp0iBVjxBDmWELCeGlFCQuIOsZoIMmbx69erp06dv377l5eXl5+eHtM8gRRik4QXZowWZA4aELaRXBzkXDOI7uDhEO2Q2GtIOgxRD8AoJkoUgsQARhEQ3PFrhgcMCngl+9erV27dvpaSk4OZArICEG6SJw8bGBhlBgRTZkGQASVdwZZDmDmQCBXLoB0QZJyenkJCQgIAApEUFqZYgs1CQZAPpWX79+hWyG15JSUlDQ0NeXp6DgwPSbIUogJSqkNoOkuogPoKkK3gvCjKnA9lFBmnUw7MkZNwVogsXCfEOmiwkYUPCBxICkNkoeJsYIgUZ7oI0HSArPCAzBZB12nAzIcEC4ULCEFJ4Qca3IHUkJOlC1GAlIfkIUjjAi0tI2oMnLcj0E2T1CaTVCHE8JAwhPoUkBggbEjVwEUjihCQGiHvgLoeoh5gGyXSQnIjsVHgRDGfAZeEicAbk4ATImS2Qw+MgGROiBWIRJAtAoh7ifYgsxFWQRhjkmCDIHjxIyxviWbhKuI0QMyEDVJC6H97ph3gWomWYkXDvQ4IRHjiQ5iCkuICkQEj4QBRAQhiSyCFRDz+0AHIUEg8PD2SDLqQMRA40iF64vchSBNmIldKQ+IZkLUifFZLsIJ1gyNrmr1+/QrITJC1CimBIkwrSvYOsiYUspYGUJhDnQtbyQAbcIFkaUmTA3QcvBCEHWUBqpn///kFOTfr+/TsPDw/EPZCWHaQQhCyFhUy8QYYLICkYMkgLKaAh/WzIwCDEUkj4Qki4A7AGH7xUggQxnAsJBIheyNwnZLSZlZUVsloKEgKQ0hBSn0EKIEhTAOJZyBQyRByy/BiykZSHhwdy5gakrIG0WiBFMGRwCVKmQ9oZEF+zsLBwcnJCaixIxfbnzx92dnZRUVFIb4mLi+vz58+QoIMsweXn54e3byCDq5Bp4+/fvwsLC//48QMycgipdyGNKkjahUToXzCA7HmFrBZ5+/bt06dPX716BVlLJSAgABlvh9wAAUkAkHCDmAMPFsgoAqRvB6laIGECSVeQJhfEm5BhD0jDC7JMDN6oguQoePEKaTlBggKSzf79+/f69esXL14oKytDNoNBYgfe1YYMVLKzs0PGliGjPpAYh8Q+JIVA4hey8enfv3+QNTL///+Xlpbm4+Pj5+fn4OCAOAbSaoZ0lyGZC3JNFmQJm4aGhpKSkrS0NKQUhhw5/vXrV0iAQ0IA0i6BBDgkYUOmliENBUjMQhrHkBYJRA0kWeIiIckemYSEFUQv3Kfg6P0LCUCIkyA1PaTqYmRkhOwIgGQrSKEBKQ0gPQa4ORCLIKsUId6BOBtSAUCClKBTIZZCSEjJA8kCENshxsKrJcjmCEikQ9wPdwOkeIX4FBJHkLQE6QdDkiskxiFOgtgIMQoiDrEXIgsxB6IX7hFMBtxSOAMyXgi5rRKyIAA5GUNMgAcgxHZI+wPuZkhfCJJxIP0ciOEQXRDnQdgQ7ZCrZSANJsgFXBBdEDUQ9cOMhAQjJI4gcQfxLKSygIQkXA08iyEHAiTZfPny5ePHj5D76yBpD5KA4eZAQh6iEVKXQ9gkkaBBaYhBkC4U5IgryDAUZKUopDKAjKp/+/YNks0gJKSghExzQq61gRT0kJobUhdCiiFIhoF0HOHug7RwIY1QSL3FwsICuQYH0maEnFYIKRYh6QauGNL+hfQvIe0dyC5PSFMRMnkMSe7wyhhSeEECF1IswqMBEisQhyELQmIREj4QEi4LmWCAZF2IMyCVGWQ1BGRSEHIOAyQnQLq5kJwjKCgIqVAhRRvEdsi9SRwcHLy8vJCZQkiMQPwCGQ+EuBCiHlKjQwIc4k6ImZBwgPRohYWFv337BtELmRSARBZkzBzSxYRMb0NaSAwMDNra2uLi4pBzAyAtaLgzIPZCJucgUr9+/YIs9fr06dO7d+/ev38PSQaQ3TiQReOQ2h1SBEAqfnhjCH7cJmTBHcT9kNrrz58/kDQD6SBCtEDSA8TLkHXazMzMkAXqkNiBRApkqxvE1xBDIAkPMt7++fNnyOWbkCFfiEZIuoLMnkBGViATMZAqCpKNIUUwhIS0JCAbzyBtFFFRUcgMH6R2h8cU5ApLyBo3yKnX7OzswsLCSkpKoqKi8HvGIO0MyGA7JFtB8jmkEQYphSFVIyQ7QFarQbrdELsgToKkBLinIFJoJDzxQ1pFcC2QcgqiF5I3IUsyIYkcUlVA6ntI9QZxFeR4L8h4BuQmK0hwQcyBpFLIOCpkFAHSFYbYhbX4Q3YtvCKEMCDNLEjhAzET0lqCzItDdlrDIwgeXHADIe14iAK48yA5GuI2SOMAoh5SUEDshaRMiL3IRS0yG2IOxFiICRASTRzSaIB0RSDTk5AmFyRAIJU6xBCIRkhrG+IAeCPs58+fkGCHyEIsggxJQiIFIgIhIR6BNJUgm1Yg58RBTICoGX4kJPQgIQlPkBBvQoIaIgVJ/JBUDRGHxykk3CAJGLJ8hJubGzLiApGCmAYnIdrhXJIY0GoYPrwDKV5///4NOckPsggeMooIKX8hWyMgJQXExZAF95DKBl46QEaGIV1kyCn/kNkyyOg0JHFDOkCQUgxSaLKyskIWXEA0Qtqq8IkTSJBBzIF0KFlZWSHbciBZDlLmQqrbL1++QKpqSOsPskQTMvoECUQ4CQkvyIoeCBtCwiMSEmEQD0LYkE0LkAIF0kSC1MGQUSZIIQVpnkNyDmTAGVJUQfpMkH0mkEIEUhpCGj0QMyF5FTKNBIldeAEECRPIcAUky0FISDaDTHhAQg/SgYb0eiG+g4zZQpwB2XcLKZIgmRyy8JidnR0SgJDDvSHVKjMzM2SuAVKbfgODL19AFxlBaoUPHz58+vQJ3nOFzBNDDIccoAFZ5ff3719hYWFI+EC2Y0HmwiFr8SDa4ZU9pNcI6WpDbIEUUpDJZkFBwW/fvr179w7icUiTAtJkhEQf5JhuSMhDii14ZxSShiHlOKQlBKnDILU4pCyGJA+IFyAkpLUH2XcObyVAbIF0giFjgxA3wBMkJI9AZgEgW59FRUUFBQXhfUdIKQwZJ4RcdAMXgdgISUKQDAXJHfCOO6ShA0ktEMXw9AkJBEwS4i+IMogsWiEFUQDJof/+/YMcJQZRD1cJiQhIuoWU6XAnQcIKYjLEEEhBBhn8gDRYIaYh5y+IemQSUjJCWgwQc+DqIc6ApCJ40oXcPAZJPJAwh7fCIeUGpEEDiR1IKQQpLiC+gFSxaE0o5KCAZHNIZoS4H86GcCGOhzsSwoWTcHFIRoYcyQ5pcULUQEyDuBxiIMTXEB9BCh/IyA1keA+ykQGSVSFjSMghDzETTkLKK4h1kK4OJFohTT24suHHgAQ7JIohIQwJJUg4Q+IXj68hLX7IbXWQhbeQYTBINxViOEQ7xHAICREhiQRtwYTENGS5E6SMFhQUhDTPIdkAcnIvZFYfsiIa4g14RxPiT3hnAjJmBZk2g5QpkA0YkCUqkD4BZHAPnrghQ/aQ+h7So4UUypD+ASTNQVInRBZSi0D2EEPyG6RAh/Tmf//+DelQQvaYQiau4EUnxFOQ0gGSvhkYGCD7gCGWQhoZ8A4BRA2kooX0Mjk4OCCX3jMxMUG6aJAVj5BKFOJZyLZgSAaARB5kMzHEcEhDGFIQQMQhY/iQWTeI7yCVNGRoAVLEQ3oPkKHgr1+/QgYkIT1FyBgyZLkKpEyEJDJIWwQy2ADJdZDJdUhJBIk4SFcAkgz+/PnDzc0NiVlIkH779u3jx4/gpUvfIdtzIT3gv3//fvz48du3b5AWIgcHB3xK4u/fv5Bq+9OnT5BhN0ipys3NDemJ/v79G3KkBiRsf/78CembQpaGQSIU0piAVMCQpdQsLCyQDV0KCgqSkpI/f/589OgR5GoHbm5uyOw1fL09ZKkUJF44OTlFREQkJCRUVFQgG38hnoVsG4MU0JDWDCQYIVZDYgqSESBdDWZm5nfv3vHx8TEwMLx///7r169cXFz8/PyQczYgaRjSjYY0FuG3GX7//v39+/ecnJzS0tKsrKyQA73//v377t07Tk5OyDEmkGWPkJoY0n2HFBmQWGNkZISs1YAcgg2ZAYVssIHkC+RCAdK5h5TjkOoZkmEhRiEnckg5Dgl8SLsNskoAkmwgoQEXhwQRJHYgIwGQ3A0xlhUMIBEKcQwkBUKyG6QtDimnICREHNLowSyzIHohzU2IN9nAAGIXJONAcjQk+iDqIZ6FlDOQ49ggLWNIIoSogZCQBAAxDZK5IEEEyRGQbglklgfSE4I01yDtD4hrIe0AiC54FECaCJCWEyRwIEU2ZBUhpDMACSJIqxeSZiAxBRl6gTgPEoCQxjqkCQsZk4A0O/j5+SHTdpCIg4QDZJoAMvoC0Q4xEFJoQM5NgrgcIgIpJSCDHBBfQ8QhjoG0jCGNYEj5CZkBxBVfkJCEmA8n4c6Ai5DNwGUUZPAPkjIh+QVSbmOqh6Q6eExBXAIXhLTVIFzIGAMka0DuqYMs+IAs/YOYAIloiCEQEhJx8PCBOABCQhIbRBlWEtQbhpS2kOQCmfOHnFkBiRVIDEGKIUilCHElJCdA6gDIGbmQHi1k2BMyLAmJS0grDJJb4P6ENEshfQJIGQ2pQuBzfpB8C87arJBWKtxLkOQFMRAS9HC/QdRAXA4ZD4d0IyDVJ8TNkHQG6a9AsgSkPwHxKaQIg7sT0o+EBD0kE0IWrEGaz/BsD2mCQCpgyPoySA0NyTZMTEyCgoKQDgE840FWYEFax5DghVSNkD4ZJFlA5iEgtTvEDZAWMcSbEEdC2iWQRADRBQkNSEKBRCskQCCyEC9D2JA6BlLoQBYe//z588OHD5DVW+/evYMs9v7y5cvr168hTv3+/fuHDx8gvU9ISELqeEihA5kdZ2RkhC+1g2zggTQvIOt9IA6DJADIfRWQnb7wkRhINEEKFxYWFsioCcTZkJWlAgICEhISkK65oKDgr1+/IG1VyAoGZmZmSL+Ti4tLXFycj4+Ph4cHcsoH5OpMyLImBjCATyVCyhFIxwJSF0JaJ5Bk9ufPny9fvkB8/eXLl////3///h1yIikkc8IblJDiEhL7kKbt////ISvyIE1YyHWHkGoVsjILMpAAWWAPiWVIEQ9J55DggpypDkntkFwDYUNSAtgrWAhICoGYCY8sZHUQQyCjtZB8DSl9ILkA4ndIIofcCQ1pQ//79w++BA9e7kDKGkiVCUmlkBiEF/eQRAhPqJAUiOwYrGyIFyC6ILkJogzicYjbIGkJIg5PxpC5CYgXIFKQKgdScUKaa5AWBsQLECsgYQVnQ8yHuBxiCBoJUQl3DCSy4CQkGCFmQhwGYcNLD2TtECm4CKSZAok1yDAepF0IKWYhvoArhrgTElZoLoRwIc0ICBuiGBL1EJdDxCFsiI2QBhBEHBI+kKoOIjJ4SEixAHcPJNAgJDwW8AQLXCNcDUQvpHaA1BoQKUghDAl2POkBbiCRDEidAuoNQ6phyCpWSAkFj11IyoBUEpCaBpJXIaveIbUXJClD6kvI9UGQYRNI6QzpsUEKDkg9B8nzkDIOIg6ZnoRMHEJO7YCYBpeFOANOQkyAcCHlJiRJQRI3xGTIACykVoAUBxAS0sKFhDKEhHgWkmEgHVBIWENCHxKakEIWEvrc3Ny8vLwQ2yE1B2RaF3JiBuQ0HEhNAKl1IGdj8fPzQwIKEjiQRjpkozAkuUBKXkjvGaIS0nyBBAKkjIM4CRLs4L4BG8RJkEiBeB+iEuJsyAAGxIOQPAYv++BNH0h++/r16/v37798+fLq1av3799//Pjxw4cPb9++hbRCfv78+ebNG8jBI5CxXEgXATLFBVmeBmkNQNaaQUbOIdUnZGAHMjP98+dPyAFekFoZ0i6BsN+9ewfpZkEadnCfQoyFOP7fv3+QUwsgIQDxIyTi2NnZIcdYMjExiYmJsbCwCAkJiYiI8PHxQTZWQZaMQfo9kLiDa4dwIaUPpB8MqZIhCiABBekj/vz5U1BQEHL7COQKYchEPmSKBKIe0oqChOqXL1/evn0LmW4QEBDg5eWFLMiC1/2QoRTIYnVI1EBWVMArYIiZ8CNiIEUwxBeQwhTZqXDFEAYkDCEkJHVBMgskeUOCFJ5xIPvoIHkQkggh+R3St4DY9efPn48fP0KaOJBpYEhEQFrJkIQHMRZiHaSqg5gD8R1EDcR5+ElIpoCTEI2QbhlEI7wFCckmkDYiJCNA2o6QTQqQsgJiDqQahvgIvsoJUsdA8gjEZEhBDCkfIXkKogYii0ZClMEFIRZBwhwiCEk/kK0EkOs6IO1vSPsAbi9EC4QLSYqQCgYSnhARSIkKGR6DDGlAnAoJW4hPIZZikpBWMsQ0TEdC1ENshwwTfvnyBZJaIHkcogDS+YawBwkJD3/MAIQkWkgKh8vicjakIEUuCiDhAJnmgyQ22nkftMsI0qiHdPIgi3cg08CQPA+pgSAkIyPjx48fIbUXpJELaeBDejOQUTVIuQAZzoLognS2II0pSMUASTFwWUjJDglQSJUP8TykSIInQeQ0BNcL6e0hS8Hn+SADa5AVN5BRVshyJ0g+hNTKkLCGtA8gFkHiCdLuhoxuQfpA8NYQpIcKGSGELDJiZ2eHzPhycXFBlpjBJywhS674+fkh+ykh9RPEOkjxAZklggQdpFCDeA3SqYKEAMSRkFQFKfEhPSfISBek3oJ0CCCjYZAeCaS0hScseBBBCiPIxAFkTvfTp09v37599erVx48fX7x4ARlqhhwHzcLCwsPDA6nqIFUvJC0yMTFB7oCCN5ggaiDWQUbAID3CDx8+QPqOEFe9efMGUrRBMgakwQEZCIGUKZDAgWceCBfSFoFMln/+/BmyCRhywwQTExMPD4+oqKisrKyIiAikeuDl5RUSEoKwIVkIYhEkciEkxAGQYIGIQHZzQua8IQkY4lRI3w5SSH39+hUScZD+Nw8PD6QLDhmygyQVSHaAVLG/fv2CrGAQERGB3NAAiWVI6wTSloJUG5C5cMiiLUjWg9gLabdBlr5D1ENcDg9qiOPRSIi/ICohlSIkeUNSFySvwSt7SLKBJFpIfQYpfCHVD6Q2hbSZIOt6IMekQ4yC1wEQGyFVMiRHQ8yHKIOkRkgYQuIUUhmgORuNC1EDSbGQagmSCyBxCqnJICkfMnkBcQNkvBdSXUGcB1EJcQPEbRA3QOIX4iqIayE5FBJWEBGI+yHFGprzkKMA4lRkBZBAhlgH2fEBWQkPcQwkQUIyL0QvxBkQqyGehTgSkt4glSKEDUlsEO9APAgp9CAmI7sBzoaEDMTBcDYkMCFqIIKQsh3S3oKs04QcYABxIWRoCqJ+UJGQ4gLiO0iAQApwCBvieIgHiXE2JFggiR9eDkOsgMQpMYYQqQZqCyRHIWceSAqA9MchyRTiDcigyufPnyEZErJ9ClI+QhY2Q1IwpDiGl2KQ83cgdTDES5DsAQ8UOANSykM0QlRCghWSLpEDFJItIf6E9F8h7oS3+CClDyR/QqpbyKwM5JwNSDUMmReE1HAQoyDWwTMDpJKDhAxkXQPkDkFIhwlSZkH2gwsICEA6wZB7DCFO5eLiEhISgtweD5k9hXTEIavYIIP/EDdAGmLwLAdxNiSXQvZlwctBiBTkdC1I3xHSvoZMmkLcDykvIA0diHZI9EHK9J8/f379+hVyAO+7d++ePXv24sWLt2/fvnnz5u3bt5ALBL9//w4J8z9//kDOi4aX/pAlqZDggg9zQVwO6StDohuSmSGLnD98+ACZJ4bkakiAQzrZEIdBAhySyuExCPELvByE1P2QgIX3eFhZWcXExCDzsqKiolJSUvz8/AICApAUCO8yQkZHvn//DsldEIsgHoSQkJCErDT8+vUrxPuQxUSQnhwkMCE70yCD7eCLEEF3SED6tRCHQbwDKRwhyeP///+Qw0QhQ+KQHickuCDJHhKVLCwskLs9fv36BS+pIf0/SGsP3nWDtHoh7RVIyockdUiMYCUhiiGZGqIAEgIQNkQ7ZEMRJP9C0iek0QnxFyR8IAECGQeC7PiC1E/wmIIYBR9sh0xvQzIyhA2JaIjHIbYTJCG1CyQoIB6BHDwHaaZAah1IgEMyEWS9J+RMaUiZgFxWQDI+JHHCkwfEWEjbCGIUJFVA0h5yWGF1LSQ24VEPCQSIaRCfQjYaQEaJIIU4xFPIDoOHIVoQQVRCikRIKxYSC5AUDteFnLAhDsB0KsRquDjEbfC6CiIO8Tik2QdRAEkAcN9BlA0qEtlt8ESOKxDwuBziX4hpkEYeZBgDXuRCuPBghKc3PGYSLwXaIAQZSf727Rvk/jvI6iFIgoaU3ZCkBtm1CWksQ+pgSE0OcRmkoIRUtxDPQNrgkFkNSLqEFGeQlA3J8xCVEBFIjoVEPCTjQZIFJHAhqRaS4CDpDxJwEPUQkyHehtgFaeBDxCHL9CE1McQcyOwjpKKFuB9uGsRwiKX///+HrFeCHLPMxMT0/ft3SNcN0uGDVMCQ5VqQrbGQ7YA8PDyCgoICAgKQAgtyHBWkMIWMlUGW2EBWQEAcCYlvOBsyhABZGQspcCGFDiSsIAXKz58/IROWkH1QkKCARBBkDS3Ey5D2+M+fPyGdSMitf8+ePfv06dObN28gS40gZ31AGgqQteWQUgyyEpiLiwviEkgLDBIvEBdCpvDhaebLly+QZVaQ41YgA84Q10JSFGS4BdKwgMQmpOiBOB4SOxDzIfECiQ5IWQk5wh4y+CwqKsrLywtvJUA2C0EWu0G0QJIWJFoh65DhbMiIMeTINkisQfqjkBWCkMVHkIIeMhsH0QgZp4FMi4qIiPDz88PrYEhGgIQYpB6C7E/j4OCQk5ODdM4gjRJI7EA60JAMAhnegAyKQKaHINUexMsQkb9//0LSGCQNQEIM4ipcJQ4kz0LyEaTpA6lX4CQ8eCFtNcgxIxCnQip7SKxBHAlJGJABMEhig4zTQFwCyXcQl0CcDSnfISMlEBMgGQqikoEBpfSEC6IxIDEIT/CQkgQyHQZJIfA+AGTZGsQxkLiAWwovlyDegTgDkowhJSlyMEIcDxeBRCgkDCGCaC5E5sK9DxGEdHMheQSedyDXXUCqVUiVDw8KSKKF2wLxOySyIMv9IM1rSIKE9IwhWiDWITsVIoJGQpwHISEa4SkEohISepCCEdL+hgzYQDI4RA3EDRD2oCLhjodXQJBkA/EpMU6Fhwak6QMhIcZCAg0eNcSYRrwaSDYELdGC1CuQi8chbWHIZCdkehUywQmJDEgxB5nfgix9guQ3SLsYsp4ZkuchxRCkBQFpu0GqGfjoK2QBBaS3AUltkAE9SIaH+B+SZyBsSFhASEgPFZJnIAUTJDVD0iJkphlSDUMWPUHmF+E1HCSLQtwJyc+Q3AIxHB7ckJwAMQ3iBkgxDRnDh6zG4uPjgxyqDGlVQOpmLi4uAQEBQUFB+F3CkJYspC6HjGlDxi0hJyJBCgVIqEKyGWRRD6Q4hoQwZDAKEoaQfhtkKQ089UDG2yEVG6Qk+vHjB2Sx1devX9+9e/fmzZvXr1+/fPkSMvj86tUryEQgpEaEpFrIYBekqoAEICQ5QpaVwUthSF8W4hjI7DvEEMg4ASQnQFZyQqIbEtSQ4gySMSBhCzEBIgJJMJDkC7cUkq4g4wqQZW7i4uLc3NyysrKSkpLws8kgaQBSgkAaYZACGuIFyHQyZM08hA1pc0BWEUK6rZBAhngQsnQZHh2QHfNwLwsLC0PWfEH27EJiFtKeg3S7IZ11SFMGch4cxDGQFAKJa0hyhQcIZDoZ0tuG9NohB9dAinJI1QhZYwHRAglhSHKFhBguEpJH4OZAYhle/UBSNSSZQdIPPJlB8ghkAAySIyARBPELJPogEQe3GqIM4k1IkxoSL5DcDSluIB6HaCfG/ZCiA5I9IfUoxExIfQCJa4h3IE1VuGMgFkEKCohF8OQBcRukGQFRDzEBYj4kTODa4e1CiEpMEtMvEBMg8QgpPSDTDZCzYOGj/ZDggrgNUk5CROA5GmIypC6E5CPInD1cC0Q9xKmQSh0Sa5iOhEQBxECIdogauAlwLqQ8hFTDkAEDiHcgKQczkCEaB5aEuBAev5BCA+JgSLBAEiqyxzEdDJeFaIHEOzx8IKkXUrpCTMM0gTwRiL0skJtqIOswIcUfJMohR09AxsQgtS9klQ2kTwPpJUOqJchAJWTcCdIVgCQ7uGmQ+g9SwUCa3pCcD681IYvOIekPUj1DvAoJBTgJcTGEhCuAZCF4WoTIQkiI+fASFqIGkjMhNkLSHMQoSDkLD0qI4yFxCcmf8FWvkBMoITcW8PDwQFaQQk4P5uTkFBcXh9zNBwkuSEkBOUwRMtYBCQdICMCb9hBfwBslkCQFWeIE6S1BBqMg/oLsf4X08CAta8iGKEg4QypRSDn+7t278+fPv3nz5vHjx8+fP//48SMkaiDmQ5IvxMuQcg0SuRA3Q3wNGcGDlObwzAwJMYh3IMfjQU64hdTrkCO9IDU3vAKG2AIpR+BsePEKjwhISQGpzyAVoaCgoJiYmJycHOSWRklJSSYmJsj+AUhoQEyDuA3iJEhnF5JzIH1QyElekPm5z58/Q7bSQXrDkOiATOpDxnggS7og66ogjQx45Qe3GlKIQ1ImpBKFnICGnK4gExmQHVMQh8G9D6mrIGkM4mWI+yG1IKRxBol9SKMN0qaBhBLEUmJKBEj8wkmIFZBcAC/3ITEL31MAqaIg8QKZzYHvi4O4B5JQIQogyQBiICSIIAOwkOiD1JcQ10JG4yE+hZMQjRAF8EhEY8AVQwoHyDp5SDhA0ickDUA29kDSP9xVEC5k7x8kECBJAjL5BRGBhAmkzIUMxsIdACk9IKZByhC4FDID7kJI8Q0xFrKlEGICfPMevFiAlCoQkyGBAPEFRARiDiR+IdEECXOIIyFmQkIDEnQQB0DYkDBBdh4yG2ILXD3EqXAFEC4kPUBKAEjZAtkHBanbIAEI1zIYGHCPw6MPEnSQQIMEKSS4IN7H5Wa4LMRAeGhAOnLwhi/EWIgsLqNIEocYCKqGIYUCZP0eZJwNsn7n69evkL0ZkD24kOQLiemvX79COkCQjte/f/8gNQEkzX3+/BmyogSySBiSdCDzx5BpQkgjEVLBQLq8kLY2xM/wgIAEKCQ/Q2YNIYohCiCpGdLSh4hD0jTEYxArIKkKIg5xKiS4ISbAQxOiDBKRkEVkkHIWslcY4inIGhDI2dGQPamQGh0izsPDAxkshXSAGBkZP3369PHjR1ZWVsgmP0jZBGm+QOo2SE0MGaeClLOQ3hukyIbkRkiVBtkLCEkKHz58gLRJISN+kPOn4EEBKS8+f/4MmTE9e/bsjh07Xr16BTnNDnJNL7zxBOlPQ8ZaITUEJA38/fv306dPkCuPID1vSUlJyDkYEC2Qzjrk6AxI/Q2Zb4YMpYiJiUlJSQkICLx9+/bZs2eQzUuQcQJ2dvYvX76wsLDA93RBZkMh9zFArkaALESHbPMVFhaWk5ODhDlkVTkkEiGdJEjhC6nnIEdIQq7YggQvpMH35cuXDx8+fP78GXK5E/wsX4hPOTg4xMXFIeZDVr1BykrIkW2Qw2Q+fvwIWQ8hKCgI2bUMUQmJDkiPAdIkgtTBkFwDOfgCcuwOpIqCF39wx+PKrszMzHCNEF2QxACpttF0QVIymiCkdoE0tiARBBl4gNRMkJwLWXwAOUTl+/fvkOCFdPEhpe3v378hUx6QRAXJ/pDeMKSLBsl6kMwFz0FwB8MZkFwGX0mA7FRI+QgRgXgEQsJFIMZCZlUgg9KQZW6QXAwRh9QTkOYUpA0KKQEgbQVIpECyNiRnQYbcIdkWUqNDgheSbOAFIEQQ4h5I/oIohhQ1kKIJUlZAggsSwpAV9ZC1F5DQhrTSIBEKGTWB5DWIIyGtf0h1C8nXkIIOErbIlR9EPaS/CwlbSOBAXAJpAEGyJ0Tk79+/kA3H7OzsPDw8kK358GYWJNbg/oKELdyDkDEeSMsS4n5IYELCBBI7g4SEpASIRyDTppBRVYhPIYUkJKmjORgSsxASTQrChQcycr6DxDVEAUkkZKAREuyQxgGkWoSseAdtWIKUnpDREkjVAsnAkFVakDExeCKAGAHJP5CqBeJhSJqAJHd4zockO0jkQWodyBpsyOYoSN8LUr5DzlyEdIDgVkBKE0hwQAyBkHDPQBTA1UMyPCRkIR6BlMWQdgYkBCHZDK4SwoAUlHCfQnICZHgcnq8YGBggVyRBxiQho8qQ9ArpGUP2rkDWsEDOlPj27RvkRmTIseCQhb6Q2WVIFoXc8g0Jech+a0gBB5lqhaQwSJUA2RkFaRZAMgak+oQMXUAyJ6R6QM66kP2vkDVHkEwO8S9kwgxy4ibkXpovX74wMzPz8fEJCAhAlpNAdEFSNuRaJMgEKsQuyLguxD2QhdCQhQWcnJxiYmKQW4M+fPjAzs7+6dOnHz9+QC6e+vv3Ly8vL+R6dkhoQ45LZGNjk5SUFBISkpSUFBMTg1yQICgoyM3NDVkrBCnjILEP8QLkYCzInl2IIyFpD9I7/4QEIFtdIR0+SLMGcg4XpHkEWSsH2XMFafBBsgdkgT2ksIb0lQUEBCBtTUhVBM+EkPTGysoKOeUGEteQaR1IYkNOrnBduBiQSIfLwhM/XAQXA6IR4hjIGACkVIWLQNI/pFMFKVkgS83//PkDaRVBkj0k70OmzCFnF0DG6iFlGaRcg0xIwXMfJPtA6idIgQhxNiRjQkiI8zAdD3ceRAoSxZBCHxIR8D0OEGfAlUFCFZKPIOohRmHWxJB+PLx0hmRDZHMgZRekTIO4E+J+CBsiDlEPISGyEDYkPCFBDfEpJFjg4QDJrZC6H5Lv4GUp3GSIA+AtCUhWhZgA8RTELkwS4hJIHQw5NRaynAXSj4IckQRZiABxG2R0ChL7kDwFEYEUwpAxUYiDISZj2jjYRCAJBt59h/e+IIkHEoZwN8MDE86AS9GaAWlvQRItxC5IyEPSGGgvFGSNK6S6hg+TQioYyBJfSLkDcTokJUHWCECqYeRUBUmCkAFJyGA1JDohE2yQGggyzgY5zAgyiA0pOiEBCjksEFLUQpwLcSgkaUISLkQEIotmO8SRkNYlpHSAlM4Q/0Oqf4jhEBJSdkBUQhwPKW4gNTdEL+S8ZcgJUJBzuyD9JEjmZ2dnhyzQhRzLwMzM/P37d0hvEtLshSz2gVzdA6nUIcu4IKu0IOUaZIk1ZPsTpEcC2RkC6XJBRlkhAwmQ2gtSc0NqQUiUQUIDIgtpgrCwsEA28EACH1JgQQYzIAu4mJmZIedaQLbWQFpFkMO/IFkUUuN++vTpxYsXjIyMkGoGUuJARiwhRRuEhGhhZGTk5eWVk5MTFRUVEhJ6+/YtpFkgIiIiKioK2XL69OnTL1++cHNzCwkJQSbMIFcXCwgIiIuLCwkJwVMdJC7gMQWJLEgUQ5pBkKbSt2/fPnz4ALll4fnz55CVa5COL2SuBLIZD3LiFT8/P3wzMWRhFGQuAGIXpLSCNG4gx4f9+PEDcl4jpE6F5AVIhwOSqCBaINc8fP78GTK1DDGTlZUVkmIhsYOcbiEimCQkv0C8DDGfSF0QoyCZCOJ+iAikJII4GC4LGXeBLM+GdL7RGtPwMgLifoivIb1JSAkA2Q0IcRukHwmJHUjxBxGHhAyEhItAXAUnIbEJ8SlEEKISkvIhWQzSV4MEKUQlRA0k70OyLWSJPqQ+g3ffIeMlkLQKyYaQjgHc8ZCCAuJZiDkQkyGxAHcPZnRAFMAVQwoQiO0QH0EUQEY+4HdjwB0MMRCiEqILov7Pnz+QNTqQmS+IAogz0EiIFMQB8FEBSNMZMkIDGV+EDLbB6wBI5oX4GlIgQLrdkHkQyO0vkCEfiMkQEmI1PPFAuIONhIzWQA5sgOwShHgQkv4hiRASTZAkRGf3Q9IkcnhC4h0yvMcCOTsaUvh++fIFMjwIKc0hfTLIqA4ktiD5ENKYgpCQBSmQQ3rhzShIKQ9pXEOyJcRKSFcP0vOAhAgkA0BGpyHZG+IseDKFpDZIwEFKBEhugTTt0XwFD2tI7Q5xM7wAgsQHpDCFuwdSdkBsgfgI4mzIwB2k7uHn5+fh4REWFubl5YWUX5DCHdJ3h1x0Cl+N9ebNG8jpTpCpQQEBAcgaLvgRDZBqCZIzIUU/pHkOmbWF1HyQvT0QuyDjB5CAYmBg4OXlhWwfgtTckI4g5NBEHh4eSOsBkmE4ODikpaWlpKQePHgAOcUJPiQOCTfI+Dlk0xSkyQwZW4ackgHpfEC2skDO3ICsZoLEAsQEiBsgPoIY/unTp/fv33/+/BkyDgZxNqStysvLC7m0GNICExUVlZCQEBQUFBISgoz3QqZjId0LSNxBQgM5MUD6apDhlrdv3378+BGy2fclGHz79u39+/eQcQJIaw+ygRhyaRXksmR4HQ8JRkiqgyQASNKCFIifP3+GdC8g7T9IxQbZpA5JjRBfQ5Ix5DZlSNsL0kKCdOLhoQTRAsn5yIIQEWQSIguJQWRdyGrQ2HAtkPQP8QskmiC5D5Ly4bogMQ7ZFw7ptUMKbrilkPILMjUIqbEgIhDTILbATYOsf4SEErwpBnES3CUQBlwLMgPiTriZEI0Qj0OajJCcCHcAXD0kmuAqIdkWnq/hspCsAZl0h9eCEOvgXHjlBBkOgbgBQkJUwkMGkkIgboAogBQgEDYkuULa7hCNEPWQBAlJ2JDyDWIj3PGQQZevX79Cdi6ws7NLS0tDSiq4I5EDDaIRki8gVsPLLsgIB0QxNxjA1zdAYgpiNSRLQkoYSC0OyXGQZUCQ5inEZIhHIGzkcIBYMeAkpHqDVFKQZAZJpfCGI8TlEHdCIg7ChoQhnE1rBiRpQZqV8MCHOBjUjeHm5oa0Gb98+QKf04UUiJCBFEiXCzqEDU5Q8MyGPBgCmaSEDPqxsbFB1uhDdkFAhvIga60hhSOkUIMkCEZGRi4uLsjoIiTI4I6DBA2kxkULNUiahiQRSEpF1gWphiExhJaaIR0USApGJiHmQ3I7pA0LGR6A7OwUEBCAnGIBnxSHjORDgoiJiQneGIeM30KmOfn4+CB3Y0D6kZDhAUhdDg5I0DJ1yDnMkEoaEjiQMhHid0jvGTLOBlkrC5n0heQfSKqCuBluIKSKgix8FRERkZGR4ePjg5yhAQleSLsEMnnPxMQE6YJzc3NDthRDii3I8BSkhwTJvfClc5ACDhL+kACEtKIgXXB4sxoyKvD3718RERE2NjbIjK+QkBBkWh3eJYVs6Pr79y+kbobXapDogAQCpKkHmfeFzLz++PHjy5cvkL3OX79+/fTp04cPHyBTWZApA8hGMoilkDOfIT1aSB0MMRwyloO8HAHiKUgxClnqDDmyET5hDGl2QKocSD6HF2GfP3+GD3JAYhASUJBkCQl5iL0QT+EnIXohaiAmQNi4SIj5kEoIkq0giR9SDUAyCCSzQNwAvxoLEjgQZRCNEOsgcQoplCGJHNlqSIKE5GLIoDGkGoAMgyGrhLAhzoOw0Ug0KYjtEPdANmtB7IIEKbyLDDcEoh2yCRBSC0J8AalUIMkJclABpJ6GxB1kxgGSeiHqIbbA2ysQY+EhBncVRByZhBxFAAlhyKgAZKEict6EGws3BxJTkFiGbFR58+bNq1ev7t+//+HDB0lJSch5A5A6G+5ZTAbEQEiLGTIax87ODkmKkCwA6f1DEjnEOojjIb6G5FZI/mJiYoJcogMZpYMow7RxsIlANqNCBuEhByFDEg8kujFDHu4vOAPiI0hIQti0ICHWQbYeQIZX4ZECqoYh3QvIMeiQTi1kJgxSuEMqWsiwJ8RLkGQH6UNASkZIjQsZxIbUAZBmLOSWBUi65+Hh4eLigrQcIat+4MEEKeshroRkG0goQDIJhISUHRBxOAlpmsE1QsIR0tCA5B9I6kTrl0DWXkEUwLXAzYenVIhnGRkZBQQE4CdpQ1b6QFYbQTaqQu4jgpy7BLEaMqTMyckJuXUHeQkSZEcKJOjgRdiXL18gI6uQRUOQvAQJKEgUQHI4ZBEvJFtCFmJA1EC6LJB12pCaDFJUQUoESIdYQEDgyZMnkIhDNhOyaA5yFQHkghrIWAjEbfCJJUi3D1ItQap/SBRAaiBI+QipqiFxDSniIc07SUlJPj4+yLZXaWlpcXFxyOAB5CINSFcMkoXg42aQVgIkWUJaIZAFL5Alb+/fv3/37h1kCxZkrP4LGLCwsIiJiYmLi0tKSkJ6wJBhHkiXFzKeCRn/h4QnpKUFaTpAbISELWRA++vXr0xMTJDWIaTRCa+KIAvcIL18yCFrkMkCyJUYnJycvLy8kEk+SMqEkJAQg7MhSRciiIuEKIYkUVxq4OkWogBSuEOGcCGNV8jwI0QZJCtBJs8ghwRAbryGXLEMGcyAJCpIbEIqcshYDsQcSEBB7IL0PyDRBEn5kIYgpASA5C+IFyAkRBcmiRwUEM/CSXggQ6IPUstCTIP4BWILhITka4gvIOkQUtNAdohBpnggIQOJUIjhkJIKUnBDelGQ6hPiBojJEDaEhNgOCU+IXyAhBmdDikRIixC5VQ3xJiSCIGzIvB4kr33//v3mzZsPHz68e/cuJC9D5u+wrmuD2IVMQgorSBsIskYBMvsGyWWQNYzwdgkkzUMK9r9//0JuB4eM6MIdDIlQiPchFkGCBe59iODgISHtie/fv0O8ABllhDgPEnFwv8C9ABGHkMgRCtFFdRKSJiEFGqSIhicGUDUMOWwB0geCTCRAVu1CkibElZCxaMjADiRzQnwFiVqIOCTFQEZXIAujIMfWQ0IEUihAdP38+fPz58+QfglkwgaSjCCyEBvh1SHEOkgigJCQAIIkZUjpABdBDk02NjaIpZCKB1LIQqyAqEcjIdEDtxeSVyE5EyIF2WYKuawC0lKBLJ6CbGSCLGZhY2Pj5+eHTAlDDn6DDGzCV9JCHAypRyG9LkhuhNT0kHYopHqDWA2p1CF3JkIKGkhbGxJfkFkDDg4OiE8h1xFCXAip2llYWGRlZcXExLi4uCCnkMKrE8hQFaTDASm8IB0aSDca0l2ABBekoIEUwRD3Q5IRxIWQMUOICGQjLz8/PyMjo5iYGHIVCFnFBhkXgRQBkHoXUuhAvAAp0yENRkgf9/v370+ePIGctQk58hp8xeI3iLMh5c7////5+Pjk5ORUVVUlJSUFBQUhW7oh4yvweIQohkQlJPFAEgBkhBYyfQg5bAQSwpAFYpCjJeEJD7L+BVLTQEaJIBMQEF/wgAGklwwZg4LkPYhFEKuRkyhEHI2E24UsjlUQrgBiMiRXQ8IQ3kWASEHiEWL1v3//IIPnXFxckONIIYkTrh3SFIZkbXh2gDMgspBEC6/DIFUdvH0DdxjERggJydfIUhA2xGR4tQpJyZAUAumhQmIQ4hGIFXCj4LogIpAkCimsIHUwRBzS8EVWDI9BSMUMKSIgpRBEGcQ6CBtiCMQXEBIiCwlVuPsh6QHSJ4EsV4Q0rOFbDSG64AUa3FhI0fz48eMnT568ffuWl5cX0kWB5Cm4MkhwwUmIOMTLkPQMaTxB5rMgZTKkqQGxF5KEIEEBSeeQCSzIUkeIU+E9FoinIB6EkBBD4LYPHgakT/n9+3fIzbaQtiAknSC7HBJcEGdD2JBiDRLFkGUxEFkakZCWDXIwQpqVEKeyQJb7Q455gjT/IUNzkHIEMjYF2TAD6UxA9uFBmlSQLgVkMgyyZAbSb4ZEPyTiIQOzkFVCEPWQUICc0g4psyB5D1KsQ0ouSDqAOB0iC8kAEL2QZAchcYUapBqGJGVIhxuSzSA5EGIaRC88aCBpGiIFyfyQOIaUUJCggAxwQRZQwDsEkKliyNQjDw8PpMMEWZ8J2VAL6eNCxsMhW7Eh+R+yqhYyvg3pQkHWk0OGJeABCy/1IPU3pMUNmb+HdFUhs8uQfAhpBEDEGRkZJSQkhIWFubi4IJtPIIEAKXkhRQYksn78+AHpc0CWx0OcCmlaQaooyNkskFIYEo+Q4GJkZITsdeHl5RUXFxcVFZWRkZGVlZWRkYFc3Qhpn0IOz/r69SsnJyfkQBg+Pj5mZmbIVU6QHVDwnujnz58hvd7Pnz8/e/bs48ePb968gQy1QUaSId1oSEbi4uJSVFQ0NDRUVlaGRAHEj5B4hBTK8OQKSVGQtA2JVm5u7m/fvkEiC5IS4EPokLs6IN1HSJXz9+9fbm5u5Nl6yJDPv3//IOvkOTk54RUYpKMDCUNISoM4Cc7GyoCncLgsvKSAiyAzIG6GiEB8BKmBIG1ESJ6CZHWIGsg2pD9//kDuvYDMPkCmJCDhCcl6EBJygA+kRQ5xPMQKyIQxXD0kf0GaaJCyD6IYYiPEKIi/ICLIJHIuhqiB+BcySAMpVSEmw5uJECsgypDZ8NoU4l+IAkjpgZzr4WOwkDiFJAlIQEFMgzsJYgLEVZBwhvgF7n5IFoDogrSqIZkFsggGUlZAIgJSGELSEtx8iDmQTgtkPT8rKysfGEAGkyFWQ5ShkRApuHsgI0OQHg4kKUIm5iDrdSBlAsReiKd+/vwJmQ6DOA+yVAWSLyCegiiDaEGzelBxIUkUsnEDkkLQchwkoOBuhvgLQkJyCkQBmi64emoxIKEKaR5BynNIKoWkTxZIdQU5wO/////fvn2DDGhApCFOhPRoIZkBci4EpPkP6XBAUgAkhUE6K5BLiyGLiiF1PoSE1E/MzMyQE5gh7oCU6RDfQiyFJGuI1RASIgsnIYKQoISUEZDkAhGBlMKQUVaISohGSEaC+AVZBFJkQGQhyRqNhDchIZN/kJlCiBrIzQeQPAPJdZCohez5AY02sLBA+riQliakGoM09iGncUHu34YMmn39+hWy5ghiLKRPA2kKQGbZIesAISucIX1NyLw+pHf469cvyDrz79+/Q9YCQMaadHR0Ll269PTpU8hoB+Sgza9fv0LuK4ScSg2pXSD9j9+/f0NWn/348QMy6wa5zwASsJDuI+R+IR4eHmlpaUFBQSkpKUlJScgRjzw8PJBOPKTKhIQeZJgE0uuFNF++fv0K2ZANGdL/8OEDZKj57du37969g2z2/fHjx7NnzyDKIHNXkACEHBoM2Wmjq6tra2srLy/PycnJxcUFKXAhiR4SRxASHu8QKYhfIPkW0kaEDNpDykFITYycPiGNHshRLZBGFaTIg/TFIcMAkDCHWAdJyZAuOCSxQUjkBAkRQSMxh23gzkBTCeFCciJkYB8ykglpL0J6VBC9kDoAoh6yaRtydMm3b98gUhC/Q643hQzGQHwB7+ZCzIHMdEDqmG/fvkGyHqT1BpmtgDQfIRYhkxBbkEXgbEh8IXMhNRm8ToW4BFKAwEMPwoBIQVqcEBFI8oAEPsRMSKkFqWshYQtpd0IKOkiuhCQG5NIDohfS5oCLwwUh9kJIiF2/f//+/Pnzp0+fIL0Lfn5+Xl5eiLHwxgpEJUQXxCWQcgBy2TlkozkPD4+8vLyUlBRkzQRkrSvEGRBzIIUVhIT0lyDjXpBR2Y8fP0JyH+TsIEgnBBImEBshFQBEFnKbPaSehoQSRA3EVZAYh3gZXrpCuFQh4fFFJICUz5CqAU5CWrqQzgmkrIOMPcA9jmk4fDQC0gGAjFtAeimQEhUyNAhPMGjpE9NANBE0fyE7GzL+Bym7IIkKEgWgDAupKiBtIkhCgVytCokqSDkFqWbgzT2IEyFxA2n7Q4paiDikboaU4xAvQfYgQlaZQkZfIWUEJEXCvYHmAbg4GgPiMYhiOBvCQFYJSUYQZRBxiBqI1ZB0jCwOZ0OUQUiIIMQQSIUEKYMgq7cgLWhIDQrpEENOTIT0ViHdSnhPFxJQkM4Z5DoNSBkH2VgM6Y1BbtCDqIHUFpA6GNLQgSQgiHWQQgoyuQs5EwrSxofEF6QrD3E8Nzc35CiM+/fvs7OzS0hIiIuLi4mJ/f79+9q1a8+ePYNPqEAujYYUzZBdN+/fv3/9+jWkBv327RvkTiFwY50Pvs5ZSUkJcnQJZAk3pOiBOANSfEA8DilEIIkPsj8KMuwMOWUTcrr1x48fIQdcQ/wLWcoL6aZDhr4hO+sg4fPhwwcpKSl1dXUjIyMVFRUBAQFI1ED2B0NqCEgCg5CQxAmJMogzIINykEIHEk2Q4QdIDwySQiB64YkBcooTZMEdxEDIuAikzQfRAgl2upGQLAYJMYiTIH1TuGMgXoC758+fP5BVcpA18JDsD1EMSTaQchnSOYBUnxDvQxIkpEyH5AiICKQcgJgPyXQQNpEkJFVDahRIgoEkFcg4GSQ54TEK4jY8CiBegyiAxDukMQEJFggJkYWohJSBEGOR3QNXCZeCVwaQESxIEoUkJMhqSkhigxgOCTHkxgQkbCGhzc7Orq6u/v37d8gaaWlpach8AeQUeoheiDlwEuIXiBTEIogLIWs1II6EK0aOI0jWgBQsEC2QdgxcC8RMuN5BwoC4ChJoECdB0gmkNQ85P4qDgwMypojmX4h6CAlJUZDQgwyHQIYnMReHQ9RAdFFOQupQiJshwQ7JSpDuAQtkqBkyggGpriFNDEiHBhLBEA2Q8TfI8DUkk8DVQ3IRZAoTPhQJqRggJ7lAhpggq1UhVT588BmemiEBTbyH4ekGWQskAuD+RDYToh5/NYxsFIQN0QUprSBRCKkCIa0kCBuSpiH94G/fQDOXkFFfyHWN8LCF9A4hJ0tDWjmQnA/p7UHadJBRC0jHGjLeAqm0IOssINUAxBmQBZaQAxp//PjBy8sLCXDIcDekGIWUccLCwlJSUtzc3P/+/RMTE9PX15eTk/v48ePbt29fvnwJ6f/x8fH9/PmTk5PzzZs3379/hwj+/v0bcs2wkJCQuLg4Pz+/pKSkhISEGBiIiIjw8vJC1ohB0gMkWUOSGmQLHKTnARkth5w4/fHjxy9fvrx79w7S63337h2k6oXIQsZIIW1zyO2qkHNdIGMtkAry79+/kBO+lJSULCwstLS0xMXFId1BSIsYEqqQNAAn4UMLkAFqSGhDDrmETIdDZpQhHoHUbRC98KoFkpYYGRk/fPjw7t07Dg4OyCo8yPoG5AY4PM1AkhAyCZeCmIYsRR6bjY0NkjHhexkgyQxSYMGtgxsOmUSAjHvBl1VCLvmGnEQGqcsh6QeyBAHNqZBqDF6aQ/I+xPvwsIJbR5ABNxxSRUESDGSEDFL4IHsB4ilI/CKTcENwWQcxBJJD4b1tiCBWLRADISREGYQNsRTChpCQlAkZXYAkP8ghPxCV8ACBlOmQHArJv/AihY2NjYuLS09PD9KThlzLBhldgJeNEEdCXAJhQ6TgxkLCH1JuwIs4iBpIMoa4FuIqSK8XkhEgQQ2pieEmD0IGpEyAJABIOECGbT5+/AgpbCGrgCELaCC1AFZfQLI2ZHk/vIcAKRwgkQUPKEgjDKshZAjCe6qQ/AVPA5CJABbIPiLIgl54mwJythHct5BFK5DRD3g9ATn1CdL5gAzZQYanIDEKGej7/fv3hw8fINseIMcVQSYdId6GeAbibTgJsRQihUlCwheuBhIrcGXIshA2xFiIAkhyhIQ13AQ0BkQ9MgkpZSCFDqTlApGFlNcQMyENF8iSNMgiW0iZDt+MC7mdDVIrQ0ptSN0MGUyG1ECQZQIQNRDDf/z4Ab93D7KFDFLnQSaTfvz4Ae+WQW60hTgMMmgBaRVCyh1eXl7IJYBv3ryBrCiWlpbm4uISFRXl4eH59u0bPz+/nJwcpByHTNxClmyIiYnx8vKKiYnJyMgoKSnx8vKKiIgICgpCltfBIxqSXiHtKkgdAOmmQ0ZBIIuYILX+58+fX79+DamGIddOQBIVZG4YMosMWUgPmVOHpBxILw3SvIOcJsbMzKylpWVgYKClpSUsLAw5NAoSR/D4hUcNhAHpukESPVwl/DQoyMgEfAwZklXgGiGJBFJDQEb/fvz4Aek6Qzof8EQCKebg6Q3CgJAQQzDZEBGCJCRyMZVBvACZ7oFEOqTRDMnncC9ASmT4+CdkJABSJEHWGEJGQSF1ISRmIcU0xNlw2yHlF2QdEKQNipzRIO1RTEfiEYGYD0nSkLYRZCgFktcgshDbISTcKGSvwQWxMiAuhAQLpA6Gj+RDUguyLmQRSCUHCTpIUQMxCuIqiC44G5LyITsaIJUBPDFAzIEU+pDMAkmNEBMgGyikpaUh44WQAhkyPQSZvoF4HGI1RAvEZIjVkJIWohcy6wSpZSEqIc6GJBKILnjCgFcMkACHhCdE1yAkkZ0HCQpIWoUMQkCKR8gCFMjAOyRwsHoE0u2BDPJByhxIuYoc9RCNkNCDsCkkId02eCKEhDkkCkANMkjigJCQERLIbDGkpQyJY8icE2RPMKT3DFmQBameIe0piDik6w3J2JCiATJPDDlSFZI+4GUcJH0jew9P2CErg6QnrCKQJAtXAOfCRbAyIOUyJNCRtUDEId075HQAaaZAHABZ2QupEX/9+gXZHAwZq4R00SCjr3x8fJDMCTcfskISEj2QdjSkpoFEFaQOhpxrw8nJCTnWEZKdIDv0IQuLIBP5kAY1pH8MWUMHiQ6IZ3l5eSETTm/evPn48SOkamdiYoLMYL18+ZKBgUFERASy0xeSOiHX90JmkaWlpeF7ECELrSE9AMhYHGRbNiQNQFwOWfn1+fPnL1++vIWB12AAuc8YUj1D8g+k8IIUDZBSGNKagdSL8IlMyIm4kCoQsgvL2tpaT09PUlISMiMLqRLg68ggHockJwgJ7yJAYhMS4KysrIKCgpABHsgGAUiJCYlreExBWuKQ1jfkgB7IfcOQkUOIYkhigNgFsR0igkZCFEDKETQp8riQxSmQhfqQ9gqkiIeUKWhug2Q9yBIzRkbGr1+/QiYdIK1GyGAGpKKCFE+QRjM8n0JadfAAhMQahX6BtGAgaQlSl0Aa+hDD4VbD4wISShB/QUiICC4SrhHiO/iYM8R8uAlwZRBz4Fys8QWRheiFlKfwOWYIA1KSwI1CDjeIgZCCBe47SLsHUjxC0jOkGoYkPHhyguiF2A7RC5mMgJTPkNN4IMMYEKshUQNxDEQvxCiIyyFqIN1oiCzcZIjUoCIhqRruQkiQQnYuQKoYSLsN0sqBRC5W90MWtEPOSoKcCQE5yRUeJhArIAGC1QTyBCG9FEjJCTmqAdJrhYw6g86UhuRYLi4uSAaAFKaQi7ogrVTICg5IDwmSbSCdEkgVAnExpPyCJAvIbCVkRBSyGgsyBgvJwJDCAsKGeAnZ5xA2RBwrCbcOkqQgJFwXRBYiCEmpcEMgUhB3wtkQBlwNska4FJwBSbIQuyDhAPEvpA6G1CsCAgKQFAMvtSGDq5BAh/RXIBkDEuyQTjCk8oZUaZBaClLLQs424eXlhSxugrR7IKscIdUtBwcHZKEyxExIvxBSW0PsgozYiIuLy8jIXL169fnz55BJYkinE9KlY2EBHabGx8f3+/dvFRUVTk5O+PpqyMHLkMVfkIIMUlZCZsohwwAQcUgj4OPHj69fv/4IBp8+fXr16tXr168hy68gSR9SAEHmdyGlDGQUHbIH98+fPzw8POLi4iIiIpAEysDAALmfEbKk4ufPn+Li4tra2pqamuLi4pChb3gVC4kUSGxCYg1CQqIVEvUQWUj1D2qHsrBAEiokG0OSJSRPQiIakrHhsfnt2zfIWfmQ82rgXoBbBLELYgukHISLQIyFS0EYRJIQx2Aqhgw2QOYsIKO4kBYJPD3AHQYRgQxfsbGxQe7BfPr0KRMTk7i4OKT+gDTPIaupIVNIkOID0jOGjAdA8i9kwAaSxSBWQDyLy52YLoeLoNXBkKYeRBYSZRASIgIhISEJsRcigp+ERyKkIQLxApoWiGmQDgnEXxAFcLvghsDTMMTLkO4sJHghitFG++AaIR01iEpIZEGaBZB0C4k4SIqCVDOQNjHEFojz4MEL2ZkGKYchCRhyDzRkhANiBcQouC8gDAgJL3wgxkIEIYZDvAARGTwk3G2QgX1Ik52BgYGPjw/SB4AkXUgFjOwpNC9Awg0ynQqp0SBje5DjiSC2wDMsml4KuZDuO6QMh5TekEoBtEQLvtoIkvohxQ1kUBGS+iEFLmQVGSReIfUEpLsMWQYMEYesMIJ0hiDzxJADHSHxCk8ZkGoezUsQNfAZETRZTC48oCEBB+FCSIhiSNqFsCEkxApI0wEuAmEg5zpkA5HF4WxIqEGKJ3gNBBnugyw4h6iEDA4zMDDAD/qArLCFJCDIwANkfRakLoS0giFnrEM2c0OWUkMGmiA1K0QWEvKQRhxkZSDERoiZkLFliC8gZkI6vrKysjw8PPDFUP/+/ePm5oZMrAoLC2tpaUHO4xQVFYXUypycnJDsDTk6CmIFxFhI2EI8Ar+5CHIK29u3b1+9egVZ2wU56wqyOACSVSDbkSFVIKTogZRQEGMFBQWFhYVlZWXl5eXFxMTg1fC7d+8ePHjw8OHDp0+f/vjxQ0dHx8zMDLKaFFJrQgaTITECTwNwBiRTwZMfpCCGCEKSBKQohHgKwobIQrwMISHT25CeOuQ0VsjYBiTbQ5bjQdIS3F44AyIOJyHiEC/DBclmQAIQUmpD0jakawXxGppHIFkPEvIQNwsLC0NmNCATw5C6AXKYNuRyMMiyF8goF2QoG9JRhhgCaZhCAgHiElI9AskmkGIRMrQImTiARASkCEIOK7Tog8QOHksheiHhAzETOfnh0g6xFxJTEBISdJChAkhihrTbICEM6YNCUiPcRoirIMECMRDOhrQDIMUmpFKH5zWIdki7B2IgxAqIaRDHQNYVQo6ehYzrsLGxQbo6EHdCdihBtECshtS7EMMhIhCjICREBNkiiN7BQ0JaNpAKAjKXB3EtfI4PUhRDkiIkI2B1PKQpCSnDITOAEDMhiiHhA887EC5EikIS0g+GjBDDO0iQxAxyDGTfJKQNCK+D4eUapK8GGRGF9Iwh03iQ45Yg+4whiiFLkyDlFCRlQGoX+Jp7SAcI0l2DLEaA5AG4V+GeJ8nDkGSEpgUuCClbIREGUYMshSwCdwZEEE5CChq4OZA8A78/FZKvIJ0qyOQ3ZL0PpJCClNSQYStI4QVp38CXVXNwcEDGsSGrsSATb5B2DGTJJWRNNSReILUvZNUMZBQachoGpHmFvDQd4l+I2yAu5+bmhtya8P37d0jsQEahIYeNQOaJ4eu/IAt2ICdLQ5oRkM3Q8Jrsz58/X79+hZynAVmv9OLFi7dv30IGoiEX+kIKVkj2hoy2QXIIvMCCJDlIAmNiYhIVFVVSUtLV1VVUVIRsKYYUVZDFL6KiopDKj4GBwRgMIGkS0reDFNyQW+cgIvDogwQFJKVBoh5SHkFEIJEOGb2AOBKiEVLrwNVAiktIOxpySwSkjQI5pg2iBY2E2IUsiJy8MWWRVZLEhrSeISMxkPX2kOoBMrKCaRHEa5CRCWFhYcioPuTENEiUQc7Hfv78OQMDg5CQkISEBKS0gvRCQEUGC+g+GEjhBU8SkCCCZBaS3A8JVUiOgM+kwKsfSPqBRBMkKiFsTH/htxRuDqTHCR8+gZiGrBeScyHqIVEGISFOgrgWoh7SZIGXpBBBiIGQTAcXgZgGISFNAUi4QXIEpEiBJDZINQ8PZEg5AzEH4mWI+ZBRqG9gADmGBbLvEd7bhihD1gJhQ2yBGAhRg+xfiDhcJYQ7SEh4MwXSIIas+YX0ISEVECT1QjaSQMIBq8shsQBJBpCFHZAlh5CyGhImkBCAkBARrEaRKggp3iEDnJBuFWQQC5TA7t69CynFIENDkF0fbGxskO2k8AQBOSDi9+/fnz59gjQGwceGc0POivr58+ebN2/gfoP0tSEbJ+ClHpqjIZ6EJws038K5kJQKWdCEZgKEC1cJ4cJJuPlwEQgDXlJAFEBISA6HKEAjcZmPSxziYEgVCGl5QbIrZNAVcqgWpMKD7KuGLPqFXA4KGU6A5GFIIwZSpEISCiTDQy4pgiQgSKRA9ihDVjNBJjghxTGkqoZU83///r158+aJEye+fPmioqKioKAgJiYGjyZIVoR4HDIdCCl0ICTEp5BeC/wuI8gqa8hkM2R8G1wmgFaJQwaZIZ0tiF8gBQ08ZCCJD7Ke4v///2JiYvLy8tbW1kJCQmJiYtzc3JC2GiSmIKb9+vULcmnE////JSUlIWeDQBwMiTtQUgZjiC4wkxGiAOJ+tJIXIghPfhCVyCSklQAJmW/fvkG2hLKwsAgKCkLSOaTTCTEBEjUQ7ZAUBSEhImSQ8HCD6IVkQ0i0wmcNIWNc7OzskJwLaQHDQwMyfAWpjCGVNGTK6dOnT5Cd35BTDCFr3SGBBpk2+/Lly+vXr9+9ewdpK3NyckIOFIO4AdL6gaiHuI1IEh4gkKwBT1qQGzYhFTAktcMNhJSYEPUQEjLGBleAzIA7CWIRRC9EPaSdCimaIWPvkKUtEJUQEpIeILYgJx5IGxre5oBMQkFOgIf0KyArqiCJARJrcKshDRdI9QCpOH/8+PHz50/IiXKQjAZJP5AMguwdOBsygITsPEhig+R6SC6D3JcKGfpCrk4ghiB7ByKCTEKaBcgi9GFDfES8XZBOCCQiIB0VSBKCnPqOaQ7EfIjfITECUQ/Z4ARp/UNKS0i44aqnME3GLwJpYEHUQNwAKfeYmJhevXr17ds3yOEqkKoB0i0G9eIgXQFIAoLkc0iChp+EADEF0iGDrE+BFN+QlVyQIx5///4N6btAMj+kkoCYCXEQ8STE6XD1kBCEcylnQCIGYg4kB0JIiAjxJC5dcPdDMjCkHIcMIUBW00DO9YYMOkEuPoLcbga54AwySQzp2EGyMSTCIE0fSP0NGYeBnKMCuQjo9+/fYmJikLXrkOiDmA+p8CA9WiUlJcjKbTExMch5k5CwhQzmwItvSHcZEumQvjtk7OvDhw9fvnx59erVixcvIHO9X758gRz9A0kbcHdCGqSQ4xEgNRbENIh1yIMz/Pz8SkpK5ubmenp6kN48ZI0VZOgGHoCQgoyPjw/Sk4YsjIIUH8ixCQl5zHghLx1COseQzAk5exkyyw5ps0J8hJlaMG3HVINfBBJxkAF2yHQXpAcGGQWB2AupLSBRBllSDsl3kEoCkosh0QGpOyFmQnpaLCygg/MgVSykGwEp4CCTVZDGHOQGDsjg7c+fPyFLEyBrAiCBCanS8HsEUxYeQRB/QS7sgjdSkYMOuSyDeBNPRQWxCDklQEQgJGTqBKIdEnrwmg+iAOIqCBtiF9wlkBQLcQzc4/CcCMmekMF8uHY4A5INIaUrXBAyv/Pnzx/IFmHIQk7IBk7IXBKySggbfl0BZLwBEq0QN0MiCDLMBlmjDnEkRCMyCVGPLDIU2ZDog0yHQ2ocSIGAyy/wJAEJFki0Qu7agQzaQ3I3jQIHnngg6QfSFYbkQXjJBskIoGoYUk9A7suDHN0A6TdAWlWQEhBe9EAKdMiifMj2f8gZ8ZC1ppCpHcjib0gTA1JW4gomrOKQwIIHDZyBVTEk20CkCKqEKIMEPYQNsQvCJpXEpRfuZUgigFdRkCscIMcMQdr+kL4s5PhDSFcGMrUMmROFyELafZDBT0iVBmnTQbacQ2pByCUEkFiDLNCALIWFzOpB1rpD2k/S0tKQTAvpYkK8DHEnhA0poSAbqCDrsT98+ABZcvXq1SvIRWyQjcWQKSh4oQBxFbzQgdw6DOlQws2H1PeQJho7O7usrKyhoaGBgYGcnBwPDw/EBIgaSEkH8S+k9IesaYQcqsrExAQ5FBNiHaQjAkkJkBQP9wskjpAF4YkEkjPhKjEZEL0Qx0MaFpBYgIyGQaxG0wXRAnEJmhTxXIjDkOs5SFz///8fcoQ4JIohHoEMbUECCkJC3AA5Ww1SskMCHOIRiDMgyQNyrSykloLohcyMQFobPDw8kCbRnz9/IDMjkLYRcvaBmEYGCWlGQE65gWyUgkQixJEQr0FIuHcgXDx2QfRCFMAVQzIRhAvpJ0AMhNSREMXIJCTwISJwAyHlKcTjkHiHlI2QxA+PbogtEL2QfASRghSekPIQcv7d9+/fIRM3kEvb4MMbcL3IDEi+hlT5kEU5kAkFISEh+DZRiNsgDoCkdmTHwx2DbOwQZcPDAbLlDHLuG1a/wEMAEqeQeIesloWUS5D2H0QWqwlkC8IjAhLykBoBsr8UUp5D5rmRzWeB1NKQjhrksEZIyxoykgMpdCAHY0GGXyC5GpK+IQkC0tKErD+CzFRBqnaIa5AtI4YNGe6HFMeQ4RdIeOHRC7EIEtAQNiQDYNUCUYZVCqsgLvW4xCF+h0cApKyB5B/4wR2QxRSQYV5IFoK0XSDVMGS06vPnz5A4A7WVWECnrECG7CCboCAXtkMqdcjgNmR6j4mJ6fv375ATMQUFBfn4+Li4uL5+/QoJFkj1D+mPQo4Fhq93hbgQYuPnz5/hx0m+f//+7du38AFh5MURkJoYEmiQRA8ppCAkZNobUolCVEKqsT9//oiLi6uqqurp6enr60tLS0NmNLi5ueElCKQCgCyrgbccIUEKCTR41xBSIEJ8AXEDxBCIqyAkJKYgIQARgZAQcQgbk4SU1JDGAaTtDOl8QMyB2AVxEkQv3DQ0BkQ9RA0xJGR1CSRVQNpw8DYTZFYMkqvhKRxSEsHzC+T6L3jgQ3rGkOErSH3w9etXyFAtJDlBBCFpDJIwIKdUQpZeQhIYxDFwEsIgxi/IauDxAlliAqnUIdvSIBkc0tdB1gJhQ8ITQiIHOEQWTsIVQEQgdSdkKRNk9BheDUOksBoFMQTiVEgyhiRdePDC4x2SmCEuh9iI1UCIFCQNQxRwcHBAFlpCuBCTISNkEMVoJMQZkEiHuBwSgJBSFxJ9kJwCSWkQL8DjCNKHpkVlg+ZOWnPhIzqQxiVkhgVSVBJjNXLEwcMEElZwKWLMIagGElPw7AmxC7LeAtL8hUQWxGpIIQPKfR8+fID0lJmZmSGrYCCLqiBH80CGqiBJAXKGEWSaFjLJAZmZgIyRQoZWIIEFSRCQhELQ3WgKIDNekIU5IPexgE69hqcqNMVw30LSNKYs/UUg1TAkd0HqYMgR6pAlV5BdYZB8CCmJILc7QCZEIeEGiS3Igc8QXZBmEKRBDdkX9P37d0jgQ7YaQ86ahoxMQCaNINEMaWNBghEyHwZpRULmJCD5GdLZ+vz588ePH799+wbZ5fz+/fvPnz9DWnBfvnyB3IMJiWjI8BdkPhIyYoacPCA1PRMT08+fPyETMJA1QZCVU5DDuYyMjExNTaWkpNjZ2b9//87MzCwiIgKv8CAuh3Q1IM1GyAQnpE6CjBVDuviQfiFEI6TTAAl8SOsNLeohxqIJEuRC+m2Q/gqkRMZMisgmw9lwBkEr0BRAmkeQ0SpIqwiyfAkS7JD8CM+JEJ9CMjYk/0MqBkjFA2laQZIi5D5syEQGpN0GaUlDUgKktQQRgQz3QVbdQ0IYUvpD6hJImQXJ5mgux8+F1G2QWX/IPldI2oa0BiDG4jIBOTAheQRTJUQNxKkQEpIwIOohwYKsBs6GGwURgSQhiCAkYCFNGUhShMxNQobxIUPKkPFCSPkDMQFuIyTBwLmQgagvX75AtiGxsrJCztuChAAk+iD2IpOQs2YheR9SREPaWJCMBs8OkOCFJBtk7fASEuI2NCmICzEFB6EIpN6BlJkQv0O6hZBmKx4HQ8IfHg6QVIGW3nAFDh5j8UhBbIRbAanRIB1aeLsT0jCCxBqofIYskYCcZQ9ZeQsZoIYUN5AmKqQEhLAhp1VA7liFbJiD7JmBmAuPV4gj4IJ4HI0mBenuQOaNIP6BDFhB3IOmGMKFByLEVxBdcEGIGqwkRCVECpd6XOIQXZgkxA2QRhDEF6BQZmGB7O6FzEz8/Pnz69evkIUzkHESSH8OMu0BGROG9G4h4/yQRh9k4PrTp0+QlAdZIgfpWEPWcEHOiYRcC8HFxQXZGwppcEEaSZD9zczMzJCSBXJCCGTHEfwA50+fPkFqX0gdALEUUhNAHAmxHdIbgPTPINUwpKSDRxOkBwnJKpBGAwcHBy8vr7e3t7KysoKCAisrK2R1PWSOA37TF9x8yBI/yNWtkMIRUutA2JAWALzAhbgQ4gZIpMBdAuFC4ho5NpHZEDXIJMQoSDUM8SCkCEbWBTETksORxeFsMtI/fDgaMiUMKf0hQ1CQoQhIhEIyI6TihDgPUiJDAgTSRIOctwPJvJCGFOTwL0glDRmOhvQRIV6AJF1IgwYy3gAZCYfUMZDwhCRs5IAikg0JScjsNaTWh+xzhYQVhIQbhRZu8HCGK8BkQNRAvA+pPiEFLmQMA9JrhMhCPAs3AaIR7gBIcwdiAqQzDVlWCVlmASmLIEs34EUcmlEQLsRYSNBBCmJIewiyvIuVlRXS54FUnHDbIXqRSUg6hGQ0SHRAlo9AkgQkL8BJyLQCxJsQB0BMhpDIxg5dNqQNCukSoEUlsqcggQAJf0hMQWQh2QciDifR0htEJXkkslGQeId0xiD9H+QjViDZDRJNLJBVdpCqFNLTguRPiAhkEQckFiFtQEiRCkmIkM1qkAY1pDUHMRruAYgdcC4xDIg5kJICPkcIcQBW7RApUi2CqIeQkMiAlGJYrcAqCNeLJgupKuCCkOYPpDaFdAUghSmkboYsuYL0OSBjEpDU8/fvX0g3F9IPhsQLZIQAspsIcq4WvNkEaRtBYhpyAQOkeobcPQyp2CA5GVLbQY5ugJz8AJlZgPScIG6DeAFykB4kIiBpF1JCQVwIaYFBLi2GZAZIWocU1v///4e4DWIIZI+ysrKympqatbU1ZAMMZEobUtlAus6QiIAHHaQAgkhBijCIwyDzQ5DyC9Khh7RCINU23ONwV8ENhJgPSTAQElkKjQ3xDsQQyLgOpCKBeBBZMZpRcC6cgayYIBviL0g7CbJJA1LuQBZbQTI2ZHILUiVA1EDCCtIIhlQh8NY3pIyGOAZSjkOOb4NohxjFxMQESf+QIW54cxBSwUOyIaQRBol9tGxO0FOQYISUR5DuPmTmC+I2SLzgMQRXXkPWAlEDcR4kBCAkZGk0xHcQEXjMQuyFaIS4ENlAiDJ4cweysBxyrBtkOAEyfYZW7ELCGRIREL0QBZAxJ8jVZ5A9b5CrUCBOgkcfsgMgbMi6BEj2hIzKQIyFNCwgaiCWQtIGpPEBiVaIpyAqIWog6ociCWmeQhbEQaIGHnFYvQNJCRA1kHIDEhoQvRAtEFlIMqBW+EDKB0i0QlrJ38EAcgISpMsBKRUhpQqkcGYREhKCjIpA+kaQOz0g49KQvj8kq8AzHmQUETIHDGmRQTwG8RKyZzBFIJ7HT0JyPmQZNmQcDFJeQEzD1AtJ5ZAghgQophpkEbg5EAYyiayMbDZkjSskTCBFJ/w0IkheggxJQVo5TExMkHuvIE0fiC5IsQvZsASJCMixWZC7nPn5+SGVOqQUgM8O/Pr1C7JxGXK7CyTlcXFxQWaRIdUY5BA1yMgkxDRI4oYMecFJeJhAsj0XFxcnJyfkrGzIWAUkq0OyPaSYgMQapDSBFBOQkgiuRkZGxtbW1s7ODlIKQ8QhvoYUbV+/foX3zCB1M+SwCMjNJ5BkDTEfUkWxs7NDPAWpgyEKII0eiGMgvqAwHiGZGZ6qIXUesskQKXgihFsHEYdziWdAdhNB/AhJP5D6D97dh4xSQMZCIWMSkGQPyc+QvA1ZugVpPEGshnS/IIu8IOd4Q66Xh4zyQQITeV4ZMsHByMgIOU0P0kWGLExF9j7EcGJIyMQzpFEFaWJCGhwE9UKsg5DwbI5HFyTKIG0myJAMJEHCRSC5DG4gmlGQhAQpeSAaIVUaZIYech0hpBEMKWQhaiCWQiICEvWQwIckRUhjEXI1PWTdAyQLQ86Ag4z/Q6Y80RzDwMAAGZaAHA8M2XIK6RpBRhQgfoHYC3E5pE0PyRSQ9hOcxDR8CIlAVg5C1oJAeiyQOMLlBUiMQGIZkj0h8QJpkEFCDJIkIOIQEpdpxIvDUzW8iIMMLv78+RMyJAmpTyG9TbixoLU/kMYvZPAKcvq/nJwcJAVDEgqkBwy5oxByeBgk8UFqfohn4CbCGRCPQUaxIIkSUqFCkgukXocnI4guyCgQJO1CGgdoCiDKkElk/xBUjCsbQ5yKbCycDak2IJEHcTlcCh7HEHshEQ8pqiDTopDBZMiWwW/fvkF6opA9IZCxMkhv8gsYQHI4Nzc3pPUDiU5IFxayJZeFhUVAQICPjw8+bwoJW8gVTHx8fJAIgqRUSLBAhpQhI4GQihky8czJyQnhQpbUQio8SHEAiRdIfQPp/kKyNORqTIgsJGoglSKkZQfRC9l4ysjIyMnJCdmvDFkdpq2t7eHhoaWlBVEGzwOQ9AApayBaIKENqcIhw/XMzMyfPn2C7PC7f/++rKws5GaIP3/+QM4kYWNjgywigzQXPn78CJl0hLRjIDkQkkSRYxkSPpB2BiRCIbIQEp5OkOs5yMomiGJMEq4RIgVJGxA2VhKyeQxSm0JyEyTfQmpQSCELaexCintIPxUyfAKpqiH7XiAWQYokSLxAGkmQNs3////h7TDIDmBI4oHohVTzkKYeZKwL4hJIeQFpcn39+hWSeSEXcEFmGeAxCCniIZU0pOkA6VhDgh1SgUFyB2TjNSROIQfAQdI2pAzBDCKIv+Di8OCFmAzJa8iy8AhFXg8ByYxwxZA8BQlnuPkQB0DMh6uEVJyQdAgJQMjd25A7rSGlIsRGSExBEgxEOyT84Unr9+/fkPD5+PHjrVu3BAUFpaWl+fn5IQcJQKQgMy8QjfCGFDyQIeUGJM9CVHJxccH9DrEUogvS8YVcQQZZiwc5YQkSBZAkAVEDMRzibIhRkACBkBARqpDUMhASlZCSCuJZSOzASypItELSKqQtAtlIApmagQyVQeIa7i9IroFzSWJAEgymFkgkQhzw+fPnN2/eQE56gIwIQmpPyAoPSGqEOIkFcqYSZAIcsmoAEluQNjikAwe5cx5SvkO0QeIV0xG4ROCOhrgSnkbhqQESW/C6AWI+hMRlJlXEIbkaj1GQVAvJchBHQhRDGjUQNtx3cAZEHJLKIbrguQVSSUAWuUCCFzJJDCm/IHUbpCEC6elCuteQegjSa4FEDWRoEX5tNWT0GOJaiO2QKhMiDhnIhbfoIekYUuZC7ILYDmkcoCVoSEULKXAhCRfiJIh2yGJaSDBC2viQIoydnf39+/ccHByWlpa2trZKSkqQk14gDRqIC5HDB1KcQVIXPBkwMDBALjr89esXZNjg1atXkB3GP378ePPmzZcvX7i5QWfIQE7i/PLlC+Twbcgp6HA3w5MZ3F54pMBFIAxIoEHYNCUhcQEJAUiygaQQSJkLz4OQlhCkGQFRDIk7SDAyMTFBbsSCV8CQlhl8MgLSDoOkAUi2h+QpiHZITEH6YZDNM5BmAcTjkMWokGYBpIr9/Pnzz58/IeEPqT8gDVPI3mXIqbeQngrEqZA8AmnGQRpYkDXbkNkZiEcgdhFPQiIOYj6yLkiGgtgFMRneyENWRpANaZRA5msgIQPP+5DED0+iEFsgBRokBpENhzdbIXH09u3bjx8/srOzQzYvQLIwRC9EFyQbQpIfJI4gYQs5cgAyFgWZooL4FGIjJDQgKQcSJpDCBLI05NOnT+/evWNjY4NYCtECsQ5CQqyDsIcoCSmFICEA6UlCUiDkXgPI7BikCQsJH0iI0c6z8BQIKcQgGRkyAQdpSUAcgBYXoL38kHwFcSWEhIw0Qgp6+EJfiH5IBoYog5MQKVx+g5TRyCQkBUMKF0gIwk2AVCQQV0JIzDIUl0UkiUPcA/EC3HZMEyBFCSQrQrIKRA282oA7EiIOJ9HMh9dwkAWWkKMiIdUwZBkOZLYMkj8howLgOYXvkA4QpJcMX10FH0CGdJ0hZSKkCoeEKtxVkLID0geCDG1Bxjng9S4koUA6WBBzIAEO0QgRh3dzIRUbJDQgQQdxHmQZNqQg/vXr1+fPnz99+iQoKKivr+/g4KCiogIxAXLkEySI0MIHMugKGbqEpGBI0wHivHfv3kFuBHrz5o2cnBwbG5uAgADk/Orfv39zcXHJysoKCgpCEiekdoGEA2SEH1J0QuyFk2iRDi+S4Ay4SlowIBUepMCFBDgkA0PukoJEK8Q7EMdDXAtRD6lgINUqpMcJ6SXAwxCiBTIXCzldFTJ/BDEEkk4grStI/QoJMXiEQhRA7II0ayAHpUHGXSBTBpAdTRA3QJoUEPWQdgAkBiGJELKoHnI8H2SXMMQESAKDOInUEIaYDNcFsRRSCkO6R/B4x28+3Bx4pEOqMchoAeTEJUhChczq8fDwQBYfQEotuAMgMQjhQsyENF8gnZzPnz+/fPkSUg0LCwtDLgWBOAzSe4NrhIchJPVCBgy+fv368eNHyEIcyAAJxI8QXfBYg3BZWVkhI/8Q9ZA+MWT5DqTGgjsV0wsQE4YWiVw+Q8YdITfIwe8hhgxJQgKWdl6DxCakXoNMD0FWz0DiGjICCjn2ABLjEPfAdbF8+vQJMlQIqScgZ6dBTkiALPSFVxKQFjckhxPvH0hkQ2yFJ1CIdogjIAogbEg9B1EGISGyEPVUIeHGQpIv3F5chkMcAMmlEL2QKu3Lly+Qzh9kqgaSuCGlD4SNZj5kZzB8kBMyEQApiyGr/uALlyCFFOR4MkjhBZldhiQ4SDsdMoUPOYEBUmdDFi9ABmogwQjxGiTWITt8IAPjkEIWMkcFYUOqZHgdDHE/RDvEy/CGOaRzhtyKh7ceIDO1kDoecgW3ubm5tbW1uLj49+/f4TUExEC44XAGpGqBWAQpoCHFN2QmG3JFKDs7+48fP169egWZJOPh4WFiYnr79u3Xr1+/fPkCOfsJ3oOBzIBCIgsyZwyJREi8QEhI5ELYEF8jOw9XkiBJHGIgVi2QTAGJMkikQ4YZIN1QyOATJHwgVSbEEIiBEL3////n5eWFVLeQiXZIgmFmZoasvIMMO0ESGKQ6gXgWkoshTRxIEEHWfEBUQmQhNQGk4QUZjIEMz0BGfX/9+sXOzg45IgbSg4QMnkMcBnEkZFgb0iOHrO+FNLLhQQ13EsRrxJCQAIHYgqwe0oiBZEC4LyCKkZXB2RAXwrkQJ0GOjYO0gSB9F8gkzv///4WEhCCLHzk5OSFRBslZEBOQLYKYDFnJD8lTkOYvZCEIHx8fZPUGpOUEiQ6IFmQ2pEkB6QhBlnFAVpPAm+kQe5G1QFwFOYf406dPkKAQEBCAz2TDbYF4Fp744UYNRQakBQbJ2hAPQs4dgozQQFotkECDyFLdj8hRD8lukLiDFGiQLi7k9CFIioKohzgGwgYt14VkV0gRD2nbQlq+79+/h0wdQaoHtFwE8QzcFAgXKwlJrHBbIQxIpweeGiCJCaIdM4NBxKlLwvM/nIHffEhkwwsgyPGTkMXAkDhGCwq4sXAGpHkOMQeyPRcyGwcZaIIEL6Q1B1mDA5lSgrTBIRtnIcuYIadxQfb7Q4pRSNMYEoOQfipyNQzxF6S7AynlIQODkAoYohKzGoZUhxC9kCQOqeYxsy58nByyAenz58+cnJySkpLq6uqamppSUlKQUh4ym/XlyxfIABE8WOAMSNqDpBbIRA4krCAXKykpKf369QtyO8XNmzchA31CQkLy8vLi4uKfPn2CtDohU/IQx0MyA6QugZT+cM9C0htySoP4EZIgIUkU4nfakchdE3gdDFnJDPE+ZGoAUphCIgvZMfCIgBT0kHCDaIE0xiEzUvAKCeIpiJchbEggQOyCJDwICUlOkEIEohIiAkmi7OzskOE+SMMIMicCWY0MCXZIOwySwSFb7yBe4Obmhuz4gvgCEiNouQYiRSoJCQpILxYy/A6Z24a4B9KkIN5MiAlwX0DKQMigIuSuM0iTCJ5gsJoMGRyCjClC7jvh4OAQEBAQEhKCdKYhYxiQKIB0odByLqRVAdkBwcTEBDmGGjIxD4lESFqFBCAkkUMGNiDO+/Pnz+fPn1lYWISFhSE5F2s4QOIXqxeGkCAkAUDa7pAiERJfEBKyEAFSPEKCixZeg5gMyYCQNVmQxjSkaIXvzYN0YCDBDtECcQzocAxI9oCIQra0QjpYkI4OZJoBkm0gcQ/RSTwJtxXuCEgyhaQnCIlsGv4kjqySDDa83Edm4DcHohIyTgXppEIKJkiIQRIBPBdBFEMyGEQB3PsQBnz3EWQQAjJMB0klkC4ypFsDWdQKyXiQ6IAs1Pr58ycXFxfkhH1I4x2y5xsyMAgPYUhMwXuokKwOKS4hLURIYxxytga84wWpGyDuhCRryHpsSKkBEYdUCZDkxcjIyMfHB1m9wsrK+vXrVzY2Nn5+fnl5eQMDAy4uLngpBnEexHx4sMAZkPCH2AKpjyEDaxDvQ/ZDv3//XlFRUURE5O3bt5CJTE5OTl4wgNwYysrK+uPHD0gRDKmKIFEDaQcgOxtSx8DjCOIveKpDcxXEbWSTEMMxtUOKRUgEQQIH0kqAuB/SBIG4H0LC0xWEC3EkJAHAdw9CxjzgSRSyPAfSBoenT7i9cBMgbuPm5oYMP0C6EZCzJiAjPZBWAqSAg9QikI0MkIP2kLvF8H2rkBodUjFAmn2Qmzwg8QIPf0jrAeIAIkl4NEFSOKQGgsxfQGpQyAAsrmCH2wJRgBwIEDZkvAdyFN2XL1/+//8PWfoHT7qQURZ4qQXxEUQvJEVBpCCtll+/fkHazfz8/MLCwgICApDog+iCmAlxEtwESBaGKIMIQoYcIFkeIg7RCFcJiXdI8+j////8YABZmAlJ/JC8DLEIEm4Qp8JFhi4DkrAh3oF4E7JSFVJhQTaPwMs3qnsTEkGQSIEYDkmKkNuLISUtZCgOMqMPSb2QvIysC3SsBKRShNTkkBMeIPcEs7OzQ7YWQLIu3EqIfRCfw9m4GJAUA8ktkAoGohEy1g3pI8LVQJRBXAnJJ7iMpUQcYj7EGRBP4TENEnCQYgWycxdS6kFaJ5AGLyStQwp6ZGPhFkHGiyBSoCEIFhbI1BpkpAHSVYWM+EGCBTKIASmRIY16SOz8/v0bEik8PDyQS9AgWRFiEST0IH6B9AUhXRZIxoPsC4LUxHBPwQ2HuA3SXYaUkpAaGmIm3BbIzAVk2gky3cjJyQkZNIOs9BYTE5OQkIAcEw2JVkj6g1TVkNkRiGshNsLDH5IoISnt8+fPHz58YGNjEwYDcXFxBgaGL1++QMbwZWRk+Pj4IB1iiC7IdAlk+BRiLMQLEGdDvABxACS9QcaO4M6DhwacAQlDmpKQQIBUw5BCGdJzhSR7SLBA2JDEAxFBJiGykBYhJO1BGj3wlhPE+5AAgSiGpASIvyAOgBsISckQxRCNkNwK6W1DFEOSB7wDDZm6hqxvgCwKg1T5kJ4cZCsUpDqHTDBDDIfUUhCXUBLgkKiHBCCEDSmFIU6F+AvSpIP4FysJUQxxDEQBJON8+/YNcngcpDUMWZkBKc0hgQNJchBbIBrhfoF4ENKwhgxvQG4lgXTLIIPVkLQKVwPXi+wSSLMMcsI8ZPwf0kSAWApxBsQuiAMg9S7kahZISx0yIgoJFogaiF5IRMBJiNRQJyFeg8z6QYYYIQU1JJXCUwjtvAlxADy3QpYFQBqykIUCEKshRRw8+iCCLJBznSAzapBl1pCRPXg1AxGEaIOkG4hOSAqGZ2+IICYJSSiQohAyqAtpAkM0QsII4jKIXkjrBtlwCBsiSy2SeDMhxRwkFiGZB5IlIOfdQ+oYSM8Skm0gLsRqPiSemJiYIEemQFIMRCVkEAJSVUDm4SAlGmTVH8RkSDHNx8cHKWchiQxSPUMm9iDmQ5wKKZ7gB6JBBgYhZSJkkxIkS0O6OBCN8GwJqZ8ghQ6kXIBc3QHpbbCxsUG2bUAa6ZAhdMimDg4ODkFBQVlZWTExMUg8Qrr+LCws/Pz8EDYkxiG+hoQVnIR48+/fvx8+fHj27Bmk2GJhYZGSkoJUq3x8fJBd8JAeCWRPFGTMDVJDQFY2QMyBDABAwgGyNBeeeiFpD+JfSNpDLgfh7qE1A5IpIG04ePsGMrgKdxs8NiHhCXcSxAuQNABpS0EUMDMzQzrB7969g6zjgzTsIH6HNNUh4QPxOLzUgKwth0yCQGIK0uiEFOWQYQl4YEJKdkjPGNIeghwOBTl2BtKrhhQp8PUTkP2vkD4K3FJ4woP7iyQGcuBAPAVJVxBxSJqBNN1IMhYS+JAdDRwwAOndws2HhD8kzLH6AhKtjIyM/Pz83NzckNMCINuNILogDobEHST5IZsDkYWseYQUFPCggyQbiCGQ5hdkIBoypf3hw4eXL19CxsAht1hCwgFSgCOHA7xkRhYcomx4vEAKOsiICCQeIYkBOWyp60eI+RAzIcsjIIsh4DbCcw2k+kB2KsSFIPLhw4eQmc4vX778+/cPctoWpLyGGI1GQtIfmiBk6yckviEKIKkEstUSstYaUhBAek5MTEyQHVQgFzCC7oWF6MI0luoiEIvgYQRJi5DOLoQNKWL+//8PaRFDpn7heQCePSDVJKbzIOkAYgsk6UOyCqRUglvx//9/SA5kZGQEbxsGdfUgC+ogJ81CplohB25AyjJIlQ9Z+AcZE4YUZ5Cghmw5g7S1IV3eHz9+fP78GdLLgdSscPWQdcuQdZiQkXDIahrIVYmQeIR4DVL1QtIDvGCCpCSIa//+/fvp0yfIkahCQkKCgoKQehESApBaHE5CHAAxGRIFEBLS8oMcn8vBwfH69evbt2///v1bVFT069evPDw8/Pz88IvNIdohvTS4djgDEhqQvAEhIbZDwh9S3kGGiSC9eQ4ODkhcQKQg/oWMD8ETJ8RGTC5cHA8Dnh7guRHSI4esq4JUTpAtzpBaE5JlIBkKMnACOYEcPrABOQQRMoICGY2EzItDRrYhrW+IZyHVIbyBAlnjA2lWQtIkJDogTT14CocEFyRx/vv378uXL5BZLkiiguRiSIhBEjNE5OfPn5DuIxcXF6RVCmmuQZYjQcIWTyhBLIWTkCYUxBZIJELsgiQqSFxDZCED5n///oXMPWNaAbEaoh0uC2m8QpIQxPuQRgkk/UMWx0BWmENanJBBeIjtcEMgXEhSgQQ4pKqGRA3EcEhhApn1g6RMuHZ4coK4DRLgkMmIL1++fP78GXIdEy8vL7IWOBuiC3I6N2SOBnImPOTgB8hqMvg1WZA0ANeLzIAEJrIIddm4zIeLQ0pUSIxAgg7S34A0GSEDV5BCD6vD4OZAGBASkrAh6iHRBCEhItQiIUkL0tOFNEOZmZm/fPny4cOHnz9/CgoKioiIQIoXSFrFai/EwSyQHhhkfhGy8AeS37DqwSMIT8fIeYmRkRFybjDkDBTIGm5IwYTHKJpKQaoQiBXwHA6pBiCRBxlSg/iCiYnpw4cPkAl2SCkGKb/wRCrcfIjhkAiAlH2QaINYDcmEkLoTkochzW5ITmZgYIDMDkBiF7JgBFIXQoyFOBXiDAgJsQhSKkGOQ2JlZeXh4YHIQkhIswDZAfBRO8ilaZCZMIgfIcogE9iQAW1ImQJpskCGNCDaIQPsEOsgC8LhjoQYgoeEBxfEcMiQIC8vr5yc3IsXL16+fAnZLgwJLkiTCNIEgZwLiKwdkqAhPoXbCFEAGa2FuApCQgomyCFikBIN0lJBLjGRjUJmww0nkgFxGKRqgaQreKMHEtRwwyGuhVSokDXPkA1jv3//fvfuHWS1OcT7kDbZ79+/X79+/f37d35+fsj8EcT9kPobYhekZIc0vP78+QNZIgcJZ0jFAKllIYkQ4iN4gDAwMHBxcUEaEN++fYMkEkgShWQTSOUBaeZDVjBBlhZCuumQTgkkZUJGQSDmE0NCoglNJSQkIcEF8QJknSN8nBxNPbxlAw8KCAOSnCCKIdUAJNx+//798uVLSJqHDEdDJoaQ1UN0QcyB9H4gB0RAKhLIFgZISxQy+AfZMA1p+UFWrkF8AfEgxC8Qd0JaQvDTDCErQOHWoTEghQnE45CbVCAWQcaoICQkOUGsQ9M+qLiQoICkE3izD54fIUkdHlCDxOWQVhpk1Q5k/Pnjx4/v3r2D5C9OTk5IqQjxFKS0xONyFsjVrZA6BlJBQqY9IFkUj040KUg1DEmdcClIMoUUeZByFmI4pAUBV0b/IIYkUIgDID6FlMiQ6g3SQIbcMQU5HgEeMpDEAdGIlYQkGoiZkNwLiQlINwUSPpBkBymXISZDlhVAMh4k9378+BGSfyDFLqRkhAcU3ASIgfAQhpS5kGPoId0RiCEQ9ZA1UBARiEcghkM2L0G8A3En3DrIYCmkEIF4BLIO8OfPn5AxSUgbBXJxBWRKBmIXxDQ8JDwKIAzIVRaQ+S02NjYxMbG/f/9+/fpVVFQUsl8L0q2HuAFSBkH8DgkTuAjENAgJ8SmEhMcLpC0CaXdD9EL8CEmZEDMhA7lwx0OUQUiIaXApYhiQAIEU95ACF1KFQCpLSERA3A+JDkg0QaIA0gmG3FAL6WBB1j1BAh8yegxPQpAiANJog5TpEEsh6Rky3A0RgXRhIZZCUincIxBvQhRA3ANJkBBDIGtPIM1KiAshyRje0IE3jyBjpJApLTICDe4euPMgroWQkGCE+AhyPSgeKyBSEH/BjYUnJEgRCSlPv3///vLlS15eXiEhIUiShrQe4JZCkgfEQAgJSWmQ/A7PfZDDwiBBDbEIUrBA2itwEbhjILKQbAg5uRbSCINEKLIyOBuSqCCJ5/fv3x8+fIAMfUFWckEmFyBpHh6AcL2DjQEJEEjDDnIKHmT1CWSNMCRwIBFBvMuRoxuZTbwJ+FVCYhySDiEqv379+uzZMzExMTY2Nh4eHm5ubkgvBVLg4HcDC2SCDVJHQlIkJKlBjMYkIYkPUxySb+HikIIGUrdBSgTkcIT4Ab/L4EZRlwF3P7wQgYhAFtlCnArJk5CFoJD5FUhXA9kLuFwFMRZiJqRpAskwyJkB4n2ICLx2gcQZZLnjnz9/Pn78CNnwB5+EhozSQDIeJI4gtkDcCel5wNdVQSyFmAlXDBnhgRQWEPdDTICwIdEBqY0gvoCkCkiPDVLTQ4yCjNpBIhfSl4KsNYPMN0N6SLjCCmILxF5IEQYJh1+/fkESLiQEIOuzmJmZhYSEIJUBpBcOmXKDVGDwwhHOgHsEIgKxBUJCpCDuRyYhTRaIGvhoPDziIK6FuBBuAqkMiOHIhTKkNwwZnYZYAXEwxKeQSg7iBsgpMZCFGpBFCZDll5AR9f///4uKikLmHSGTCxC3wefIIeMH8FNfIMccQjq1kGoS0guErI6G6IV4FuIqSCkDGSSE9IkhzYJ///5BmoyQFgwkRUEUQDqC8LoZYhrEL3DziWFAAg2iHc6GNDggGQFSB0McAPEgXBk8fiEMuF/gCiDlPiSPQMyElFeQ9fmQeh0yKQ4pQ9GcATEWYhrkhm/42kkWFtD44s+fPz98+ACZpIfUhfCiFS1fQAyBmA8ZG4M0dLi4uCBDyvCyAi3QII6HuOTHjx/v37//8uULLy+vsLAwpE0PyfsQ89EKZzSjBpYLcSEk8UDyBSRGIOMQkCwJLyhIcio83knSRbxiSBRAzouFLK2H5EHI3XeQXaaQ6CPoEtCZ0vC6B+ICiOkEdUIUw0lIaELSE6T9AnETLy8vWs0BMR+SSuDa6caA5Ad4NQNJx5BiHVIkQdYcQYapGRkZISfgQyo5SGqA6IWEL6azIeGAFnqQPgGkPoNogSQ1SB8CkjMhnb/Pnz9DThyFzAdDFtxD7IVohFR+EBFI8ff792/IvQjwtgJEDbzsgzgJUjJCSEiHCe53iMkQN0N0QfwIYUNG2yBmQtIWZAATshEFUg1DwgdSAcOtgxiLlYS4H5JaIOohR0BApmYh7WI2NjZxcXHIEhtIaMMTEiSmIA5GNh9iFMRYCAmp3iDVCUQlWpEEKWchfoTUN5CqC9LsgGuHmAYxgWwSUvpDShyIgRAfQXIERASy+gwSPl+/foXMGUG2ZkGGSSHjkJAUC6meIROEkAwFdzBktBaSwCAJD7Ky78ePH5CqFGICJDQgFyPC/QUxBJIGIEu3IEkUMoQA8QUklUKafRCVkK4eZBoVEl+Q6IA05iBsuBVEMpCjGGICpK6CrIGATNNAGn+Q0ENL0si2QDwFVwBJ23AFkCBiYmISExODHD4DWaIIiRpIdED0QkQgjoG01yHboyHLIeGzQm/fvoXsUII0HyHTOuzs7JBaFuJaiCFwYyHjTL9//4ZcCQpZIw13IRoDLWQgEQ2ZL4C0pOHqIbEDtwsuPhgYEFdBch9k0AUyJQpp1kNanPDAJ8nBkIRNkhaSFEPSOcT9nz59ev78+devXyFTcpDmMmRZKKTxTdALoA1L8A4ZRA+kEkWOZmT3QSxGFoGwIakTUspDEhakUIYU32hZBZJL4VbgMhNiMnVJeG6E2A5xNqSbCFmqBrmNAFLkQcZ24OkYohcSShAvYLoN0pWBV5AQZRAuJHugmQY3E9IShAyHsrGxcXFxQWo4eLsBsqoZcr43JIQhmRlSx0AGdSFzQhBxSNxDqjGIOyEFIoQNISHeh7AhuiAkxJFwkyGzlZDxZ3Z2dl5eXkhvDNJjgFQMEOsg2tHKOLj5EFlIdCOrZ2Bg4ODggCzfg9gCyZOQxIOmHcKFRB8kHCBsSEhCDIeogVgHZ0O4EHshWiDaId6E18cQKXiwI2sngw1xD9xMyIAzpAqENH8h7oGYDPECxFU/f/58/fr1mzdvWFlZhYSEIOvnIRNOkNEIyEoLyN42SKsR0tqDdBYhlSWkmoeTkJiCVBvfv3+HbKeBNH0gDoBYDQkoCBviPMiWKoizIfXTjx8/IAuaIG6G9MAgZRMk8UDCE5JZIIbArSCGATEWohKuHeI1SGqETMhB2oWQXANxMCTA4SQ8hcMNgZgJaVhAQgniYMhuOkjahizAhEcWXC/EWIgJkFD6+/cvpN8GKYvfv3/Pzs4OObESMjAAuc8bssgIUt9AwgQSKXA3Q+YXIPdZQRrfkNiE24XJgCiA7GIQFBTkAQNIIxJiLMSFkLSHqX3wiECCBVIAwtM5ZN0i3PFoIQ93PFwBXATOgEvh0gtXSQaDhQU0kAwJZ8hi2L9//woICECW+EDOz4fcPAsZDsFvBWjDErzQhI+JQeoS/DrRZCFtfEjhBUnikPEiiFPgIQJhQNI9xARIfqNFSEHMRyMhDoAEHyT6Ic0FyIUnkJoA0sqGbNJATsqQLA0h0YyFcyEhAFmLATlIAdJQhdgLKXnhiiHOgHAhmxMgoQHZHAwRh1gH0Q4PJUhoQ0IYMo8CWTIAj0q4ekgnCdkiiLEQEm4gxJuQFhiEDSl6ID0nyEoxSJEHqXohvQdI6w9eoEDKF4h2ZJMhdsFJiMloyuDhBvEvxEzI0n1IWQkRh7MhaQwSXBDfwb0MtwiZAUlymK6C9OcgdQakyQKp+yExBdEF9xfEzcjGEsOGaIckNsigOiRJIDfYIWECsRpuC+R0bkhqFBAQgCwdYmJi+vjxI+RETwEwgDSJIMOqkASAHJiQhiDEnZCtLxD3QJZqQ2oRSNkNCRwICTcB4kiIIMRhkDCB1LiQohMyow+PMkhEQHwEiTWI7aSSkMiFmAPXC5l7hixWgLRrIXEHVwBXD3EzxBC4LIQBkYJ4DaIdMkHAyckJSVfwjABXj+YRiB8hrR9IsEC2DHz48EFQUJCVlVVSUpKLiwtyMQPESZCyBdLbg2iHFNCQ8gc+0sDJyQlZ+g4Rh0QoxBnIJMQ9kIUCkNWRkK3bkLwA8TVELyTLIOsdbGyICyFjYJDUDukNQ2IB4hdS3QwJYUhoQMKfVBPwq4dkEIjbuLi4xMTE/vz5AymKId1aSLqClJO/f/+GpyusxrJAnAjJq5CMBCkvIOtBsOrBKgjR9fv3b0hWh9QQkLCA5FtIiED0klHNQzRSTsIdA0nlkIUnkMIIUhFCemOQw60ghSYkKCHuh6R+eOcA0z1wryE3b+Hjt5AcCwkWiF5IWQDpjkP6OpA+B1wlxMHw4IVkLUg1DGk2QcZAII6HjDpAUgAkEUPWfUCcDSl9IPYisyFWQFwF8RpEFlKyQ85ngMhCPAIvBCEjyZCQgSiAsCGpE2IRVhKS6pClfvz4AVkn+AMMIKszIDfKQRwDH2iBhxgkiCCymAYiGw7XC1EMCQ2IAkiahwxXQDpbkOFoyOmbEDUQT0HYcG9CuARJ+OwDvKyBOAaeLSFOgpgDWdII2VbAycnJz8//48cPVlZWMTExyGodSC/t169fb968gexHEhAQgBgFuZoJEoaQihbiTXiEQlwOWfsDuQDg+/fvcF3wo5KR3QNxFXIQQQZd4SU+5KZOyMHLENMgLTN4Iwbia4iXIaYRSWImIYh3fv78CZmvgawlhCR1SPRBogmiDOILCInVRsi6YkgKhyhjAQO4dkgYQtIVxBZIekM2DZJxIGfvQ9YxQC7flJeXhxSDkK0H8MIQUmtCRu8h0QExDeIAyFQR5NAuSFJEVgNRCSch0QpZRgqZm4AEAuQcCEh5DnEevBCD6x1UDHiAIycVSPqBlHKQYIeUe4PH5b9//4bnC35+fh4eHsicAmTACZIUIUkIMisByaS43M8CyfOQLjZkrQekqQ65Yw5yMi1k0SCkzQspDiCtYMhaD8ikCGRFMbzGgmQ8SCsb4g6ICCTBwbtocGfBExxEAVycEgYkgiGxCAkRSEqFWAGJV8jOyG/fvkFKPX5+fsiuR4i9kDIUUp9BROAkxBA4F86AJCBIJxKyWQsyZgVpIkH6W5DqE1IEQEoTiFMh6xEgJrOzs0MyLSQ6IOEDGUWExDckd0HqbAEBAUjGg+RweJRDamWI2yB5EsKGxAgksiAVPKTUg9RwnJyckGCBJDXIHlbIsSGQXj5kOwpk5gZiL8T9cMMhcQ1Ji3BBiL/Y2Njev3//48cPyCIUiEsgvQqIUZClQ5CBYoheiN+RTYOLQBRApCCCkGiF2AURh6iByMLZyAogIQPpmkA8AtmPCxnDh8wFQNTD56QhyQliGoSEKICwkUlIIEM0QlYVQWoRSKKCWAFJlpCCFVJBQpqzkLM4IE1syOJbSIUHubP269evYmJikLlSSB/ix48fkJtaICMWkMoD4n54UMDdCRn0g/SJv337BtnkBtkfBWlKQkISYgjcR5DUCIkdSLhBkgF8EuHr168Qx0C6fZAUBUldaG6AxAjEFogUxG2QZABJuhARSOiBm2c/hISE4DkaogviNohFkFoTEolwSyEWQZTBpSCjIJCaDx5HEAPh6pH9Dun9QKQghkCcAaliOTg4Pn/+/O/fP1lZWTk5OcgMEeQYMogyyOw7Ozv7p0+fILEDSQCQoIZ06wUEBCDmI6+YgwQyxPEQ50FsZ2FhgWwUhrTMIAkSkj0hNkLiCKIREjgQ9iAh2dnZIdMikILx8+fPEK6wsDC8JoPnDsjOGsgV3ZBdtZDmIBsbG2SdCtxT8OCCpCK4ONUZkDIWUhJCHAPZ8Q/Zww25/hUeBZBKE48bQL1huIshiRgy9gUZ5IREOeRcOkh+hhTNkCQOSTSQyhiypBNSwUCSNaSxgMdumkpBsjfE/fB0CZk2h3gE0vOAjBtDBgMhUQjxFIQkz4WQsgNyugUkcCDdXHiAILsKUvgiWwSxGiIO1wJPkZDuO8QKSPsRrhLZEIJsyIIdSCxDRs8g98BAFp1C6lF47oUc3AHvBEOaGnBfYLULLgt3KkQZpNn3+fPnZ8+ecXBwiIiIcHJyQrwAUUAeCUm6cL1wLpwBkYJzMRmQRAJJ2JB0AqkdIaMmkDQDSSEQH0HKZUjJCNELsQKNhIQhpECHaIekTMjSJ4gVEO2Qtum3b98g7bMfP378+vULsjiLi4sLEkSQ/MXCwiIqKgpZSA+JlP///0PmJr9+/crPzy8qKgqfUoEU9xB3QhwAcT/EUoiBkMNqIPc0QLZCQZIWXCWap9C48MQJGVmFhB4kaUFqKYiXIW6A2AtxCVwE2UBI1ECmeyFtI0gdD2kowLVDtEAUQ0iIayEJD0JCFMPjFKIAohESIxAFEBEICcl9EDayemQvIItDzqSDlH6QpdGQBgTcg5C1cpD1qpAuMqTShfgdYhSkNQCxFNkBEBGs5NevXyGrvZBDGFKOYVU/2AQhTVJIUoEkdch4HjzcIOEDISF5EJIMIF0jSOcB0quBhBgkDUDUQ0KVpl6GJCq4ayHNIHhNSqrVLJCD0CCNMniRAWkUQ5a/QhIQZEU+pD0CsRJiEyQ1I4cgRBbiPnjQQBTTn4TEEMReSMkCcRJkkw+ktwpZHwRvvENyPjw6kU2AmIOfhKiH5CtI9Qbp3kHEIZkZnkogjoEYCFEALxcgQ6OQNhckFUKCFLJsBNJvhleHEBPIICGWQmoUSPML0kuAdLUhaR1ymg9ktBPSUIU3DiAasdqLnCLh/oX0fSG9gVevXkHOmoHcBwBxCVaj8AvCwxDCgJgDySSQSISIQAzBFIeLQBRAsgCk6oIU5ZAUDokXSPRBVEIMh7Ah0Q1ho5GQihbSeIJnDUhShBTHkNEXyPA+pL0LCV7IYR2QVbuQAITc4Pbv3z/IrkRIdxYyXgU5QYKDg+Pbt2+QvRPc3NwQcyB+gbgfzbOQ6hOS8iF36kFa9JAFJpAyAWI1mqcgpsEF4V1kyGAM5HQ2yIVgkFkMyGJDSNsOkjDgxqIlIXhkQcQhoQeZVYW0BSG5AK4M4iNIeEJiBGIynISrhLgWEqcQlRD3oPkFngAg6uEqIZUrXDvcGd++fYPsbvj79y8PDw8nJyckVCEOgyx/gzgGknMhiygh+RpiBcRMiAhEJVwcwsBKfv36FTLjCCleIM7DqnJwCkJqUEiB8OPHD8jBMry8vJAyDR7s8ACBlHiQ2IR7FjJqBWlKQvp+kMCkg5ch6ROSxSAkpPwhz2pQbxiSYiD+h8xzQLIKJHdBymJI1oJkM3hpAmm2Q0IKMjYCT9OQ8IJIkecyCnVBqjG4IfDoYWFhgRy8B0nHrKyskNMBIZ6CuB9S2kKCBW4CkQxIZECyIiR64AkIEhoQEpKNIdZhNRnSsIUMx0EOKYWYCakOISZDUh68nMVqDi5ByNwYxHzIshdWVlbInUiQuQlIIwySPSDrccBzZyxwqyEmQ7wDYUNIzKiHiEBkf//+zcXFJSAgAGnLQ4ZrIJ6FKEAjkfWiScHzKiTM4YEJjzg4A6IRzoUz0MQhXIg5EHshvoM0g+D9UWRlEAVwEUwGpCKBFMGQQhniWkj3GpIsIXb9/v378+fPkF4yZP0zZIIcMk3Iysr65cuXV69e/fjxQ0BAADKKAEkSkD1OHBwc0tLSfHx8kPV0P3/+hGxfgXgH4jC4xyHOhmiHpHwuLq6vX79C5hohfRRIlQyJJoh2ZBJSXcHNgdgCGTmHBBRkRA4yMAu5ahfiTYj3IaUKvGcDzw4QKyAlD6SMhhxtDZl8gdyqCTEHohKeBiBFFpwLcRiEC7ERrh4uCPE4sjjEUxDz4SZA1EOUQQQhGiFu/vTpE+TwQi4uLkFBQYgLIVogoQ1Z0Q1ZXg5prsGzLcQESNBBTIZrhDDgDQWI7WgkpB8MWaAHMQpScKEpG5xc5ECG9OIga4whgYbsZkgegcxvQkaMIEvEIf3Db9++QRp5kMkRSDjAQw/ZHOqyIdUwJO7gJmOmNLgUfgYLxNuQhAVRCpkugkwQQhoakHlKSNMDsqwfUrXAfYusHSIIT1WQ4IaYTE8S4gBInQGJSAgJ2ZX07ds3yKl7kKtI2NnZIcNKaMFKhoPh/oVkCXiygDCQCwuICEQ9xLUQEhKAcKshS70gBwtA0iskG0O8BlEMKT7gWohhwLVAzIG0qCBdIkhhClmzA5l6YWZmhjgAEtFwl8OTHdzlcBGIvyAugctCuH///uXg4IBcRQyZ2oSEFUSWJBLZOrgtyFZDTINIESOOZiCkKwwJHAgJGbOFGEsMCanCIQ5AzjWQ3g+kXQuJUEhL9+PHj3/+/OHk5BQVFYWMRUMmwxgYGCCToz9//oSkXk5OTohKyN1cEEP4+PggORoyOwUv/SFjPJD+E8TZkEiEJHjMkIGowUNCtEDyFMRGiIEQEtJYhKwggawpgZw6Dm/JQeyFaIcbBQ98SKULWRsIaRRCmhQQX8BdBQlVZBIuhcyAOA+SU+DikJQMyQWQXAl3BkQlxG0Q9cgOg2iEiEBaV5AWFTs7O+TADcgoNMQQiMnw5hfcNIh2iFGQoIDbjsaAaMEkIeUzpCaG2AVJSxAbMdUPNhFIjxbS/oaMGkL6gZCQgccpnAspiCDDHpDVSJDJeFKXElMrHOD5F2IgxMEQNhkkaIkWxETIKAHE29+/f4cXN5DsDZkCgdTQkEwCWRIJSTTI2QPuIAgDooAMl1GoBe5sSBqFdCn+/fv39etXSIeDl5cXfvInJDXAu5UQN8NzL0kugeReSPaGhADcAZjmQBRjikMcANEIkYWkP0iZDinp4LK4DIFoxEVC5h0gi+xZWVl//fr1/v17yLGokM4WpJUNuT8HcqQApNSAVNuQsgPuBmRb0BwPcR4kKCALwiHn7kJWrkG2QUPadsiGwNlw0+AicAbETEiKhbsHWRaiFy0e4Vw4A+ILSKjCBSGGQ6QggQ8xDVJYwFMXRBdEGdxqZAZkkyukWwMPOogtkF4jZEACMj3GwsIiICAAOYwFUr7AC3rIwCwXFxc/Pz9kUztkix2klkKr4CEDlZD5BchqL0hDB9KqgHsNkuAhExDfvn37//8/ZKM8ZGQLvvAE2TtY2ZAohgQFpBKCTF5AFrpDVhr++PEDMo0NGWyHOBi53ICHIcQ0yDpwiO8gi9QgBTdcGYQBUYzsI4gLIZEFYUNUQtgQ9ZDUAlEDaV1B6jDI0AWaeqwaIW0LyF3LkF4KBwcHDw8PJFIgQQHJrZBAhtgFdyckJUCUQcyHKIAkZggbIo6rWoWc9Q0Zz4BEK5wN0TjISUi/FpIvIOkNMkACaThCfA0JB0iYQLIMhA2phiAVFiTM4ckJHr+09j6k0oQnFYjD4FxSbQdVw5DVOpClzpDKFbJSHFLiQMIC0qCDFMqQfAtp2EISLjx5QdI3hAt3Galuoop6SEKH5IE/f/5AjiyAjGOwsrJCKmDIrBg8yiHjDJDKBuIFMlwCH+xFDhm04gYSpBDDIXfsQDIkxM0QNtwxkKVeEBMg9QFEGcSF8GSHbCbEZIIkpGiGHML15cuXT58+QQ6ShAQI/JRHyCgINzc3pGxFsx2XLRCHQUhIMQFhQ0btIAkMYhGkSoPUSbhMwyoOT2BwBiT5QTIDJEAguReuHc6FM3AphgQvpGiDuBwiAjk9CjJKBHE5JL4gsnCL4Ax4LQjJTRDrICTE+3///v0IBoyMjDw8PKKiopAeLWSXNmTpBqQH/PPnTw4ODsjpnpAF9oyMjJAu8t+/fyH71iClGyTuIKcTf//+nY2NjY+PD+IAZHdCkhOkzwpZIQE5uQkyoQNpSsI9gsaAhAk8wJEZEN9B8hFkLBFyeAUkM0JmWCADiRAnIZsMcRIDA8PXr18hSQJSB0NKaviQFUQLxA2QYISIoDkDYiMkJcAVQJwHISFryiA9LUiQQiyFKEbWCLELEteQHPHly5dv375BGkaQUIUEPrJ7IFkMYg5kXyxkiSukOIVUHhC9yLog6iFuwEVCFhNAAhlS3yPnAly6Bo84JANCfAqfm4AEAiSoITU0xMEQZZCxaEi7FhKMkENjILIQ70PYkCCF6KURCXck3HyI1XAuSQzooDRkmzkTExPkdH5IFQLPJJBiFNKYhUz2QEQgSRmScCGtGIjdEAdBAhoiQn8SHkyQZjWktILcVguJPMhCecg6FMiCeIgWeDMHkqVJjVG4gXAvQ7IKpASBZGO4FGS1NqQ0h+RYSJjDlUEmySCLpyBhDpGCkBC3IbPhJhNkwDu47969e/r06YcPH5iYmLi4uMTFxUVERLi5uSE1JaTPCunFQgbfIKUzJKwYcAOIAkipCikm4HkMUjRDghcyNwzxCG7DcMpA8h6mNFwczoCogXPhDIgzIA6ApFtIqkYuBSAiEDWQ/I+cSCABAok+iC3IJHzFL6T5giwFMfDXr19v37598eIF5BZqyBnvcNMgWzIgzaPv379DurnwfgNkkuLly5cvXrxgY2OTlpYWFRWF9EEh3WtI0wqy+gFS6CM7AOIvSPUAud0Zsk4eMjgEcTDEkWi6INUbJOjgJEQNpPUAiXeICKTJwsfHB+nEQDq4kF4+pDKGKIMnGIiNkAudICu8IFkV0vqHuAricrgWtMiCGEiQhDgS0umHFFaQxi6yjyCZC2IdxECIrl+/fn39+vXLly////+H7OWDrMKD5Bq4eojfIcZCYg3SjIOszoMYjuwLSAqEiEOsw0NCChZI8oMEGoTEo2XwSEFKA8hQEKTMRHYbJDrgEQGZuoJ0oiBHt0KWLEBGjCC+hpAQLZD6C9lAqrMhTTeIdfDkB4k+MuwC9Wkhx61B8v/3798hxTFkahBiIqSegPgTctgYJAlCchEkqUF8DsldEGdBdEEyD6S9g1b2QQynkIQUGZBFJZAiD3IyMGSbP2SVx+fPnyFjYtzc3IKCghCHwfMzvEyBl62QJALJS3A3Q5I7RAqeTyBZCOIFSBxASEgygmiBrFWBZEVIexkyLf3v3z/IRCBkhRQfGEDSJSS4IPkWYiAkwcGdimwvxJ0QN2CSkGlvyPYASP0HaZdAVov8/v377du3kCvihcAAcnoAZCEbZL0eKysrHx8fvHiFtLrg6Y+Li+v169e8vLyQTS+Q6UxIVhEREXn9+rWgoOCnT5/ev3//69cvaWlpeCBDkhPEwWjegQiikRD1EBJuO5wBCSU0LZCQwSoFiSC4dogDIIZD2BB3QkQgxkLMgTQ3IU0iSHqDJCTICDDEQEglCullQsIckuSQxz8hoyaQsU1mZmYRERF4yP/+/Rtye+779+8hLeN///59+PABckoAZE8qZHk5fKrl58+fAgICXFxcP3/+hLTkWFhYXr58+f79e0jFAKnjIVc+QBRArj6EbESG7wWCDClDfAT3NcTjEC4kcOChBxFEJiEZBFkEEoaQvTqQkIFstvn79y8nJyfEKIg4pG8KWZMFWekNCT2ImZBMAYlTiPmQbAjRC5lpAhVnLCyQXA9JqJCO+Ldv3yCN77dv3/78+VNSUhJys9yfP38+ffrEyMgoIiLCzs4OqfshDoZEGaRYgzSX+fj4vn79CsmhX758YWJi4ubmFhYWhgxow8/JgcywQAINkoUhgQZpUrOwsEBWs7OwsPDx8UGOrIdU7RAtEBLiBoiXIckGkmEh9Te8mIU0cCGzhPDCARI4NCIhzsM0HFKyQdwDcTwkL8BVQgIBwoUbAgkTiCCk1oAsX4CUNpDpDIgaSOxAmpX///+H7NaDHBcK1w5hwG2HcIkkIekQ7maIIXA3QxwMSWmQyIIMzxBpOEFl0IMxIcvMIG1PuFOQNcOdBT9fEHIhLkQccuElJA9AEi4k80OaORA/IJuGKYIsSxIbElKQ/iKk6IQMGUHmO79//w5ZzwLJhJBLyCG5F24LxAtwLi4GxCJIHECOm4BohNTTcB9BogpSWMAVQ1IYRBBCwtMr5EQOyKUukJPiIZkKbiAu9xAp/unTJ8hUIqRsgnTKIcXf+/fvnz179uHDB8jFgoKCgpBResgqNshuesjxfnBPYVoK2WMDCVJI+oEMp0MOHIYsLGJjY3v79i3kxCVI9xfTHCJFIKFNpGJISoZEE5oWuDkQBjy0IYrhXIgssjmQ4gaeGOAFImSmCtJBgRSIkG2OkAIFEj6QSgViGuRMZkgGgZyCBFkpCmmu/fjxg5ubW1RU9Pfv35C1uJDMBTEB0vCFLFRhZ2fn5+f//fs3JPogDoO0ulhZWfn5+SHbwyDzl5B17xA/QnqBEAdAMg7EYWgBRS0uJOExMjJC2vGQFt7Xr18hh5lA/AVpE0AqXUhbARJuxLgBMtkB8RREPSQuIN2ADx8+fPv2jYeHBzLB/OHDB25ubvixX5AaFDKSD4lxSDBCAgrChmQNSJP6+/fvkGoYspQdUjVC8jVEMWQuA+IMeCEAkWIFA0ijAWIaRAG8nQ3RBSchi7AgO0UhhSrEHHiUwVUOLAPiKkiIQVwCiTtIeobEKaR5Byn6cLkfEmvwkhBSXEA29UGWjkIsgkzBcHBwQEyG2EgLEpLXIA1E+OFxkL44SdYhhwymRtC1XJDSE9L6gzT2kdXB9UMYjIyMkAkkyL5AyIILeDENCXp4ioQwIIKQ4KN6VodEM6TZCCkiIRnvx48f3759g8wwQW5KgNwYiOY1iKcgJLIUnA2pVCCZE7k2RdYCL7XRFMC9DGnJQopsSF6ChAMk78FLIshaWfjYL9wNkGBE5hLPhowqw90P6cZBDsZ6/fr1y5cv//37JyQkJCYmxsvLC3HAt2/fPn78CDldErJWAFeegTgDUgxBxjYh91NBzuiA7DWHBOCLFy+EhYXh6QSikSQS7gU4A792uDI4A6IezoUzIOIQEh6VEAa8jQxnQHRBik4ICSkIIIPVkIIGUrxCesOQlh/EcEjygOiC1EOQI1Mg87Lc3NyQEzR5eXkhbaafP3++efPm8+fP8NUMkF1kEFt+/fr16dMnyDmsvLy83NzckJ4fJBd8/PgRstBSSEgI0hSAZHBIEwFSzEGaDpBDr+AehKRMuIOpxYCHG6S0+fPnD2THIGTJJGSID9L7gTepISUyvPTA7xJIXoPEBdynkMmU////f/369d69e6ysrFJSUvBzmiANdAEBAU5OTsiMNSSg4HkEOY9Dhuvhgw2Q6QAeHh7IMSnw1IKsBWu2heyRhXSgIU0rSHxBLIWEEsSnEKMgw3iQRgncQEryEcRwqpMQ90PcDAkNCAlxM6QQgMQLXByrGyDRDamqITPoEDakVwBpNULyEX5zsBpOhiA8t0IWlpJhAkQLJGQgbGQS4gsWyAApPJoh6RgiByEheiCpHNJRg4QpZL8EZAQJ0pmDD55AtECSFHzQGBJPcItwOQuil3gSkj3gw4OQSu7fv39v376FxBkXGEByCyRbwg2Hewq5DILLQhgQ98NVQibYIH6BF1iQgIL4CO5riCyEC0mLkFIPUgJChgE5ODgghw1BhjQhZQG8SQFxAEQvnE0qg4eHBz6DACllvnz58v3793fv3v369UtISAiy6geyTA9S+kMOy4QcPgy/PBEyxIfVdkhjAtJihYx4Q0beIL779evXly9fIGOwkGoGqyGQMMQqBQ8BeGBC8iouxVjVQxQjxxEkgiAkZgKA2AVxFZosXApiGsQ6SG8PsooEMiAEL2oh6uH1NKRlzcXF9fHjx0+fPkHuOYeMbUIGPCE5CxIL7969+/LlC2TzEmTdBqRU+vfv37dv3yBjdCIiIpDZU4hLfv/+/eXLl69fv37//h2S3SAOgFRvkKoOQkI6bZCeKCTjQ0IDElZwv0O4FJKQSW7ICAEkPCF7MSDVMKQfDNmpzMHBATkEAzOWIR7B6hJI/xLSXoQ0zSFjv5CMz87Ozs3NDbEF0iiHXJUIaRNAjiuB+B2StSExCwkBiDMgwxKvXr2C3CbLy8sL2esISfzw8gGiGBIREKPghkDMh4weQdbZQNY8QtyMfIAl3IOQogDSnoOUPJAQgJgJV0ZPBiRkMG3EJQ4p9CDOhucRyJgEpiGQLAMpaiBnFUBqX4h/IWU7RA3EBAqrRpB9hPDfv38hxRekPwPpB0O8Q0grCfKg+4bh+RA53SCbAUlkkIBmZmaGXFkKGZeHrECGVHiQ/hBkKB8ymwKZoIXkBLiB8EIKLkI5A1KgQAZCv3///ufPny9fvnBwcEDyDCQEIe6HxCiyj/DbDslXkIk0SCsEUlZCMg9EFmICPG7gFkEarZD2FKR3DsmfkPMWIHPYkIISUntBxhIh84WQ0RiIyRASYiyETTwJ2egCKfggt75DjqL9/v07Dw+PoKAgfHYKsqYX0tKEjGRCphshrXVcNkL6MZC6ATJGBxn5hOxbffDgAcTjEhISwsLCkHFpXEbhEYeHLZyBRzGkvIMEF5p6OBfOgJgDSRXIbEiIQUTgJCTZQLiQvhrEFkgUwxM2JFXARzUgspB6DlJDQCbAIIkBOdNBxksgoziQ7cKCgoIQiyBjuZDVBpC1Kt++ffvz5w8fHx8/Pz/kjAhIK+r379/v3r2DDKZBUj5kqBaSSSFLryGlCWS2Au5sSLjBfQdhUIuEtN0h7ocXx5D9UZAhAUizDyIC2U1HktXIhRikofPt27cPHz5AVoSxs7PLy8tDelfMzMyQmyIh1/hAlv9ABhggBT0kliGRCM/CzMzMX79+ffr0KQ8Pj7S0NOQONEgdDIlBiGvhxQKkLoEEKSR1QfIIZE4RUg1DVoZC2q/wBAlRDHEDAwMDJycnZGkLZEQE0s6D9DogNg4SEpIRII6HOAkiAilPICUzpOkDWfoOCViISmQAL10hk8EfPnxgZGTk5+fn5uaGzONAhqYh7U64FcgmUJf9//9/yKE6oqKibGxsEDfw8PBAyj3i7cLlX4gXWODZG1JMQNINpIBAswOiAXIlC6RogBwvB0lwkBXUkECHFAeQeVnIVUWQfhjEcEiCQ44wNItI4kLyAMQ0yEjX58+f//79C1nwAvEdZCAOkgkh3oSncohdEO0QNhoJyZ+QqxogY62QzMPFxQUPWYh2SPhATIYU4hCfQgoFSO8EUjhCWu6QcQhI6EGqYUhnHVJUQcQhJkNINIcRyYWU+JB7V969e/fy5UvItJa4uDhkpyNkLR4kWiEdJshyHk5OTsidx5AloJASB6ulkHoaMj0B2X/MwsICOYL/+fPn379/5+LiUldX5+bmhngKqyF4/AgJWEhgQpIQnMRqFFb18CSNZg5EMcQcrG6ARCVEO6TGghTQEMXw6IaYA+FCcgGkGoZ0guHmQw7f//r168OHDyEteshxlQICApBFSZC0+ufPn7dv30JW1QoICEAGluGGQy5AhJxHBtngBGn0QBYqQpqk379/Z2EB3SYOWTEEScaQsgOSBSDrKyHDMJBeF8SRyGEL8SNcnBLGjx8/IDZCRuwh2ZaJiQmy+ACyWQjeaICsCYcEKdxSiGPQBOGykMwIafGAp19ZIfnu6dOn79694+PjU1ZWhp+V+OPHj3///kFurIH0NSG1OKQdDAkBSIhB4v3fv3+QLY6QHWKQNXSQ3jzEI/BGBpoj4VzIMABkJgKyIx/SCoenRrhH0Dz44cOH9+/fQxrNkPIWUtOjKYNrpzWDeHshyRVSOEDaPZCuLWTHETc3N1anQnRBuj2QGgQ+UAfpB0PmUCD7tfCUJ1gNJ0MQ0u6B126QvA9pyZFhGi4toOkJSLxCLIAkPkiqguiBhAsk9CEnyENWOvz48YONjY2TkxNZy79//378+AFJbZDhCIgySBsQkr4hKRuSQCFWUEJCyjVI/vn58+fXr18ZGBggm/kgI06QhA7xBcQiiF8gbIiTIMUrXASZAdEImTSF1DSQJgjEF3DtaGZCTICsk4QMGEB6pZBeJiSoIV0fyMwfPApA8QFe6glJYRCVyCRWiyDWYSUhq+c+f/787du3N2/efPz4kY2NjZeXV1RUFOIRyFYuyBQUpKyBlIaQqXTICAdWk+GCkBIQwoX0GCBrGSCxwMjIKCUlxcfHx8XFBdkkDVFJPAmJQUhQE+N9XOqxiuNPh2h1MKR+hWiBmwb3CEQc0umB1AeQaRpIyx0iC2mmvHz58s2bN8LCwoKCgpAxWMgVs/DQZmVl/f79+7NnzwQEBCQkJPj5+SETFpC89ufPH8iAM0Q7pN0G6clB1hnx8vJC7rDi5uaGrKmGTCpDWpOQqWhISoMkb4jbIB6Bs+EMiDiFJMTlkJQMiUQICcm5kFoQkg0h9SIkRyBbit89kKYtxEyILZDj5yBX90C2TcM9CzmoBFJDQNIVpPUDb45ATIBEMaQZCplol5CQYGBg4OHhgUwQQIo4iKVwcyC5Hp4pIFzIFANk5BkyRQpppUGsgLefkNMbpISBHKoDOXgOsuoF0pSHtKiQw2fA2ZBAgzgbkv4hAQ4ZD4PUwZC1R5DCDauDIbNXv3///vDhA2RdOmTXxqdPnyDLbCEpGdL6wZ8ksJpPquD//6A7oCAHzUIWBJBXB8MTCVYHgPYNQ1rHyCkAMmGJVcOXL18EBAQgJ9xCWpSQSxIheyEg81JfvnyBtB+5uLggbLhRkIDD7ya4YmIYkFLm06dPkCVjDAwM/Pz8IiIikFQOycyQnABpYcFFIG6AJB2Iq7BaBw8cSPhAllNBilo8uiBpEV4yQs6KgowcQmojSAb+9+/fp0+fICfCQ8opyGgVZDgBkrEh4ljdRozg379/37x58/z5c8hldpycnBISEpKSkpDMzMDA8OXLlzdv3nz58gVyQAekzoBMREHCDdIIxWXXr1+/IK17ZmZmDg4OSCMMsrZISkpKSUnp3bt30tLSP3/+hBdMuIzCIw4vrfCoQZbCpR6XOLJeZDZcPZyBFh2QggaSNiDFK6TqhUQ9JI3BC/e/f/9CZuWfP38uBgaQ5UIQZZDmGqSjBjnKQxwM+Pn5P378CL+HClKQQY4/ExAQgFRj8KoCco8eZNkdHx8fZAQC0rmE5FPIGSCQwyYhjoS0LSBugPsdf9qGKyOeAVnUCml6QhI2JCdCBqghXWTIsSGQTjNcJcQKiHsgJEQEjYRHAWSjxPfv3x8/fvzw4cP379/z8/Orq6urqalBmumQcoCfnx/StoYPkkFshKRSSLEAcRWkWXD//n0pKSnIcnRIPwQy7wbpE0Nsh+R6SFsK4ju4CLw7KCwsDBkMhwwvQSIOsgAFzUcQLiTe//37BxlWhJQbEL0QBYOEhIcYxD3wfAFZGvLp0yfI/V2QrhEkkCEq0QCkwfHjx4/3799Drn7h4OD49esXfMMepIBCnmFBM4G6XEiPArIOg5GRUUxMjJmZGZKhSLIILX/B9UKSNOikfogKSLqB5EyIJyG54ufPn/ABekhH6uvXr/CpEXjahQy+Qa4HgCQ+yBIGSHKHNNIho3CQHYSQ5gzEaggJcRCEhLsSzoAM2EIarZCKAdJ2hqwUhcxYs7CwiIiI8PDwQFYmwxVDChrkuId0IJANh5ShEC2QWhZ50S8rKytkEQ2kBIG0OSC9SUhehSQ7yMIrSFaBHP/58eNHyAUskpKSkMspITsQICccQca4IF4QEBCAtHYhDcnv379/+vTp58+fvLy8goKCkKFjeG6HuxzOgIQhnIvMgJTv8BOaIBMEkAPRILvOGBgYuLm5IatOIP0SePhAMjwew3l4eN6+fcvFxQUJk9evX8vJyfHy8l67du3///+SkpLy8vKQUQRI2oU0a5CdB2HjsgKeHuAMiHoICQl2iF4IG5KMIdEEJyEJEqKFPBIe8pBUBLELkq4gNTREBDLPBxGHNGIYGRkh48OQq3X+/PnDy8srKSkJD2dIOoEMGnFycn769Only5d///4VFBSUl5eHlPiQkoiFhQVym+Hv37+FhYX5+fk/f/7Mw8MDKbmeP3/OyckJWVmtpKQkICDAxMQEt/rPnz+QKUZIMoZsOIa4E2uAQIIUWQFcBFLgQqpPSKRARCBsXPELyRTIMQJRCQlPZDdAxOHWQaQgwYusHSKOTELKK0gp+f79e8gp1lpaWqKiouLi4j9+/PgKBiwsLPz8/PDyBGICZCQfMnMPkYIUAhwcHP///3/79i3kYC9+fn7IKDokX8CzErIvIB0ASOkBGUH9/fs35IQAPj4+ERERiI3wHiFEPcRquN8h3od0vyBDiZBFJJDkjTxaCTGNbBKyFQriGEg8QjILxAHEGwtRDzcBkhj+//8PKWHevn37/v17AQEBFRUVSIqFKMA0H1IBvXnzBrIaDnLXCCsrK2QhCw8PD6SZC8k+kBiHGAJxAISEiJBEQrpzkFQNubsMcqQ5pM6CLB6EbBuBZApSLUJOIZgOA/WGIaKQFACxAzL9CanMICUypG6ANMog7UeIuZDECrklHpKeGBkZIfOmkH0skPktyK47yPQ7JMohI0IQz0BIiDNwkZB8CIlmSBRCLiuEBA3ksmX4Nelwv2CaBrELmYSrgZehyLZA+oVofSBIcQBpB0CMgoQbXCNkrhec66GD5JBWFWR/NiQNQbYu8PPzQ6pJyHmEkEIZcjoPpOUIaQVDEhwkLuAOJpIhJiYG6RVBdqZC5lo+f/4MGSeHLAOBBB3EYXBfEGM+5MIfTk7Op0+ffv78+cOHD5KSklxcXKKiopDpH4jLIcUWPKyIMZlINZDEADEZwiZGI6TuJEYlRA2meohdcHvhDIh6SLUNyUGQXhdkCRITExNk4RvkQAlIy4yFhQVye9KXL1+4uLggHWLIklpIXEDGlt6+ffvw4cPnz59zcHBANgTz8PBA1kt++fLl3r17kHvjIVKQUhvSuPz9G3SlK2TsCuI8ykmI9+EZgXIDKTQBsmwNkoUhQSciIiIhIfHv3z8+Pj7IUc9///6F5ClIZYbVRsimL8i6LcjKamZmZgEBgU+fPkGG8SHlHiS6sZoAEeTl5YVP60KuRREQEIC0gSAK0EhItwRiODybQ3os8KIPIgvnoplAHheybAriHXi/Ah655JkJ1wXJNZDN4oyMjJC9YZCUCVeDBiB+hF9tAlkZB1lfAok1uFMhzQVqOfXnz5+QXSGQi1IgQxqQJRrMzMyQ3YDw1RsQR6K5nBIuqBqGBBY8diEVz5cvXyBFAGR5MLyagWwahrgDUjdDptw/fPgAufSUEwwgQQbpVUMMhHQ0IYEIsQuShyEFFiRMCfoEYiPEKMiUA+T4C25ubkjLFG2bJkEDIUZBlEFcBXEtpEUMb4fCq2G4+yFZBaIFHjiQdgZk6u4bGEDuwIHM/EGGUyB5EjKQ++PHD0iXBeJsyNACpKkLOSkGeS0rxA0QB0AcTAwJuZ4WUrhDxo0hwxvwLSvg6OKE3GADb0ghJ278NkLMefPmzdWrVzk5OUVERAQFBX/+/AmZRYMECMSzkBYbssnEuJ94NUSaDEnt8LRH0HyC6iH2Qkh4YoakZ4heSLcY4n3Icgpubm7IRgNI2x/S9nr37t2LFy+kpaUhx5ZBrjKEtJkga7KePXv25s0bSEUOOdEe0niHaP/w4QMHB4eYmBgXFxdEFpIsIWOnkDPyIK0xiN8hHkd2MESESBLiXyIV00EZGxsbZMU15AD5v3//8vLyCgsLQ5ZVQg7rhbR0IRs3cKVqSJBCii/IIDZkNyYkJ0K6E5BCA9LEwWUO5CA5yK4HyGgT5BZRXEEB2acAKXIhJKRsgezbgdgCD3MIF5dRJIlDShuIfyHGQipjSGeJJKMgiiHOhqQxOBuyTATSQIQMPEDsgmhBBhCXQNYtsrGxQXoyf/78gVSEEF3w8IHUL8jaKWFDPA7JuZAxTsiVuPz8/Ly8vJAVMxAbyVjJj99hoPuG4b6CeBISdpBNNZDhX8h6BEjBAcnbkPIFksggi0cgK3IhQQypMCDtO8ioDmQKBJJwIT6ERDPE55DkBSEhbsB0NKSjBrcR0lr59+8f5PRNSEMGYiOExGUOxGSIXfAQhxxnAXE8pI8L6cNBdr5CwgeuBaILwkV2P6SchRxBBdlMArmVAVLPQcYGvn79+vHjRyYmJsjVpJCohYzw/////927d5BBSwEBAcg9mpBsD/ELJMwh7ieehCyFhfQDIK0KyHA3JDwhh9FA1pNDmlaQbAAxH2IvhI2L5OPjg5x4/BN8nqKoqKiQkNDbt28ha7MhhyNC9EJCDMKmFgkJE7jJeBwMUQNRANEFKSnwuwSXeogJEDPR0gNEC8RwyNgvJF1Bym5IZoEcUQmZdIQM6nz69AlyOjEXFxcHBwfkbEtIbwxiF+Tcb1ZWVklJSWlpacjpoZA1B5ABJ35+fsjoKySWIe1IyKggZP4e0oCGuxnucbiD4SJEMiBGIZMQX2PVTrYtWE3DFIRsxIKXWhDrICuxIcesQk7egDQ34SPkmOZA9i/A8/WnT59+/PjBAwbw9ZWQ5jL+FgzkhFrIBmjIknXIbj3k/IVsO9xG5JE8yJwxvMUPVw/JqnAuJQy4vZBiH2I7pAAnw1hIsMM1QhagQGIBcsIMZJwVMhQKV4YMICuTIcvIISUqZBACsmsDktfg3kezDtkcUtmQeR9IwoC0fSFHYkC2vEJWAECaaJBOBanm41cPnRuGJClIfEMW+kMWdEDWakF2sEDmX+EhCBlqg6wA/P37Ny8vL2TNJ+RkOHjjDhJwkKoRUh79+PEDMm0DiSR4DwxPHoZLQbYkQVbQQYZYIQNQkEYKvNSDFA1YfY4pBUl/kEEnyEISyLwOKysrZNUScmRDykSIpyAtEkiShWzNhBxe/+XLF8hCGD4+PkjZB295fAEDNjY2yIIFyAYhiAO+f//+8eNHyLA/JAwhqQ2zuYrVX7gE2dnZIZtEIeecQBaOQta3Q+pgSFMA4gZ4OEO4yB7HZf7Pnz/Z2dklJSUhp0bfv38fsgwVEiMQL0BqIEhwEWMmLrvwiGNGK1bF8OiDM7AqgwvClcEZcCkIA24vVgUQQUgKgfSJ4fkCUvxBZujfvXv39etXSF9WVFQUEnTfv3///fs3pDMEmWBjYmKCLD+ETBhDchP4cqaPzMzM4BPBQQdmQQovyMwR5GomBgYGAQEByK5HXNUAxDvEk5C2KfHqaa0SsrkFMoYH2dgDWYYGyZiQLAAp0CGpEZ4y0RwGmT2BtG8gw6eQFA4vA4lMwJA7dCFDEZBRKEiuR7MOzoUU7pDREchaCkjigfQH4MogORQihSxINhtiFGSUEbI2BWIUvNMF4RJDQioReNkIyRqQbhhkXBpy6QikgYjLQPiV58zMzPADWCCBDzEZnvDg1uEyiiRxyI4byIbsr1+/Qs6ng9Ro8OETSJ6FFOYkGU5QMehYbUhKhVQJ8JUCkDVB8DoSUkPDdwVAqmpIdQWJPEFBQch2PcgqX0hiheyWgXeCIYb8/Pnz8+fPkOY8xGPEBChkGz4ks0Gu+YTsZ4cU7mj+hFiEJojMhSQRSLxCmgiQ3ifkzARIBwWyoBFyjAakkQhPARAuxEBIjQVJPZCJOsgsIGTjMrwzCpGCTPJBbrOBlMvMzMxfvnyB7EuDrMiADFNDtntCOv3Iy6fhLofYTpCEjDpA6mDILQ6QzhZkNRmk0IF4AW4UhAshIdkeLoXJ+P79OwcHBxcXl5iY2IcPH969e/fhwwdRUVHIXAak0If0HrDGFKaBpIpAAgSS3iBlClYT4FLIDKwq4YJoZkIsgstCuHA1kICCcJHZkBYVpGqEpHNInvr27RukdwXZgAHZFwEZtYMkFUgEQY7jfvDgAeROPchgAwcHB6TbB5k7hIy18vHxQUYgILZDsiGkPw1JyZB+BjzG4R6BuBniHbggQQZcPZwB0YLGhQhCMhqcTQsGpNkBGdaCTFRBsh6kTwPZVw3PU3gcwMTE9Pv37/fv3//58weST7m5uSHxAg86SDkAGTbD5V+IOCT24fNckAYWVtshpRDk4iZIQxbSJ4PYBWk0QGIK3qrDag6pgpBRBMicOuTkJUoiC+JCiBsgIQBZ0QYpEpFLe+QiFBlARhMhboCccAAZoIZnW+SggBQvyNrJZkMGS1hYWL5///7q1au3b9/y8PBA9rlBHANJYJBZNsh6ZLLtwtQIqoYhi+khFytBJikhIQjZOQAZB//z5w+kNoVkbMggM6Rdw8PDAznZBNJMgMQEpCKETBtDki+kboM0OiBewuwNY7oPLvLlyxfIrkfIDTOQu9sg42+QRiskjiF9R7guTAakdQnxIKQihFQSkKPhIYkDMs0MGUaGxAHEUxBdEDMhmRBiGmQLxHcwgBzdBV8WCxkzh6zMgtTxkKODIQ1DyCwyZECSg4MDMqIAKUwhAQ6xC1IjItsOESeGhIwWQJo+kGQNmWKATFTDlx1CRr8htQWku4DpZazWCQgIQLoawsLC4uLi79+/h0yEQzbSoEUHxEys5lAoCA8cPFbAczKcgd9SuDI4A1M93F5IOoFzITUuXD2EC0+oEEdCVscwMzNDcjukyP769Sskd0DmpRgYGN69e/fmzRtmZmZBQUEBAQHIidOQdhtkAQGknoC0IyGlNiRZfvv2DTIqA9n0AqmKIE6C+wjiEoggSSTcpyTpop1iyPpnBgaGz58/Q9a1Qta+QvYxMjMzQ+atIH0GyKYvrI6BlACQQT52dnbIWKiwsDBaBoGUb5BoxWoOZKYAfmIU5AhbyDYzrOohzWXIcm6IsfA4ghS8kEIAkswgVRFWc0gVhFyICZlShJRakJ4YqebA1UMcD+FCUiOkOIWEGMTl+BMPJI4g/uXk5IQsv4WED8RASCBAmvVkJ2CIC+EkpIMEWdP+6dMnyJYfSDMXUtlD3AN3AFwjVRigahhyVQukNwzpgEM6T5AODaQRDV/o++HDB8icFmQVKOSsJXZ2dsi6X8hcIORMHEiPGTI0BKlvINsnID6EdAIgPQN4rOAJU8g57JDzH+Dj9fDRG0joQGIaHl5YAwhSMUBshNQ6EJKPjw8yEgU/kRGSmSFRjukwSLBAUgykGoaMDXBzc/Pw8PDy8kJW2X3+/BlyPh8vLy/kfjfIanhItvz79y/kvD3I5i7IcAKkhoasqYFkCciQESQFY/UUHkHIgMT79+8hVy1JSEhAjiyGtK4gh2dB9lBBTtaFhB6EhBgLCVvMEIDIQo4HgoQG5PQPiI3IzRpIC4kSX0DsopyEF21EGkWSeohiSNKCJBv4sQyQkhTSlIakE05Ozu/fv//69Qse9ZABScjhM//+/Xv+/PmDBw8gjWPIanlIlQCJMsjKI8iyXk5OTj4+PkhPC1JkQK7l+Pbt29+/f4WEhNjZ2SGHJ3Bzc0Nmv4j0/hBSBhkhExISgiRsSDMd0qCEzKxBCiLIKAIkqWP1HWTtOuQEbMguDMiMG6QagJQVkN4thI0rV0LSPyTXQBr6zMzMeMalIS0DSBKCrMiBjMNBUg6kHIAkKrgarO4nVRByiQtk+gOywR2yRQeSkEg1DeJfSE0MyQiQGgHSaYFUnHA2VsMhnR9IicHBwcHHx8fJyQlJyZBZGIj3IVZAih2s5pAqCJkUgOz1YGRkFBcX5+Xl/fXrF2R2H1KXwStEyEALqVbgUc94586dz58/Q+ZUeHh44AvSIIt6IFECGTCBTAa/efMGMnYBWXkE6Y9CFEB6upDRY0jqhJx5y87O/vHjx1evXkGO74HUc7y8vJB4gpTOkPiDpD9IrxqyPIGRkREyUg85bQpiKaQmg2cGXN6DpAAWFtAtUpDZaF5e3s+fP0PutIe0dF6/fv3hwwfITSmQozkgbQh4PQTJDJCWBzwjQYo5yEA0ZA4PkntZWVkhFTBk4AhyVdH///+5uLgg24Ihlv779w9yxzNkKgJiLKTHDAk3XD6ChA9kBAmSXuEhj9wEgaRRSPUJOb7j40fQ9CHkaFbI4ASkm/Xnzx8RERGI2yAjLXAHQGIEQkLyP6QzB48vSAEBj0SISni4wc3B4xdKpCDWYZqA7B6IGoiTSHUPpFeEaT5cBG44XATCwCoOcQNcCh6GEFsghQ4kPUNaw69evbp3797///+lpKSYmZkhu7Ehd6xCql5IaxI50iFj0RDvMzAwvH//HrJpFbIWD+I2SBEGYdOIhPgRj+EQBRASjzJcUrg0QkpkSMqHrF+BDL9Bjsfh5eWFtG4hOQ5SVUOMgpCQcINkGcjCT8hxN5CpJUg4Q5wEiUpIjQLZBwVZTwQptSA1LrJ6iC44CdcOiXRIzoK04798+fLx40dIrS8sLAyfXYbrRWZAnI0sAmFDPAJhI5OQyg/eVoN0AyD7KiGHCP358wdywjxkMAbS7EA2AcKGmA+3HRJiEL9D2BAFEH/BSYheZBKSFCFjfqysrJBeHA8PD+QSyW/fvkGuc4ZcvA2pjJC1w9lEWgdXj4sBaZl9//4dsnoGsu0WMkKJVQsk52KVwioIDzGssqAlWpDBZ0hbA15aQbZ1Q1aUQNaJffnyBVJhQ8Zn4EPKkBQJX0sCCXpI1QLZfgdZCQw5pB5SB0Bqd3gIwuMPsvUCUnBAKjl4NxoyecbLywtpnkAKMqxegghCvA2pDiEVBiStQBwAkYWM3UHOSIMs34Coh5gAISGdSEidB6n/IIdhQY7thCykhCwFhCwZgxziA5mdgpx2AjmeDZ4zIVMAkPlgyIpZSGcU4khImECcB3EAGgkZ54e7E6ISkscgbEhxDNEFGbGA7JSA7LuAFByQTR2QcRjIWCikgodMR0H0YpKQMg4Sv5DSBG4jnIFsO6YJ9BRBDkkImxa2Q0oTTJPh4hAG3AGQgILkNUh4QvIzJD1DZkkg23wh02nc3NyQM6UhGQqSDiGGQFpgkCoHEuwQWyAjNJDkBE8ncAUQvZgOHgYiEO9D8gJkhO/Hjx/wgVbkEICEOS4vQzY4QEyDlHWQ1A4vppA1QsIfUk5CSkKIRlzVGLJeSFxAetWQXimkyc7DwwPpb0FSCLIWstmQsg7iWkg5Bu8SQLrakGtJIcUUHsdD0jPEGfBggZQeEO9ABOFseIUC0QInIcM5kF4mPMB//fr17t07iFMhvTVI2xTibLheWjAgXoaU7ZCkAtmiRgu7MM1kgSz/gSzIgqQ5SEBD/A9hw1MtvJiG1NzwIIaPtkE25EDu2IF0rCFzkJCAhlzsBRn6gJTmEBKScCGOg9TBv3//hpwfBlkjDimD4J11SN8U0pyEuw2iHU5CCiCI+yG1DoSEDD5AGrCQKW3IwYEQVyEXcxBXQdRDIgaSwyHF3Pfv3yE9WkgXHzIIBlleDplYgsxqQLY8QQbHIIUsZM4PciYwpP8NaX5C+pqQAIH7AisD4jXItC5klB4yJgF3JMTl8JwAGTyAeA3S2IQMbEIu54GMnkGayRCNWC2FSMHzGLzagKcBuO1YtQ+gIMTlVHcAJGlBfA0JaogVuMThshAGpCUKYUMqVHhBAGFABqIhBRxkzBliMkQWohFiL8SDkEoCkiogU33wLIysAKJx+JHwoICEEjx9Qqo0iCCkxIBkRlwhABmEg5SEkMCHGAUJXmRdcHFIPQoxHDk7ICuGsyFxAclHEEGIdsiiMHZ2dl4wgHTuIQ6AKKOQhJRvkP1C8F1zkEQIsRRSaENWqEHaE1hthIQzXAruEYjHIVyIGswQg+uC9Ig4ODiYmZkhZRHkqoafP39+/PgRcislZBclxBCIs5G1U50NyVaQoy8gA6KQvW1UtwirgaDeMKSmhAw1Q1pDDAwMP3/+hAyTQqpDyLpNfn5+yM4KHh4eiC6I6yHVMKR2hGzagU8ZKigoQK5shJ+EAulGQxIxpBKFRBukMOLk5ITXwV+/fmVhYYFsOIPMm0LGvSGWQsyBmIDpN3gDCrLVGHKBAaQB+PfvXwEBAUiVCWmUQQb6INUbPCVBUgAXFxfEX/CpYkgi/vjxI2TOiYeHB7KQEnJiMKQZ/u3bN0hvBp6YIIvaIIEDWQkJWQ0PmSOHWA2pgyEOgCRrTH9BzoyETBBANuxCmjiQQQK4ORCNkP0SDAwMkMYEvCP+69cvfn5+Pj4+yHp1yBoryDgVpJiAaMckIXEEEYe4E8KGhBWkToKQuOIFop7WJLzYhVgESWAQNpEk/nCAGAixBeJfiLFYxSHKMA2EFNyQ8hEemJBwg0wDQ0yDLFmAdI/gY9FoEQ0Pf3g1DFmhCukTQ9IVxIXDlYSEGySQ4X0aVlZWyIYZSEjCByHgoY0ZGvAQhkyOwospyKARZvqHhDykPoPsa4CHOabhkKQCcQxEFuISSAMdMokGWdYOn8OGKCOeRDYcWRekPIGsP4B0SCDj55DlNZDDxSBpDE8djJaQIH6H2AgPGUgPHiIF6bcgOwPOhgQspNKBjIp/+/YN4hjIzW/w2UBIrME10ogB6YdA1ipBejUQNqSuoZGlcGNBS7Tg/TBIVEHkIEsxIZddQ6ZCIT1IyK2xkDoYEvSQpA+RhWQAyCpZSP0HWZACP9obohgSc/CogghCkgh4ufF3yLpoyGg2pBqGjJxAMhukDILUMRC9EDcjk5CRDYgVkDYOxHeQo3Yg10ZCpgG4ubkhRSFEMcRtEKMYGRkhy1khXAgbMgQN2W4LGXbm4uKCTPdCLjKCrIeEj4ZBWjaQshjifsiiTciKZeRohudJZDdArEYmIePekO44ZCUXpM2BFhRohkDSPWSYGnKwHGRXNORUL0gagIw9INsFZ0PcDzETHlAQB8PVQBhozoAIDhQJdwzE5dRyBiQ0MEtVPOJwqyFOggcdhAvXCBnehKR8SIkGmS6Bq4dYCo8CSLUBMQSy8xCSxuBdYbi9w5sBKR8goQQJHMigIkQcEibwdg+k2sMaIJDcCglVSK0DLxwgxR2ECylMII0eyCAfpLiDdKYh0YHVfEj0IUtBFHNzc0PWSUEcDCkW4KOPyOrJZkO63ZB1RpDRYEhhyMbGBjl+GOJ3SChBQgzTLkjIQEIY4nK0nAURhGhEk4IIQkjI7BhkPPLnz5+QrfPggQBeyAk2kGXCEOsgoQ3RSCMSUqfASYjLcQUC1d0AaonAmz+QRAxxAScnJ2RtFKQOhuxKhBwqBg9oSDsFEiWQag8yoA9pBH39+vXz58/v3r2D9JUhDS4IG1K+QCyCdGrhVr979w7SEoREBqQTDMk2EPXwUgly6jdkOB0zXCALjiC1C2T3N8RSSDUPaWRA+qyQYXBIUxReGsINhJyzwcLC8vXr17dv337//p2Xl1dISEhERASSXiEnMEDOJIEcUMXDwyMgIMDHxwfpuUKOe4QMLUDyMKSRDlkbCbcI4jsIFx7CEC4yCWnJQnZDQrq5kOIG0niHFBzI6iEdfUgcsbCwcHFxQRoQkPNRIeEAj0dILCBrh7MhUpAwhJgGF4GrgTOQ/QIXpDMDEoYQl2BGK0HHQLRjVYZmJlwlVnGIIMQcuErIoBxEEFL2QQIWEqEQLfBCE15gwdMbJJbhyiBRDylYIbU4JIohZQqyYoiNw5KEBA6khwep6iC9UkgqhQcCpFjHEwKQmg8eHRAGpLMLMQpSXkHKMUjVC1lnBCmjIFkDshkXjy0QKYhiiNv4+Pggo2uQAT9IQQFRRhIJSRVYtUCaERD3Q1Id5IgCSGMCogU5iUJE0EiI+RBlEDYkWCBhDiEhIpA6DFcNCqllISt+IONwkDU0kAIKPnEAiURI0wTNJdTlwt0J8RTEcIKpBaKMchJUDUNSA7y3BOFCJiwhPTbIngrIeitIiQZxH0QlJMggQ2eQphbk6CjI8r+/f/9CKlRIrQM5mgCiAOJhSGxBFmRBZlUhA+CQ6/8gaRRSbEFyGsQ6SPaAjB5gDQVIQoGkPMjQByRG2djY4IezQFoGHBwckB4hJIEimwZPJZDzqyEaIaPZkIOo/v//Dzmo6Nu3b5AdupAGHeQMUrinfv/+zcfHB+mUw3uckN4/snWQRAxxOZo4nAuZmYaMeEMGtCGHYUEUQIIUEjgQ0yC7JyGNDMiKMMjIPKQDDWl0Q4IX4n08G1oguQsSC5CMAUkzEKvhMQW3HS4+gAz8gUmewyBZABK8kACHmINVHJcDMMUhwQspDiB1KiR2IAcaQJZHQHbdwK2DVAaQ6hZSJUDWlELyF8QKiLEQEmI4RPswIyEeRPMyvJiCeBZS1EAiDiKClUQzCqIGUpJAyhBIrv/y5QvkVADIpBXkqCxI6xaiBQ8JcSdydEDKE8gYBmRKGBK5eAwhVQq5uIZMsUFWjEPmsyB3Y0DSEmQdCR7zIcke0vKAtBfhS9AhXoDkBYgyrOZALILsWoYsioYctw5ZDgzp1EGKGkiBj9UQKgpC2iVwB0MiiIrm4zcKVA1DUgOkSIW0whgZGb98+QKZl4WUBfBwgSiDpG9IMxwyIwJJNBDFkOQOKUoguyYgM/CQyysg6RXiLEjihsyYQkZ0ISUIZIIE0giFNAggmQdyXCVkHB/Sp4TUoBDTkElIrQ+ZQ4Woh0Q8IyPj58+f4aUVZOro48ePkAvSIREPjwxI1fLp06evX7/++fOHhYUFcj0OpBUJ6XNAbhf/+fMnxBZxcXHI+g5I9QxJZxDr4KtFIPPEkJCEBD7EdxASkgIgIYnsIwgbUhBAKmBIXx8yYADvB0ACH2IUpH6FWAfPHpDhBEg9ChkIgcQUPJwhFuEhIfkZbgKySkgdDCGRxYcZG1LKYHoKlzimSni8Qwp9OAk50xiybQlSGkKWWXz69AmygwWSQSAlNSQKIMkV0qeB7O+HDMPALYUYTrzb4BqHEAPSJYWEKiRAIKkUwoYEFKS0gaR5SC7D9CCkcQwPK3gmhSRpiK4/f/5Abun+9OmTgIAApD5mY2MTFhaGDM7B8yCm+XARiPMgjoGQkD4PpJ0NcQCkboNroYQBL9ngm5Qgi3Mhtx79BgNIhQrpjuPq4cCdDVEMKVsgy2IgC04hm60hEQE5yg2rsyHlGKTuhyyvgXgWknTh3QZ4tYLLPVgNJ0MQEuCQnAKvKSDlJxmmkaqFhZOTE3LnnZiY2JMnTyApFTLiCqmSIdPAEPfBC3eIQyE5H9IDhsy2QiIJUoVwcnKKi4vDJyMhXUNIwwdyGh+kk/r379+PHz9CbvSErIWG7yCCpE5IAEGqVYgzIHEMSa+QQWOISyADsJDreyGHk0GGOyDHV0F0MTAwQC4+ExER+f///6tXr/78+QM5Cgqy7gzieMi+JsjUOOQ0Isidl5D2AWTkCpInIRX59+/fIZdCQyo5BgYGyIE48GIREqOQNQjwZZDwNREQfyFHHsRwZBEIG3LgJaSBAo8OSFBAUjakxIGUPpC5bUinH1I0wJ0H8SbETEhEQFqdyPZCDIG4DTJ0D1EPaQVD2JCAgrRX4CQyA6IMk4RYBCGJUY9mAlwjmjjEm2iCyFyIRgiJLI7GxmUOLo2QsEIzBJkLUQAhIRGHzIYbCwlPSKMKEvKQ/MXExARZmQ+ZyePi4oIEGiRfQA6dZmRkhGxPgFzvDdcOyZXIjhlANsSnEBKPMyDlL6RpCxm5gZyHxcnJ+e7dux8/fvDy8kIyMqSChBgFD1JI4EBKMMicC6T8gZyl8+3bN8i4MWQtC6S2gJwJCMmhEO2Qtg6EDdmCCL+pCXKewb1798zMzCBZGzJyBlkRAh/xgrgKmYTHLCQNQGpHyKkDkOFDiGKIRyBdNIgIkSQk3UJiHBLIEKPY2Nggey9//Pjx8OFDDg4OcXHxr1+/CgoKQpapCggIQHwKqQLwWAdvHUIKnA8fPrx9+5aVlRWyehdy0TXEm5AeAqSLAqme4fst//79+/Xr1/fv38OvcIbcpwSJMnhZDedCfIHpKlzikDQDzwIQjZBwhoxhsLKyQhwGqeAg5SEk3CAlIUQLrUlIHIGmPCEdwffv33/+/FlEROT3799PnjyRlJTE4wLICBjkYlTI6YyQIVl4qoIkfUh1BVmxBelKQiqJr1+/cnNzQ8oOSFcYMuYGmRiAdPUgaQISjpDQQQtxiAcgnTxI4oM0XSHNNEhPEdLDgwzhQqouVlZWfn7+X79+Qe705eTkhGyo5eTkhHS1IUkfsmwP0nWGbAqCjJlAFtlDykRIuQBZ8MzHxweZjYa0ML58+QJflQbJ+ZDD7SBuRvMInnDGJQUJZ0hOhqiBFN+QLAQ3H1I0QKbqIeULJFggYxsQjVhJuAlYZUcFCYYApO2IqQwuDiloIMkbEtrwNAzRBUkqEPWQFh7kbIFPnz59/PiRi4uLj48PcmEiJMFDaiNIgofUYRBzhhPJyMh4/fr1r19Bd3hDugqQMhQyn4LVp5BMDWnKQI66hDTcX716BVkfBGmDQjIUpIjAag6kjoTEFGTfgZSUFORoIMghD5AuHWTYD9Kxw2oOvCiDGIVVDSWCkHQFsQVShEJMg5c/kCY7JIV8//5dSEgIogDZPZC0BxFHIyFrUSF7KyDrXdjY2Pj4+CCjp5CtPvDmC+QcCMjQDiRskQsoyGA+ZF3h79+/0SyikAvJWciGQDwFuRYIIsvGxgZZQQw5bhNZMZ3ZLJDdQZC925AtpMzMzPz8/PCIRI5LSORBpP7+/Qu5zg++chgSxJCCHlINQ3wLISGj05CJVciF85CtUJAqATL9DDkvF9LIgtgLTxxwBnLdA1EDsRdiC2SEHDJmDhGBdOMgHWWISsgK4Y8fP0J6xpCKE3L/DKTz+u/fP0gPGLIGErLpCHJyCKThDGkuff369cuXLwJgADnOE9LsgPSDf/78CRk2h9TckIIAUqpCHAZJFqTGNyQcIJkNrhdSBCMXx3DDIa0KSBEPjxTIYhC4dqwMiEUQKbhpEO4oiScEIFEMSaVoYQjhwhVAuJA0DEkScBFIgENUQtiQFhVk3R9koxrk/Ft+fn7IzgrIlD8kYcDNwePOwS8FKWfg4QPhQjYOQebLIBkZ4llICsfqKUhHB7JF9dWrV0xMTEJCQpCj6SH1NySPII/xYJoDqV8hPWZIjPDy8rKzs7948YKHh0dQUBDSmYFUchADMQ2BDO9BHAyPXAgXq2LyBCHOgxgLJyF5H1Ij8vPzQ8YdISEDdwkkqCFcNKsh5kBmlCGl358/fz59+gRZEwPxF2R5P6QbCukxQ4IUMp4MuYwAEon//v17DwaQqRbIcSKQAxjwrE1BcxJ+LnJ6gAQIRP3fv38hi4F+/vwJ2SPz48cPSB8GomBASFBvGHLUM3yRMzc3N6RSQXY93HGQaU5I8wFyHwjk2gBBQUFIEoTrgkQ85PoXSCcY0vSAlBcfPnyATAZD7hOEHH8BqREhdkEiHmIapD8HKdogIhA1kAQBsRcyTg7ppkOshkzzQKZAIBUkZJAWIgK5yQviEcj6Uoj5kPiDtEh+//4NmdCFXIYD2SkE2ZMASXP//v2DdHYhpwczMDB8+PABogByQCYkc0KGfZCLSEhyhPuCeAakxoVrh4QSpMkPaWRApCAhBmnCQxoikPY+pLjHbx3ETEiehIQJfvWDShYtecDdBvcUXAQ/A5c5uHRB1ENsgRdkEEHkkIQrgJSAkOiAlFaQsRzIegu4LZA0w8DA8P37d8h4DORIy69fv0IGk75+/QrpGUNqBciyasi8DNwQZAbcSciCVGTjMh/icVItQjYNkqmFhYUhHTtIzoIPCMMDCtMKSJBC7tpjYmL68OHDt2/fBAQEIANp8PwCiQVkG5GNgk8kQc5UgB+fB76JmAcyYQ+paSBVHa7uHcQ6SLzD0wl5gYPsPDgbbjLcIxDDIfNrkK4/Ly9iUxCyRjgbrheedCFSkCQKucgVUl98/fr13bt3X758UVVVhZw0DFEJ8SZkVAAyGw3fxgk/KxTepYbcxAwJN2pVwxBfQ5wBcRKEhNxd9P79+y9fvoiJiUFqBMg5gxAFA0KyPHnyREJCQkRE5PPnz//+/YPcTPDu3TvI7mnk+IAkGnhDD7JlFtL2gSiD+xnSGYWU4JBOMGR5OmQnEmQU4vPnz5AGKeQ+KcgCOUgGg0Q2JDjgZkKqH4ggPHEgC0IqHsgJFZC6H1LSQapnSKxAGr+Q1Rzw2TXIQnlIB/HPnz/v37+HHCjKxcUFH2mBTOJCusiQlQj///8XEBCATMVBes+fP39mZmaGTJBAjl+A1PcQ10IGCSDOgPgCmQ0RIZ6EBwvEcAgJEYSEA2RtGoSEtHwhLSF4mOC3C5KZIWogkQthj5L4QwCSRyApHzl+McWRZSGdCcg8KDy04QyIjdzc3JDYhCiGlKR///59+fIlpIEFqVQgeQfSlIRoHKIkJHwggQBJjRBvQuatIGNLkHCGzI7j8jJkTheS5YWEhH7+/Pnp06e3b99C6mbIVC7EHEhRhsscyFokiK5fv359/Pjxy5cvDAwMysrKkKY8ZIgVMpcJiSOsIQ/xF8RGOBu5HMOqi3hBSIhBigKILkja+/r168uXL3/9+iUiIgK5tAAyJo/LvxC9cBLi1P///7958+bZs2dfv34VFxeXkZGBdJwgPUvIvlDIeCQkyiAdIcjgDRsbG+SebMjqNshh0ZycnJA1YhCVkIoZbiklDLQghbufkZHx27dvL1++fPfu3f///3l5eSEVBCV2Ua6X5fPnz+zs7MLCwpApekgdCRlSgJiO7B9IgxQyzQ7p1PLw8ECmoyBdMYgWSK0ASWqQKQFIhxUyc/Dp06f3799Drh5jY2OD9IMhswi/f//m5OSEGwUZnYaEICRhQRIZxHxIiQPJPJDaBbKR4OfPn5CVF5AsAWkmQwZsIfUrpDUAF2dkZIQkJsik/YcPHyDbNyHdXPiIys+fPyFXJEEGmSGVMWSs+8ePHx8/foRcPgHZPgTpakPcCRkzhKRLuF8gUhAuPNCIZ8A1whmQxARZ5QjZUQ3ZEwyJSngZDYlNeDDishHiWkgMElSMy5ABEaeWa3GZAw9wNN9BCjtIiEHUwE2Ac+EMzGIaEuAQBRCTkdkQ9ZBMBKmBIInq379/kpKSkC4OfLoEkh/RtEPMhDgPzqYFA+5rNMNxuQdNGTIXHqQQvZBqmJeXF1LQw/0CKRlwVSeQQgCy2pyRkfHHjx9vwEBBQQEysw4pQCD24jIEIgsJc0inDdJ/gtRk8KwHGbiGDIxBiheIRmQS3kVBFqQiG9JQgBcvkLIUMpYOcR4LCwtkqA+yGhmS8CDqkYMU4iRIyMPVQEZlIJN0DAwMr1+/hiy5VVJSglxvCkmokJIZYgLkgHTIGCpkXuDDhw/v37+HrN6CrBiFxCwjIyNkeQ1EI4UkJFXAUyPEC//+/fv8+TNk9ylkNhZS+0C6KBTaSIl2FkFBwW9gIC4uzs7O/vTpU8giJsjNaJDogZTdEGsg/oHEK2QqHpLtf/78CfE5RAs8RiHJDjIuAVmoBtmwBOklQyb54dEGDzWIXZB8CKlB4WkdYj5EC0QKMvQKiUvIQiR4uwySZyAjVxDXQtwD6TJCEhmk/IJs2oFsWYYYDmlHQ1pPkCkQyAJIiHWQ/jGkZISbCTmZHdLEhkhBPAIPNAgXTkI6QHAuMQxImEACAa4eIgjxFGQ8AHLgF6StA2n9QDwLiSMIG66dIANiPkFlI1wBPJTgDEiAwLlwBjz6INEBzyyQSRaILFwxJLLgjUtIRoA0l//+/Qu5uxCSYiEaITeF4K9RIA4b/CQ8ECBOhZx4DPEsPH9BMhe84QtRCSchiiGzj9++fXvz5g1kwTDkNiHIHjBIvwIS+LiqT3h3AjLyDFmnDZnugfQWIIEPcTCEhLsBmQGJF0gkIotTkQ3xMqSxAunEQ0pFCQkJSHUICStIqQVJexBXQbyAKwQg6ZCHh0dMTOz///9v37598+YNExOTqKiouLg4pI6HjCxCBvAhdQSkooUE0ZcvXyA3rkI6PJANn5BNLpBKBNKbokpQQHIWpEKBpBBIZQG5ultISAhyhSIHBwdkWJQqlpJtCIuYmNi/f//4+Pg+fvwIqT84ODggd48jJyZ4TQwZu4esXYKMkkGUQRRAvA13DaSBA1EMOb4KMo8lISHx5csXyPmXkHlNSB0J6bpBDIQbBRmvgLfy4IZDUhskV/z48QOy1hoyA8THxweZ6YHELqRJCGmpffv2DXKnMmT9NmTfwrdv3yAdfRYWFmFhYUiCg2y1gtw+9vnzZ0hPGnIUCWQtN6TmhtTWkPMsId1oSNcTYh2kBQDZcwxxOSR9QPI8xCKIOKkkRC88lCCn+UM2aEFOvYbsU4K0UiEJERLIkHCDayTGXkiMEKNyhKvBFVCY4pCViZDEACEhQQeZ9IGrh8QyJOIgZRkk00E6eZA1HJBuDWTWA5LUISohBg4PEuJfSHkC6ZVCCgRIfQYvQ7B6FrJWA5JnmZiYBAUFZWRkIPUTpC6HBCDcKKyGQKwAd1hAx8VDZugh18pB+lKQYgoyVgG5NQ+rOZDKDxKtJOVBrKZhCkJ2CkFGyCFrceCjYmJiYszMzJCLWSED6T9+/ICM50EqYEiVDCEhLoSII7P5+PggC85//vzJxcXFz88vKCgIKckhG2cgpR+kQmVmZoY0EyEu+fz5M6QDLSwszMHBISAgANnDAulBQYIRVyMA06f4RTDDFlLuffv2jZeXV0JCgpWVFXJHNSQS8ZtGa1lQrQMJa0jEcHJyQjYdwttHaP6BpH5I7QKpdSBOhBQf8MIFUhxAOpqfP3/++vXrhw8fIKPBkCs8IXPPEFsgVkDYkPwGWboGadBBRn4gJkPKF8iBjl++fIEkI0jKg0hBDquC1EmQGIW0GyDOhuQ3SKUIueTyw4cP379/h6zCl5aWFhQUhFTPkHseIdeeQA4IgxyPBWncsbGxQU7ngByHCWlSCQsLQ9ITJHAgaRdCQqavIAEFEYGkdYirIOJoJFwZmvivX78g+yUg7R5I2oUsMYOMyX8EAyYmJshFwpBohZgG6S5D2geQMIdEPZyExBekVkAmIdrRXALhoknBjYXIEiTRtBNUT7YCXEFNqgPQ1BP0L0Q9JGFA2PCsAQ92SFRCvAY3EBL+EEFIioI03SBDShCj4NUz/Hx1yOqHnz9/QrazQ5IZhISYDMllEDbccDQuXJwMBtxhaHrh4Q9RACEhDoN0NCHn8EDSNmRpD6THD+nEQEIDMgQFDzd4sEDMQbMRwoVo+ffv39u3b3/9+iUqKiotLQ2pHuDaIQUFJGQgdTY8p0BMhiyx/Pbt25cvXyBlN3KjB1L+IGcrSKcQMkMEH0J7//79q1ev2NnZITdXQu5eg5RIbGxskGIK4mZkEh5QyIJ42JA9L3/+/IH0HPj5+f/+/QuZBIScDAOvdyFtBYj5kBCAGwtJkJCbjyHFLC8vL+SoDchWTEgnCjKViXzgBiS0IYEGKZog+26+ffsG2Rb8+/dvcXFxyKAjpCiD2AUZr0ZzBtw9ZDAgFTxkYSNkxhOySecrGAgICIiLi3/8+BHS1/r27RukxsG0CJ41IAEFITGVwUUIKoCrRGaAxuUhNsEb4MjSxLMhtSBkhAFy58/fv39//Pjx4cMHSBkBWb0JGQ+BVGy4DEcupyDlFwMDA6R9ABn6hqxShiy1kJSUhGRdSOcPkj3gJmMGCmSpC2Qv/+fPnz99+gRZFwZZ6whZkQ+v5j99+vTu3TseHh74IAZkduTt27eQYXbIIA+kbqZiGoK7H5MBGQeD9PUhpTAk0f/79+/jx4+Qtg43NzfkAiVIHYxpCB4RSGKAmAln41E/KoU1BJBzE6QKgQQppNCBsOEkVhOwCsKNRWagqYSkechmd0h2gMQjZEQE7hiILogUhE1TEuIqCIlcj0LKYsjkEWRECrLZgZWV9fv375Db9yBNCkiehVfnRLoWsurn/fv3T58+/fPnj5iYGKS5jEs7PMTgFkGiDLKtA1KIcYMBpPUA6X7AowPuNcg2GEhJBbldFFKrQSby4eoh4Q8PFlyuIl4c0jGFVIGQghTSeoDs9YBPhEM8hcdYyHEcX758gazbZWVlfQcGkMEYyHor+Ejbnz9/IGtoIGkM2VjI6CPEmzw8PHJycqKiopBiHDL8AA8xMrIDskVobEhPDFJ9QBpYkEBWUFC4BQb///+H7LxH7iOhGQLnQvTCuVRngC46RDOUPCshrUh4yEJyOySyIZMEkIuSeHl54XuH0OyFcCGBAklAkCFlSJKFxBy8lQq5DAty+AakAoZUxhBDkEmIdyDpAGLUr1+/IINL379/h6yp5uDggGzTgkzWQnZkQibzmZiY+MCAgYHh69evkMlsDg6ON2/eQPwFuVkBkgohI07ItlOdDfEIZIAFknAhIp8/f4ZvJODn5xcSEkIebyDeGRDTiFc/qhItBCBpDBI1kPQPCVKIOJwNKRogyiAmQKQgbEwSIgsxEFJyQUQgxsJNgyQMSD8MUuZC2m0QLZAUCzccbgJEFi5OCwYkG0JIZOsgjoTnd0jr9ufPn69fv37//v2/f/9EwQCSu+HaiXch5PAmyDYQBgYGyB5fyKgPLkMggQkJHEh7F3ITH2QzBeQeccgqJ8i4GiQKIKZBXAjpin369OnDhw+QOUjIKB1kGguSMSEqIbZAhnAhJlBIQhoxkNPjId19dnZ2fn5+iKcgU3iQwhkySo/HOkifCuI7yNExkJ49pMSDnPkPmdSDJ2N4NQzRBeknQIpxyLZgyE4cyBgAxBmQcIA4AxIaEDaFJKQChmSE79+/f/z4EbJA7+vXr//+/YMkA8gUNSQS0ayDuwruEeREi6aYci6iGoZYDCdJ7dtBZiUhW3QgQyKQiBcQEIAkMsjFBpCBeIgtuFwPKUog2iGhABkPERAQYGVl/fDhw5s3byDbv4SFhSHb1yCZDaIRLXYhUQsnf/36BekEQ1blQRITJycnHx8f5ALq379/f/78GXKdMDc3t7i4OD8/Pxsb25cvXz5//szCwgKulPkgHXpIvx8y2QwZPSM13HAFAi5xSEMBMvYA8S9kFeiHDx9YWVlFRUUhs9eQg1bIcww8rOC5C5djhoE4xLPEewS/ekjChiRarKEHSZzIUvgNhDsMYiZEMbwyhstCej8Q2yEkJPtAyg7IdB1cMbJ2iIFwKVozINZBHABxJzs7O2QiE8KFF9mvX7+GbCmBXEoP6ShDJpJIciRkIoyVlRVyXBQ7Ozt8DBmrOZCGPmRqDFKmQYovSGENOTIPMvQKWdgFCWd4tMLNhDQvvnz58u3bNx4eHsjxRJBdqpC+CsS/kGiFBAhcLyUM+FAzZEUOMzMzZEfojx8/IHUSxNmQAgTiSKzWQW5Qhcy+QY7p+PHjh5CQEFwjcscDvggU7il4RLOyskJOeYIsyIIvsoMPAkNqboh6SGhgdQ+pghB3QtpbkKXRkEHpFy9e8PHxKSsri4uLf/r06fPnz5Czk+GTAhAvQKyDuA3ORmNAuFQhQYPSkLxKYRBAdgZDZot//Pjx+vVrBgYGfn5+bm5uiEMhgzyQFbzIxRBEFk5CggMy9AHJe5C7EyA7cSEV/IcPHyDTsZAWFqSUgdRJkATNxMQEabghWwQJ09+/f0Nu6mViYuLl5YUcsgFZGgYxAbLUAjLMws/PD+m+Q1Z3Q25+hDTlIKvAIG0uyEAWsl1w71CdAZn8g0QWpHUCuZYKsvULcoYDpCiBFxAkuQGzQCFJ+whXDIkXSEpAzs+QLAYJHEiJA28hoSmDqMFKQjQiS0FSO0QEIgsxDSIO78lBploh2QQyYANRgKwRwqYdCfEvxHkQWyAOhvSDITkdkm7hi6c4wABycBjEL5AyBKKdSBIy9sbOzi4tLQ2ZvoXsIYbYjmkIvEEDqYMhR+VDgo6dnR1+TgBkqQorKyuknIHUrJB4h5gJOSeSk5Pz2bNnDx484OPjk5CQgKxvgihAjgKICFVIyCHBkMUikKIMMgwOmQ2EDKFDmvKQIIXEC6bVkOk2ZmZmyNghpCYWEhKCXCEFLyUg4QCJOEgBCykS4SJfv359/vw5ZOkrOzs7ZKUbDw8PJN4hZRQkd8DzDohPMYb4HWI+pAcIqTJ+/folICDAwsICmViEHMQGaWkh2wlJqBAS4jyILFwEwqUWyYJmECQscKVRNMXIXEiKhFQMkFYG5HZbiBpIRQVZcgWZB8LlH7hKSKsNPrvJxcX1+/fvr1+/Qi7H5uTkhIwLITfE4GbCGRCPQBIcxMAvYAC5OBkyQgJJmh8/foQsYYDUZ5C+MuQih58/f0KWF0L240KWJEDmqyB5CVK0QTI5xL+0IyHhAxndgtw6DFmFKCUlBUkukOkryEIMSCokyTGQEEMuUEjSPuQUw/1LpMvxqIekOkgOggcgpGyCRA288ILLIlsK0Y4sgsyG2wtJcnAD4bqQFUAGA+ElHXIygLgBrhjZCjqwIYEDsR3ickg5DsnF3759e/fu3cePH3/+/PnrF+jiHREwgJwlAOk0k+pIDg4OSEcQYgW8cwxp7mOaBrkdHDKyBV7N8xWyRYKFhQUyMA5ZKAcZ3occ/wSJC0icQqIbQkLOu2ZjY4PMEENKSHi1B1ED0YXpDLJFICvdIDMRkAQAaU9AJg0h83cQL0BKY0hc4LIOMq8MSU7fv39/+/Yt5BooeFBAlppDLIIYAunSQMIEcuDxx48fIacjQ5o4v3794uTkRO6PQVICPGFDzKGQRG4YQboukG1UkOFoFhYWyGU8kPoFMpEMcTOEhDgJwoa7BFkQf7jBtRDJYIEbTWGCgO/M+/jx448fPyCzrZDYgpQCkPQHGe2BhAhWJ0KKCchNJpCsAjlGA7IpHrJeALIdFjKLDKlEIRUhxArIjAgkGiCNMsiSK0ilBZlj5uXlhRysCmks//37F3L7IWTqF3IBJyThQupgyODS379/IcPXkGYdJOggJFa/0EIQMk4AcRV8sgqyTxriEshoDCTFk+EA6iYvMhwwdLVA6hhIPoLEBSQbwwtcSOKHKICEM7zoQWZgDQFc6iGZC2ImmkaIFoggpKCE7B+FZDEICc8yyIohWqhLIgcIxGSICMTjkCnGHz9+vH///u3btz9//hQUFOTn54fMQ0HCDXJzNkQv8SRkkRHkGFpI1oDs+4dM0GKaA69XICf1fvr0CXLQBD8/P6TAgTgGEnqQbiWEDanbIPU3ZGU1ZIsmExMTZL0kxP2QChIS2pCEAek+wuMR00kkiXz9+hUyHA3p4UHcDCkeIdbBRxQgjsdlOEQWcjAR5LwOyFwy3OUQjXAupK0DCWFIzEJKKsgNOpCxTMhurl+/fkGuNoKYgAwgiQFZhGw2vPyHTHNAahzITCIrKysXFxekVfTr1y9IiwrTIogv4OJwLpwBl6Kcgd4bhudnUi2DtG6+ffv2+vVrZmZmWVlZyBVakPoAUqVBggYyXIDL6ZCzWL99+wY57RISRpDKEnKHBPJkEmSCAeJUyLgWpA6GjMJBkghEBH6oBeRyNMgKL2ZmZsiILqSNDFm/AOkNc3FxQdIx5CYWyE5cyHFjkBEViF/gVkAyIcS1uLxGFXHIrRiQI4XhOZydnf3Tp0+QM10huR3SKIYXslSxetQQgiEAr4nhKiFlHzyJwgsaiEoICVdMkAFXD2fATYbnXEjdD+FC0ifEDZB8By+FIXZBtEMUQ0RoRMItgjAgJGTqDjLkCwkZyHoiBgYGMTExyH0JkEVbkOoEkq9JdSHkjA7IPkxIx/rz58+4DIHsVITUppBAhhwXCDkYABKSkGwFWQyF3PmDjLpBKnJIbQ3xFGTHpqCgoICAAKRGhJgAiSnqVsOQXjtk7yJkpRikBObg4IAMJ0BG0SFNBzwbpSBHQDMwMMD3ZEIO7oAEJmRsGZK6ICUhZBgcMmsO8SNkv9m7d+8g45cQxRBnwIMXkvAg4QxJEhBluGKHeHF4B5eNDXRmNaSVAxkEZWZm/vbtG+SkRcjgB+SqJYjhkCiGsyEMOAlxJJxLLQbjgwcPsJoFCQ4ICUkuEBdAIhXSuIa0jyCTB5BldZDrDiG9VcjaY0grCTKUCjEN4k8IG9NqyDqCd+/eQU4uhazA+v//v5ycnLi4OGQDOKR1CdmWDpnzgEzrQlwIilVGRiYmJsimMWZmZshIF6RZJC4uDjnLGrID6s2bN5D2IyT5Qo6iRsjxJAAA4mtJREFUhIxUQFZTv3//HpL5IbuAIFMjkBoa0/GQyhirOH5BiMsh4QxR+fPnT8h5p5BtzZDGx+fPn1+9egUZdob05uFHGcCLA0jAQgyElAIQA9FIiBRktADiHeTTlyBxBNECMRDCHiUhAYsZDnBxCANCIkcomhZ4qEJUQkhIqQRRCRGBkBARCAkRgZBw89G4eMQhg8DwZAOpAiEL+iD1AbyGgORxOBdiO5yEux8ugp8BaaGysLBABpwhxfGLFy8YGRkhyyQhIq9evfr06RMHBwdkkgUeIHDr4D5Fs+7v379cXFyQ7UmQLYiQu5ggaRtNMTIXYiCEhHTXfvz4AblvjYuLC9Ib/vPnD66zluDVFWTojoGBAXJ7OmTKjJOT8/v3769eveLj45OTk4OcnI9sO5yN5kG4e+DlLSQoINEB2e0Kv5IHYjWk/Q03EI0BNxBNHJe9kNiHHEUJmSCHjK7z8PCgmQDhQkoMSKkCEYEMet+/f5+Xlxdy/D5kRRikfIYUqpDqHOIdSIcVopd2JCQcIG5AziaQ3j88eCEOgOQLCBuNhJiDJgiJI0xBiDhmJQV3BpbeMLIpEMsgQQwXh6cMSH0GqXTv3bsHv3cTMuAD2ecHyQyQ5g/ENZCRekjzBG4mnPH9+3dOTk5JSUlRUVGI4Ldv3z5+/CgsLPzt27cXL158/foVkhQgh6NChvghxQokSUHsgmSb379/v3///tGjRz9//pSWloYcGQYZef769eurV68g57Hx8fEJCgpCzteEpIafP3/++PED0kuGdJ0hrQrkPdAQ51FIQtwMaQ9CwgdiIA8PD6S5DWmMQ6IQMuMLWZ4N2QgIqfgh6RiikUgSOcNA3AAxCp40IU6CSxFp7KgySAhAQg85QiHiuEi4ejQFRIrDlcEZEHPgXGQGJE4hmRqSDSEVMCTqIfU0sgjEKApJ+ApeSOcJMjfEw8Pz9u3bf//+vXnzhpGREXIsIj8/P2TwkFQbIcPIzMzMkLwPyb+cnJwkmQMJkK9fvz579oyNjY2ZmVlSUpKLC3QZHy5zfv36BWnEQybOIHcu3b9///Xr15AV2pKSkpBGM6S7jMscrOLwZgSkyEYukCEFKWS0D7IwBR7LWI0iSRCSSCBFIiRhQHpEuAyBVLEQlZDZaMiaFUgxBemGwR0PyReQJeuQFWSQuUVchlNRHBK/kMCE+BHChjiJihahGQXJbhAbIXZB7IWI4KyGITEK0QwJPogGyPAyZIwI0gOGzAcICwtD5v8hUmiOQA5lSFqEmIamDNIahdSjkEXXEAV///59/vw5ZP0XpCsMWfgOGViAqIE4ElJdQc6ygHTEmZiYIBlDUFAQUrf9/Pnz48eP3759+/v3r4CAACQ1Q7YgMzEx/fz5Ez4TDBkGh6z4h2y1glTMuBwPcQlJJMTZmFpYWVm/fPkCuaIccrs4ZN0/pPEB6UBAZtQgcYRpAn4RuC5IgQvhQkaT4Bqp6E24mcOeAck4kJyG3NZB8zg83tHUw5URKQ6JI7hFcAbEHDgXzoCohxSXkHIQEumQFh4kGUDmdyD1JaTYgphGCQk5yQgyLQcZ8WJhYYGs9/n379+DBw+ePXv26dMndXV1yGp/ePhAQpKg1ZAzZZmYmCB3H0GO4xUREYFXYwRNgCj4+vXr379/P3z4cO3aNUjLAHKZFWT+C6IGmWRnZ4cPAf748QNyJxtkSwzkRCAJCQnISDhkdB0y0oZsAn42pFUEKWMhsQYJGYg4JCR//PgBUQCPZfxmEikLMROSGCCVJWTMGat2iKsgrQFImoEU45DYhKyPg7gfrh3S4YbMZEPKbbgU7Rjwmgie1CEJDK0fDHEA3FMQLiUk3ChIBoRkLsikDKjWw2U0xJUQzfB6G7IDGrIC8M+fP5DrHyAmSkpKQubkIYdBQiIPslULUs9B0jFkpAKyVASr1dzc3PD1R5DWKGRe9t27d/z8/GJiYpycnJDzuSAXoUMaqpBV0BBLIYOrHz58gGQJXl5eBQUFyDoL+OGXkBlWLi4uyHXCkIkNyM6oz58/v3v37vv37xwcHHx8fAICApDeM2SqA9IKgSyWxup+UgUhSRaiCxJDEDbkFCTIsD8kjUKmt7m5uSF7ECF7CSDH5pGatyH5ATly4dENSY4Ql0BIiDKIq0ZJXCGAHFbINShEHJcuSNhiqscUh5iAVRxe+MIZcMUQ25HFISKQBADvSEGaYhBdcBJiF5xLIQNSjkNmppmYmCD7G799+wZZ/iMiIgJpdEKuKWNjY4NkSUxLIe5HdhuEDTmP9vfv3w8fPmRkZPz06RNkGSYkPWOag0sE0v/7+fMnpPCB1MEQS7FqgUx1QZZ9QRaBQtZ7vnr1ipmZWUBAALKlArLkBbK0E6s5eAQhsQNPJBCVkG1XkKWsX758gZRRoAKdBWfPCqKRSBK5zIeEIaScx6Ud0tyB6II4A3KWA6Q0hkyZQepdiAmQOh5SBUJKb8h6bOTyEKKSuiSklwhxCbzQg1QcEEGIk+AZhLq2ww2HGAuPU5xxhhwckMCFk5AxB8ixTZBGKKTrBsldkDYgpCkEaWhDur9wAyF+hrgDk3z16hVEF2SnPKR5xcDAICoqCrmZ8vPnzx8+fGBhYYFcefb9+3e4IZBghWiBLBCDdF7hWeX79++QmSfIwBdk2ASyHRCyJenHjx+fwQByNCtkuRZ8AgMyvwUpSuCWUshAzuHIbMhq8////3/79g2y8BKyAxtyIjdkju3r16+Qg4Eg59OS6hJI+QVJGZAEAQ9ASFxDDIRIQdijJP4QgIcVnEGeerh2OANiDpwLZ0CiDyILJyExi5ycIFLI9TF8DgIiBWn2wSd3IC0/SIKHKKCchMyMQjIdIyPjhw8fHj16xMbGJiQkxMHBoampCblCFNJSh/dasNoL9z7EpwwMDIKCgo8ePfr+/fuHDx8gR+5Azu6HrB3BaghWwZcvX0IqSyEhIUFBQYhRkIyGVT3k0ErIJCIrK6ugoCCkf/LgwQNFRUXI2h9IzxXS7YPM42I1CqsgvLqClKiQlV+QiTNIEP0AA8ioL1YTKBSEFAWQ9AApmbEaCJ+phDQaIGsOIB02iAnIuiDlDKRjBtkFCrk4ADPFIuuiChtiNcQiCAnPQZB6ClJ9QFoe8NRFudXIWQ9iL8QlkNoEZzUMsRgSghANkMYCZME9JFYg48aQKxshaiC64CTkGHrIaAykPQgfuIZw4SrhDMgSX8h5rZDky8rKChmD/f////fv3yErHiEHg3z9+hWyGhAyPAs5lwPiYSEhIcgt05BDw799+wYZAYBcAwJZigVpMUBmdH6BAWS7MPymKQ4ODoivIakfktYhU7aQeII7m2wGJBqQG1+QuIeEw8+fP9+/f8/AwCAsLAxZ9A8Jf8iyOEhbAbIrDNIaJd4ZkDwMyVfIfoEsVYCYA08uEO4oiScE4BUDMoMM9cjaISkBEgvwFIKsANl8SLKHKINrQeZCFEDMRNMIyQKQpAgpRuGVNHLaQNaFbAWyOC425A40SD6FlBvs7OwsLCyQXcK8vLySkpJCQkJ//vyBHDeI3PdCdjPEXmQRCPvz589Pnz6FXF8IaYJDmtek5ou7d++ysrJCzgyBZDrIHn3IoVGYvoOEKqQohzRifv78+enTJ3EwgIztQTrWkIODcJmDaTJEBBIOkOk/SBUOGSGDV+qQagxyDAUkKCAaKSfhRTqEASEhdSem4ZABQsg0B9wZ8LQEF4FrhAyI/vr16/3795A94pBFbXAFNGJARlkgDkNOS5B9BJDUAs9i8MilrmMgIQkJE0g9iLMahjgRQkK6g5Chg1+/fkEarZAlS6ysrJBNq5B8C9mhC0+U8DwMqc4hiQkyFAaXQvOhpKTknz9/IMEBCQXIIRuQKR/IkeKQkSLIjClkNAYyOPPhwwf4SnRIpQVZzAVZbwUZymZnZ4fEBMTZkFPXIavJICkDcrQWpIaDN6UhbVJI9EACEc3ZlHAh8QFp2cDZkJXekONKIEkc0uCAnIf39etXSETw8vJCWv2kOgDSoIb4BRI7EN9BCm5IDMJFSDV8ZKqHBxecAQ9MzACBhDkkupHVQ0KeeHF4DkVjQGyE5CCIMyAKICSy+RARSDEEUQnpykByKEQlxDRkEqILWYQgG7JVBr75UEBAQElJ6ePHj5CNNJA2NMRYSN0DMRDiBVzOgKhhYGC4e/fupUuXdHV1IWe7QlaNQGyEqyGGISEh8fPnT25ubg4ODlFRUcgYHicnJ6QKxDQBPqcOmTf9+vUr5EpdyBUynz9/hsydQVq9kPWqmIbgEYH0MiHlKmQFOGQ0EZJmIM1xSNcCsusBEoB4DCRJChL48LSKJxYgUhDbISSkQINYB5eFS0Hm+D59+gTZEQqZHIQsdoNooSkJcQZkgAGywQySLCEJBlLa08gBkKCA9O7+/fsH2TtHuBqGhCakR/vnz5/Hjx8LCgoKCQlBdqlCMgxkxy2kiYE8Gw9ZVwyfFoIEPSTR8PPzY/UnZD81JOIh1TZkrJuPj+/79++QZZCQyWNOTk7IJgdIcxV8v9/Hv3//8vHxQapSSOX68+fPDx8+QCaDv337JiYmxsHBwc/Pz8nJ+e7duydPnvz48QOyrwCyDRdyJjOkqoZsIoTUVfByCnIKGCR/YvUCSYLw9iM8YiDxBNkswcjICDkaHpJKIHkPshKEkZERvvzyy5cvkNXpxFsNSYgQuyCZDVIBQPrHxJszqhI5BCARhCyCn41LPdniaBrhXDgDzT3wZABhQIokyMJ7SGEESSFousjgcnFxQeaPmJiYfvz4AbmKEb6PBb7KCTKtCDlagSRbuLm5IUd/cHFxQWaF2djY3r9/T+qyCU1NTcgKZ8hqEsh+RVxdQMgAJmTVN2Ri6OPHj5DTmKWkpPj4+CDhCbnj78ePH4KCgpBRLpK8BhksBY/W/YIUPpAyGTIh/f37d0jhBimg8DiVJEuREwykNIY00XClB8hWMYhKSJsDrUCDSMGNhZTtX758gZxMDBlIgJxjSJI7SVUMmaWGOAMyrglZe8TLywuplSFSpBpLknp4hQKJQVDB++jRI0jIQipUSFxC7h2C3MLIw8Pz5cuXx48ff/v2DbKHHZLQIfcZQEZrIeGOyymQ/AwZE/4NBpC6R0BAgIGBAZLQIUc0f/r0SUBAABJhIMcxIq7BgmyOggzpQLrLkOoZMjfz5s2bFy9esLKyCgsL8/HxQUabIXvYIfcOQdz2798/ISEhyDHRn8AAsvr6+/fvvLy8nJycEBIyJA4JLIhGTBIuC4k2yFguCwsLvNUMKdcgJEQ7xF/wLARptUBWkELOrP758+fbt28h2wHFxMQgQ4WQM+U5OTkhi8Nfv34NuTtMXFwccgkoJLIg4wcQi4ghIW1nSDGBnAColY2JccOQVoPcdoEEJsQ7kMCEkPA0DJHCJCGpCKIYwob0QbGqhAjCFUO48ASGJg6RhRSdcBIyZIXMheiCi8NNg2uHbP6BiMNTLIQLcTCkPQpJ2xAFEL0QkyEkRIQMEp65IOZAbIFU4YyMjJBbb9nZ2SHXrty9e/fDhw8yMjKqqqq8vLyQeovUahhiEaZTIeIQB0BkISKQq1H//v376dMnSKUC2aSEq5sB0YtJwk3DlIJ0MyDrvyDj+ZAtvJDdmB8/fmRjYxMVFYWM/OEyByIOISHJEhKJrKyskMYKJyfnt2/fIAURpMOD6RJIGQ4ZD4cMakJa7ZBogtQgkPINst4KsosJMowKCTq4LKTn9h4M2NnZpaSkIKUZpITHajVWQcgxHZDTMSFFJWTVKsR3mFogJyEiT3ycPn3658+fxsbG379/Z2JiEhAQgCz7hfTEME3ALwIPYTRlkPVJkNIecocQxIXQO4/heQlSkUAyEkQFpE36+vVryKW8kOYh5DBnyPYeSPMBErIQLWh2QyoSiJmQSIJsPvv//z/krHDIYWmQ06chZRncHHi0QUQggzyQQQPI/b6QreWQsPvz5w9kVTMfHx8k1UKC48ePH1+/foXkW3jTGzLeC7lAFNK6hIQ+ZN4anrwgJuAqFiGugrQnmJmZIQvwIKNGmIEAKeYgPoLkAUijDJJYITUofA32169fIVd28/DwQAbkIakfMiwPuZ8VchgbJO4gAYvVUjyCkEiB+BFSo8Cdh0fXqBQkBCDhBimDIKEHESeDhCQkiIEQNjGGQAo+TJVEisOVwRmQdA5xBrKxkMII0lmBOA+S3yETyZDEDCEhssh6KWdDUjjcfEgShbQUWVlZIVUdZJUoJycnpIiAFFCQhcQ8PDyQXhrlLoGbAA8iiNvY2dm/ffv28uXLt2/fvn79mp+fX1xcHNJ2gWuhhAHJp5DBMEgPEnJs0bdv3968efP582dubm5I1wIyMYd/VAwS3ZCYgqRbyBFX7OzskFFDyOpuiAKszkaWgkQHJHbgrTGILkgPHuJgyCIASCkHOZbr3bt33Nzc3759+/Xrl7CwMKRkhpTq8G4MxByCJKTKhKwZgsya4y8PIbf+QM66gGw0h+xrhfgCMnwLmQiADMzAnU3QJfgVQPrckBCDNA0h6Qcy7wkalIbUppDwhfgBXiP++PHj7du3X79+ZWVlhfQUIRUApBaBp0g8LoBMvEOsgBsOWboFOfgbcl4HxM+QlXWQEIG4B0JCqjGITyDNCsjc/ocPHyCLrSD1qKCgIGRBFiSsf/369ePHD0hnEXI7IWQQ+/fv3+Ce8Ke/f/+CL/DmZmZmhhxZBUmmkOEUSJDh8hpk+RhkmJ2VlRUSmpAVXhD3QzRC0jpEBFJ+QfIVpEcCGUuAHH/z+fPn72AAaTxCmpyQ1hPkoq5v375Buv6QndOsrKyQagDiZoh1xJOQpAaJEUg84vcv8SYPe5WQ/AMJNEgUQJpTkDiFeJ+MSIEkdQiJbBTEQDgJNxnOgEjBuXAGVnGI+fBkCWdAdEFIiNcgJGRFJCQBQzo3EO/jGgCD6IJYjcyGiJBEQrQjuxDiPEhRDhke+/z58/v37////w85Y4eXl5eBAbT4FtIxIsk6goohQQeJGkggQPaMQEbUIFcoioEBDw8PGYPPWB0A8T7kxB4mJibI6D2kkoMMR0OuYYW4ipiuJNwXEC2QEXXI8jFIgwbiEUi1iukkSIkBF4ebBmdAkgqkrIMrg8wPQvo8kPO93717Bzl/V0VFRVBQEDI+DKmf4LqIYUD6vhASUpBClvjgcj9kpzUkw0LuCoJsToNvSIEkbEinlBgHEKkGcuwEJElDqlfImC5EBFQNQxrC8FIYUmVCDuCGbGZnZ2eHbLGFHygKqYQgXoWMOUPYmG6CrC6GRDkk7ULUQE6eg9w9AtnFD1l+BYlFuGMgiiGRCqntIIstIVUyZIseGxsbZAIVMjT0798/yEJHSNzw8vJCZov/////5csXyOZgSKCzs7Pz8PBAxqghyQgSKMgBgqt1Bs/nkA0YkBQG9yzE2RASYia8BIEHAiScIbXy379/ISduQs72ExAQgHiBgYEBcmc15LARRkZGSHEDORsIklYgCQvifoiNxJBwV8EVk2oCXOMIZEAiEUJCvA9JMxA2hCQmPCGpAq4SUuYiRw2EDckUkEwEYUPE4dkEzoUzIG6Ac+EMiCEQGyHWQVRCjIIog6iBiMPzNSQPwr0JF4e4B6IYQsINgXApIeGtHIiTIBuoICUAZHgWchsEZBcyZMsvMzMzGxsbJINAlqFS4gC4XkiIwZ0BCY3///8/ffoU0iXg5uaGrJpkYmKC3GIL10sJAxKY8OU1kMY3pBqWkJCAnFLy7t27b9++QUbO8HsZ4guImRDy0ydQbwQy4g1ZUgM5chlXjQ5JABC9yFEPMRmeKiDJCVLbQQo6yLo/yOEHf/78effu3c+fPyF72OBLgCGGkxRc379/FxAQgK9m+PDhA+TYQfzNIPiFuZANn4yMjN++fYNcPMzFxQVJTpCRTpIcg0cxZDwDYiZ4YvY3JPdBSOh9w5BxHsh4LEQR+D7AL//+/YPcWQ1J4pBtcJC+KcRKSHBD4gAigkZCuvwQBZDIg2iBzKnAKxtIiYbnqHHIQa+Q9R2QC8gYGBgg0wmQwVtWVtafP39+/foVcha0iIgIZOMBZLYD0kuGbIeAXBgM6dzz8PBAmmDwwQe485C9ieYpyNIMSKBBtlFBrn7ClXYh2uEmQ1IbJF1C1r5BJpYgC7Ig26Mhl5BAEigkNUMOzIOcdw+ZJ4aUSpAha/xWQxyATEJ6/JBiBSIOjx0Id5TEGgKQhAoJN0iIYVVGqiAkgyCXa1gNh1TbEGXICkgSh9sFdySkLIBzkRmQzgFkDQHkHGBIuoUUuJAkjewSPEYhG0uQDfcRxEBItff379+PHz9CbmSB5D7I4DNkOgmyaQJiMqRtCinoISI0IiE7+CFjBvCTiyAZnCo2QsIBEgiQCgZi7L9//zg4OL58+fL27dsvX75Abl6HbP6GKMAk4fEONxNSxP3+/RtSkUOOzobsgMJVnkD0wmMfbgtkPQ2kVIGkCggJmQFkYmLi4+P78+fPy5cvP3369P//f2FhYTY2NshSWUiBzMbGBhmig5tJDANi7+vXr7m5uSEb1SB7uPHohXSaP378+PnzZxkZGWVlZcghDZCTKiAehyR7eIjhMY1IKcgwBqSGhRyzCuncQiZ3UC46hAzlQ85ehwzcQ3qokAlXSBBDFuhDiiG4CyCxAueiMSD59vfv35A2F2RUGdJ9hIxCQxZTQFb2o5kMNwpSWUL2A0Bu7eDk5OTh4REWFoZctwCfNobcWgppG8KP3IKcn8XDw/Pt2zdIrxqyzAGyzQBSvqCVJpCiB1eOgsxDQFonkEFjZmZm5FXicJdDjIX0XCGmQTIVZBTh69evb9++/fjxIwsLi4iICGRcHbI/4fv379++fYMMdHNwcAgICPDy8kLKGkipBEnoEPPh1hHJwB9lRBoyApVBqmHMMIeIIOdbCBsijiegkJVB2BASkhEgpR5yvYssgkccoh1NAbIzIIkQogxuI0Q9RBnEIkjJCOnQQEoAuBZI8oOQEEFI8xTuZWRjIWaSSsJNgKwphUwnQbb9QLY5QU57hUxdQ9qpkNMzIC1USFVNqqVY1cODC+4kSEktKSn548cPLi4uyE0+QkJCkIlh/L0xrFZgFYSEP6QXhTwgDDk/AHKfLDc3Nx8fH+ToMUg5idUoeOTCI+jfv3+ioqKQW4Ygc2GQg0ogJwXhMgRS+EDiGhIacAMhuQMuCBl//vDhA6Sr8Pfv369fv3JycsrIyECqfMhJKchlIy5LcYmzsbF9/Pjx0qVLgoKCGhoakCsG/v37B4kFTF2Q7V6Q/i5kPhSytxvS1YGIQ1I7pHyGd88wjSJJBFLyQ9o9kCF6yEwKZNgGVA1Dwg4y0AHpCkPamJAjMiCrjiHDrfCRWHi4Q/IqHgdBli9BogGyWgpSC0Kiip2dHTJoDhlkhoQR3DRkwyF7iiBbHZiYmOBDzexg8O3bt0+fPkHUQxYVQ5IsxFPwoS3IDd4QWyCTr5DiAzIyDAl9yHwt3A24GJAmC2SU+N+/f5DNGJBKHZLcIUEEISGhD3ESZBYEUvFD3ABp5EJ2WSBvEYZMYEMGJCDXZvDz80MGnSClDMRYyOgcLnfiEkcrVuDuxKV+VBwSApDMAmFD0jCEhIighSpEkBgSbgiEgTU6IMkbOXVBTCZJHG4+JgNiGsR8iJkQNfDcAUlvkEVbkNUhkKIKohHiZogWiCHw0IAoIImE1O5wEyDV8I8fP8TExNjZ2VlZWSFZnpubW0RE5M+fP5ADDCDFFCSOIKtBIfsySbIal2K4Y+Bug1RIbGxskLE3Hh4eVlZWSE0ADwdcphEpDjEHQkK0QIopSJeOmZlZSEgI0rGBhDlEDR4SYhQkiCArciD9H0EwgAzJcnFx4bldA+JriBWQ2gVSwELCBxI4kIONId1fSOxAVs7+/PkTco00ZMYQ3nMlu1cAKU7fvn37////r1+/fvnyBX4/PcSFaCTE8ZCeIaRTB9myDOmVQjYKwT0CSdJoJpDHha+rgEcWZD4e0vlmgUQqpOcHOUYOEiIcHByQlh2kqwpZ7QaZB4W4A5I5IXGPx7mQXcKMjIyQhQyQ9eKcnJwQcciYPqQmhngeQkJqR4hFEMOfPn0KCWVISwdyKzgHB8fXr18hJ3JAushcXFx8fHyQU5chw8WQqhdyAjNkUQDECkhjFtKmg4xsQOIAYimk9QCpxSEiaCSkZ8/CwgLpdkOqUsj9aGgq4VxIBoC01n/+/AkZDxAVFf3//z9kIBriSEgj49OnT+zs7AICAuzs7JCZb8hYHKR8hMQlxMEQNq45bLjtaAyIYyB5Bk1qlIsnBCCpEUJCEj8kJPFoIUkKEr8Qk5FzAcQQuCyECyfJFselEZIvIGNokEQCUQkpLuCtQHhpjulUuNvIY0BCFWI1pOiETN9AjsaD3FIKmYvl5eWFbIWAnNID2ccIWdsIabOS5wBcuiAOg8hC2JBmPWRaClKscXJyUstqSEqDFLaQOg/eGIKsRYKUfpDz80ldGvb////nz59D5td5eHhERUUhN5dDDkGC+BGNhMQ4xFUQKYgIpNaAxBfEhZAVsvfv3xcWFpaSkoIsjYasdPn9+7eMjAykpoccAvjnD+i6Q0hdBTGWSPLXr1+cnJzwVat///6FHCmKZzQC0gJgZmaG3KPFDwaQE7Ah7oc35qjVFWZgYIAMREPKfMgWc3gmAjWGPn369O/fP0i4MzMzv379+s+fP3JyckJCQvDtRpDpZUjOhCQFSG6EpD9IewSyOZ2ZmfnLly+Q0ITIMjAwPH78GLISioGBgZ2dXVBQEHJzEaQHDA9uyMoxAQEByPAIpEfOw8Pz+/fv58+fwxdA/vr1S0VFBd4iZmNje/PmzdOnT9++fcvFxSUiIiIkJARJtYyMjJ8/f/758ydkexVk6wIkAUHyD8RqyPwrRAu8boZEAGTnMWS4Ca4R0g9+//495LIjyHA3Hx8f5HwrSB0PadBAhqwhGwkgd7p9//4dslGPhYVFSEjo8ePHkCXWkBYcvLsM2YXFw8MDWbwG2YMBOfcKHv4Qx0O4pNbB8FKe6qUnxFXDgIRHNzypQEQgkzKQigESjJCsSy0vQ2yB1HkQqyEkRBzTFrg4hAEhIQ7DVIwpAlcPSUiQIhUiCBmCRrYdkkcghkD6xBARyJgwpPCCLN6EpGSISog5kHCDpzeIFfjdCcmMECexsrIKCAjw8/N/+PAB0q+CXOEOudGBm5sbcu46mi0QB7Cysv748QMyfA2pISBOhXQqIIuQITv+IbsBISNb3NzcrKyskM4DZAkxJFNDikHIYlfIJkO4XyD7FSHrNiBWE09Cyg3I6AK8ec3MzAwpCiCxAwlJSIUHUcnAwAAp1iDFCKRiw2opZHAb4nFIAfvhw4fHjx/Lysr++vWLi4tLTEwM0g2AxDikBQYZ54f025iYmCDnRvz69evZs2eioqK8vLyQ29xFREQgdxJDTv/98eMH5OKpx48fP3r0iIODAzL8KyoqCpnPhpyVAe+AQpIBJM1jdTzEm5BNOpBYgzgSEv4MDAxaWlpv37598eIF5AxjyIgmJClCkgQklCDrhyB9QsjY+IMHDz5//iwqKgrplUISG6Q4hbAhMyAQNtxtkNiHc5EZkDQDme2G1IOQuhKyrvDbt2+QwRLIMDC8GGH5+/fvgwcPeHh4hISEPnz4ICAgIC0tDYlpZNPhbIgFEGchj0X8//8fchAHpD0CWTIAyR6QAyMh/T/ICMDXr18hF49Amq6g5gD4YhDIGAXkIDpIZoOkAEgbEzIJDzEZ0k9lZ2d/8OAB5OAtUVFRyPFe7OzskHT248ePN2/efP/+HdJ1htTcEDfDvQNhwDMSxF8QQUjxCqnCIVU1xO+QDMDJyQmZDIakbOTyBTLiAcnwkBiF5ExIoH/9+hVyTI+wsLC0tDRkqRrkNlZIuoEUapCCDD4DDeFC4hXivFGSniEASSGQshJiL6QggLDpT+Iqs8gWh2iEewriXzgXIgspLiFSEC9D8gu8uIBkGUhegAhCRODakfVCTMBFIquEaIc4BrIbAtKCh4wbQbIhpJzFNA0yV8rBwQHZmQO5K4WDg+PRo0eQQ6e5ubkhpSqk7IYsJoJMakLOL4IMBEIWFkG6FpASAFKxQbyJaS+pIpCKFlKswc2ETB/CjYKEAITE5V+4YjQGpE0DqeAhK7mYmJg4ODggfoR0AyAFFKRpBRnYgywsgvgUshZMREQEcg0DZFqXlZUVsjQHogaSHiCRzsLCwsnJqa6uzs/P//nz5x8/fkhKSvLw8EDCE815BAFkC/jXr18htkMaKJCrpSCtE8id8ZAzTCDtIYiZEFlIcvr37x87O/vnz58hW1UhU9SQOIUohqRwSAKGs+FSxDAgs/iQEICYA6mGITUIxDGQpXyQdVeQuGZ5//495NC1r1+/Qlor////5+HhgTQJMS2GJBTIIDZkahOiBrKG+c+fP5CAgDSm/vz58/r1a8iSZsg6L0i9AmliQPwPyQOQGXJIOwVSN0PcDTlIWUBAANJEYGNj4+Ligkw8QA5/gSQUHh4eyKnujIyMkLuSIFedQJIsxCJI7QjxNsTNEBISQ5AggyQjSARAghKSZCHegS8lYGRkhCQ+SJKFFBMQ0+AjHpD2NaS9BrmBCpI4eHl5hYWFIX19yGA4pPHx7du3nz9/Qi5khUy8QRZ8QayAOBLZIoh1oyStQwAS8pDkASHhIvB0Qms3IJsPTwNwBkQWzoUzyBOH64IwICS8/YHMgIQDpGSBlDWQqRlIKEGyD6TvCBGBG4XMgORQiAgyCc+JEEFILcLIyAi5EvHjR9CxtZAF0pBCA6IMk4SMVEMKJUgdfOvWLUhzlo+Pj4eHB15/QIqgr1+/QroKkO4+ZKvux48f4Ut+IHUwxEeQEMC0lGwRiK8hQQcJGUiPAiIOT28QBSTZAl/BCllDDuna8vPzQ/zLz88P3y4M8SBkyBRS2kMiETLHd+vWLcg+T1FRUchCdCYmpq9fv0KWjEHcCXEe5DAGAQEByK0bf/78YWdnh1wHABlrJMn9kAYEZB0M5CLLV69effjwAbLACjLlDDne+OfPn/B4gTQsIFwI+8ePH8+fP//69SvkFEJIrQQJajT3YBVEU4PJhXgN0muC1DXw0Pjx4wdk7BkyvAo5rgTSnGL5+vWrpKQkpIIRERH5////58+f8awwhKwlg3RA4R3BP3/+QBbNQ4L+79+/kMNNIJWoqKgoPz8/pOUFSb6QhUgQt0JOwICEFCQbw3vAkE6zoKCgiIgICwsLpHEAmYqHTP5DVij8/fsXcjcwAwMDZBSahYXly5cvkFOXubm5IYkMfuY7ZthBbIfEE0QWEgfIORwyJAUZkYb0yCF+gaiHkJAmBaQHDNnqB4kDCAnxqaCgoLy8PCQFQ07jg9zfAGlbQKY0IIseIa0cSKkKiSBIkxli1yhJ6xCApAGILZDyBcKGxDuyLFycdgyIdZCECkkSkEIZYiOmOKnqIabBa1mIsRASLghnwBVDhnwgXORCB5JQIW6Ai8NNgzDwkxAfQdRAzIGQkGVQkNk1SEEGmQaGDCpC1COTkOlSSNUCyZ6Qcz/ExcXhp+JDejCQZjrkSnVITwBSSUOG8SA+giQDiHoIG+IqZBvJY8NH6SDNbkhlCblgBmI1xFi4dZDiHiJIDAlZXQtJOZDeGKQ4gtxfx8PDA+n2QEoqyGAAZAMP5NRJdnZ2MTExXl7e58+fv3//HrLvFtLlgLSQICSkCIWwIVtyIauCf/36Bdki/OfPH0i7B9lTxADIcdOQLvjnz5/fvn378+dPSC0DOcYE3j2DVDqQ8IG4BxKkkPiCpNWPHz9++/ZNSEgI0mWHJzZI+MADGS5OjAshaiD9LkhKg9gFqSVZWFggW3i4uLggI+dMTEyQERrQYDAnJ+fHjx/l5OT4+PggK5gkJCRevXoFmWyAGI1MQuYPIDPqkGwJaTHduXOHg4MD0jL6/fu3qqoqZNyAn58f0nWGjIlDRuoh3T6InyHhBckDkBlsSAP227dvHz9+hEym8vDw8PHxsbCwQC45fvfu3Z8/f759+wbZ+wsZaoBs4IMMX3NwcDx//lxAQAByYTBk/T3EIkjQIAc0JKzhkQRRAPEypEkIOfHj+/fvkKQMObcSHj4Q7ZDkCxlhhgQIxEeQ09H+/v3Ly8sL2bT+5csXyPYGSJKCXIv2+/dvyMzHjx8/IE0cyFJqiGOQrYCwIc4bJekTApC0AQl5SJqH2AtPRRAuHUhIlkFOFRBLqSgOMRBiBaSWxfQmPBDgYQJhQGpEyKwKpCkPDzp4sYtpGtxGZAbcCoggXBdk5TPkQHv45CI8a0MUI5OQQvnfv3+Qq8Tfv3/PysqqpKQEOW8L0qKCkJBsC+m9Qa5ngMyLsbGxiYmJvXv3DuIGOAkZY8NjNbIzCLIhQ+IQl0CGFr58+fLp0yfI4UKQOVpIJx6ihqCBaAogK29+/foFOfgasq7zx48foqKiXFxckE4/ZM0XpAUAaWpA+sGQcQJI1aKrq3vt2jXIyWWQVAe5bgeyrxKiCzIHB2nufPz48ffv36KiopKSkoKCgpAtM5C0geZC/AAyQAhZZwNZjiMhIcHLy/v+/Xt+fn74VYnweheS8CBmQqphSA+Ki4tLVlb2////z549+/jxI8T7EGXIJCSWkUWIZEMqAkhagvQqIfEFOX8JskuIg4MDsioZUqGAqmHIWlxI9wuyCB7SB8VjK6RpCekdQsZMGBkZhYWFmZiYIGesv3nzRlJSEnKszPXr18XFxUVERCCTNJC4hDeXIC1lSKsWEkOvX7+GdKwhfoAcS/nz50/4+O3Xr1+/f/8O2asnLi4OOVYGniEh0QBJAZBzLiFpBeJaSMME02uQQgRe9EDiAOI2yPWIkBOwIeeBQNbUIUczxEBIwcHBwQEZJ4e0LiFbiiEDXLy8vJAuMsSnkET/4cMHyLgEZKQCrgAyyAMZMIAUYZBgh7gKYuMoSc8QgCcSSDqBJBK6OQCSjCFWQ1wCdwCcC2egKUMWhxQKaArQfAE3GaIMIgtJ3hDtyAog4hArIHM3cDYk9WJqgRiIbAhEBJmEy8IZEFnI+gxINofkBUh1CLcUogxOvnv3DnLMMjs7+/Pnz+/cuQO5RQZS1UEqGEjDGjJaBinuIXe5vn379unTp4yMjJDxPEgXGRIREOsgDoDbRQkDUnxDAhBS/X/69On169eQoowDDCAHXEBKHly9f1xugFwn8Pv378+fP3/9+hVysCBkWB5ShELiEVIyIy9Jg9Rhv379+gAGfHx8v3//5uTkFBAQgEwKQLYaQ4aL4QOBkEvwWFlZP3/+zMzMLCkpCan8IDfEQ8b2cDkVK4BU8xBH8vDwQDawvXnzhomJCbJ4HrI/7ffv35DqFtMKyGEMr169EhYW5ufnhxzVAAkBSAELsReS3iDxC2FDxEkiIXEE0Q45MhNysJqkpCSkHoRc6QipjEHVMC8vr4iICKSXKSQk9PXr1zdv3oiLi0PqBky7IQMRkB1HkH4bZD2wsbHxr1+/IJMo169fh6yT+v379+vXr0VERCArfiHj+5BNSpC5Ckg+h2RXyP19b968+fbtGycnp6CgIGTLMqTl++XLF0g+gZy/8fv3b/jxXpDeM8QxkOX7f//+FRYWhjR4IREDCRdILEJCB81rcCmILHI+h8x+QUZvIMe+QHILxPFwc+BWQEQgAzufPn2CHAjKwMAgLS0tKCgImQmGbL6CnN0BmfBmZWVlYWGBHG39798/yMEmEKOQnQQRGSVpHQKQMIdUIZCYhbCRIx2iBpJjae0eiL0QuyA1AdxGOBfOgEjBuXAGHnGIXyAKkEmIOCR3QEIAIgJXAym44YKQjAM5EQLSLYYPC+HxAtw0OANuIFwE4nfIebqQXhdEBJIZkUtSuBZILcvExPT27VvIOk02NjZ4HoR4Ch65kIoQsuIXsosG0ml7Bwby8vKQ2yMgY34Qb8K7sMg2UsKGGAup+SA+gpznA6ljIE0EiPmkboiC9KQhy9m4uLj4+fkhG47hIQkphCFRDNmuCRnyhHSEvnz5AjkA+MaNG+Li4oKCgpDjGVhYWCDL5SBtHYjbILtavn79CplQhyyegnTSmJiY2NnZIUciwhUTA+DD2pCmDyMj48ePH589ewap2CAxBWkEwBMkJAlBghTipC9fvty9exfSsoFsNIUc4wivjOAugeiFc4lnQNIkJC1Bht8hJ539+/cPUv1DumeQKIYohlbDL1++hOwShiyOFxMTgyyfw2r379+/IXUq/GBIyAW9kAlOZmZmYWFhDg6OT58+vX379sOHD2ZmZnx8fL9+/YKMeHNwcED2AEAcCrcC0kx7+/YtpBcI2UUAaaZBerqQC0AgemVkZCBbzr99+8bDwwO5RgnSLOLm5ob4E3LqOqTNC+ltQ2ZfMMMXEhaQPAkPHYhGyF5ASGny//9/yD0Qf//+/f79O2SqA+5+eGaGLBCAdPp//vwJuY8BMlgHmf2FjDZDOtlv3rx59+6dtLQ0fLkmZIAIYj7ETIjzIBZRPdtDjB0lSQoBSFIhSQu1FKNVqHBjqSUONxCNATcfmYGmBsKFFD2QAhFSYkKWOEBKOuKDDp5PIekfQkIGySF5EzKsCtnFB7EI4gA0koWF5fXr1ydPnlRUVOTj4+Pm5paRkeHn54fkUEjHALJDAbJBAz63xcLCAtnN//r16zdv3ly+fBlye5KIiAgXFxekRoQ7Es1SMrjImR1SC0IOP4CUDJBgh4QqJChItRqyDhfSvof3ZCBzz5BIgYwUQsbYIbtrICEMWYsDuVxVRETk58+fampqkDMMIPfDwlftIDsJ0vWELAbm5+eH3Db95csXyLQoZAUMSaEE6exBagH4CVyQPj0kNiGn/0KCDhK5kPoY0omCdIq+f/8OqRcg1xBA4vcPGEA6qSQ5CatiiHWQwXxIC+bbt2/v378XEhKCLE+G7CTi5OSE7LWD2Mv44MEDrMZBmq5wKXgqgRwTA9n4BTmW88+fP5KSkpycnJCDyr5//37lypW3b99KSkqKiooKCQm9e/eOh4fnw4cPoqKi8BEkSH/858+fkPB99+7dkydPIB1HSUlJMTExiPsgy/M+f/787NkzaWnpV69eSUpKCgkJsbOzv3//HjJS/fz5c8heYcgOMMgsLKSah1SrkCYexAuQBA1JeRBxeK6G3JYIuS4CctsgZEIakhwhDWR4UoMs3IC09OFmQvYZc3JyQtbyQXZwcXFxcXJyQqZ+IRvgfvz48f37989gANnYDhlXgczfQFqscIvgUUAeA5c5kGIRHssQZRCPkGcRmi6IgZAQhpNw69AUI4tDShkIiSyOqYVaInCnQtwJSScQB8ClIIKgdit4Zx3lVkPMJ94cPDUNfkMgFkFISDWGVT1cAZosJAQg3oeogbAh4pAQg5MQBqQkgrd6IZMpkOwM0QXJlZAcilxWQnIlRA2kL4jmGDxciC6IA+AkAwPDs2fPHj9+zMjIeO3aNQ0NDSEhIUVFRXjPD9NAyOnQkFFZyPV5fHx8379///Tp040bN/j4+LS0tCCH5bGzs0OuBsc0BNkBaLLwYIE4GBKYkHT1+fNnPj4+cKnw+enTp6ysrP///9fW1kYzAT8XEkeQsIWME0AORnz16hX8aCPIgBzEUsisMMS/kNIJssAFUphzcnL++fPn06dPHz9+hHQwIEUZZJ8IpLyCFOCfP3+GnKPy6dMnSPBCGjcQWcjJE5ClNpCYhSQSuF8gDobUDpAdJZDeFGR30/fv3yEX5f358+fOnTt//vyBnP7x/v17DQ0NuCFYGRBzvn79ClmW9ebNGzExMUlJSV5eXsgMLuQuEEgTB5cJ8GiCKIC4FsKGBDiEhAQpZBUUZKcMpLsFGQCHtKsgGQHS3IFkBJAuiFmYJCSVQMQhdkDshmSbjx8/fvr0iYGBAbJe/PPnz/DVd5ALjnh5ecXExCB1M+QSacjYBeRIZMhiK8iYM2TLOScnJ+Swb05OTl5eXsjMB6RW+Pnz55cvXyChKSkpCdmFBrkQ48uXL5BIhbS4IVPfEF1w90McDy/QIe4HN4D+QGIdbgJkQTlkvxOkmQxpvsHrWkhoQEj4IAx80AMSppD7VSAnckMO74YkQUgDDdKT/vLly48fP5iZmUVFRdnY2CDjRZByFlJmwR0PsYsWJMQKCImn1KCF1YPNTEgKgQcFJKlAiktkp0LSFbLIiGJDwgczrCCBAA8cSCkBCUOIFCR1QZZHQAaW4EbBy2K4sZBMBDcNbgLZDMhcEi8v79+/f7W0tCAH0ePZDAI5KgeyTREyFMzAwPDmzRvIoQWQVZ+QxcOQzg0ZDoPUUvBVNZDyB3JzMCMjI2S+j4GBQVZWFk/dgMteSBMBUsFAykzIBIGIiAhkhJKBgYGPjw+yPAWyeBZSDELKMch42////yHF7KdPnyCDkfBTKSD1IiROIW6A2ALZCPPmzZsfP35ADh7+9esXZE0WZOQA4jBICwAyIgjRjpxUIG6ALDaGHAACaUNA9k9DDmwRFxd/+vTpy5cv2djYBAQEQPqxYUg5D2nYQW73YWBggBz2AGlDQCaPIW6DlL3YjCFZ7O/fv5ARcsgGVMjc4p8/fyBWw1M+mrmgiw7RhJC5kOwBCSmIEZA+9ffv39+8eQOZ74SsnYa0oSCFF2T2HnIh9u/fvyFL6SBLwyGrtCEDCJCjmD98+ACZq4AMEYCPiGaHXPAHOQAMUqXJyMhAFs1D5hi+fPkiJib28eNHfn5+SIMLUnNDdiRDHAzxCMQLEMdDFgFC6myIUyGxBTknD9J8+/r1K2TqArJsGz5IDi9fIMZCNEIMhyRKCPvLly/gW4O/MzMzQ84Og4cPZBX0t2/fIK0Wfn5+YWFhSLkDTweQahhiBU1JSIBArIC4HOILSKEAEac/CXcJFQti/L6AJANk65DZcL0QQeRAg0uNNAYkEDBjCh5EkHFpiDJIooJ0syAFOrzQx9rDgKR/SGFNlYCFlImQU7Qgh1/+AgOIOKYVkPFSyIYLyNTyt2/f7t27JywsDLnUCOI2SLaFNKAxDcEvAik6IFUg5GwAyJZLyCIyyDKdL1++8PPzQxyD3zQ0WfhcL8SFkGVlf//+hTT9IcEL2XQKWSL6+/dvyMovyCJWSBMBUk1ChuUge1K+ffsGaSJAZs3g0Qr3C2QgEHKqKB8f38ePH1+9egXZnQwpXSEugYwpQlIImsshAJIqIIEDmXGAzD/++vXr3r17kKO7IKeIw6+zhGhEIyE1OqQahhxUAqkaILtmIM6GhAZEJZp2srmQOWxIKwdyPBnkEDFI8wViL3LegViEsxqGZCqIIggJyVeQgIaskfvw4QNkTRbkkDPIAj/InAqk2/f582fI+ixubm7ISivIMDIkSr5+/frq1atPnz4JCgpCLh7m5+eHbCyDrC6DbNKHrKqQkpKCrPGDpJ4vX75wc3NDEgonJyekTwlZwwxpQkJcC/cw3AuQFXeQiRBIzQrOlb9evXrFz88P2ZUISXO8vLyCgoLwiIQYCDEHMtoDMRxST//+/RtyUNmbN28g29shTWl4mwsyyg1vZUPqeEiihKQ8SBsQ0vOG20I5A+JITHMg3oHLwhmYKukjgukAiAvpYDvEajzW4ZGig/MgVpDqBoinIHqRSVLNgeiFlAZwvZBMAS+LIbKQti9EDaQxB3cDckkHYUMUIJsAsQgiCzcQIohMQsxHFsHPhp+z+O3bN8jEIWQuE97wRdMOqZ4hV7ZA5hEh0zfv3r2D3GIE2cEBcSFkvSqaCfi5cI9DzIGMPEP2K378+PHDhw+vXr2ClHh46io8VkD8BSnZ4CNwf/78efToEeQaDMgyY0ghCZ8DhhRoECfBN3dBlr9AikfIThvIbg5IeQVJA5BwgEx2QO7rhVQNkGAEDbeygK4tgIwqMzMzQwYbIM5DTjDwlADRAukEQ1atQoYNHj58eOPGjT9//kA2qUJ6fXDbQfpRMXygBSIMmViE6IIYiJyQIH6BqKSQhHgcsuEFfrwxZNwbUunAzYc4AJJHcFbDEGlkf0L6DZCkycHBAbncERKUkFmB79+/Q85kgQxKMDIyQjq4kDEcyKEckMYIBwcH5AwUyHYCLi4uSBuTi4vr169fkOuEIQPR3NzckHCHRMzr16///v3Lx8f35s0bRkZGGRkZSK8fMuIBSeKQLQ1w30IY8FiBtAOQfQep/16/fg05Pgx+WwPkQCvIfckQb0KMgpCQ8gLSeIR0sj98+ACZDIYcGAK5wQpyXjfksmvIlkfIBSOQ6hnS3IY0YOGtV+Qwh9hFCxISApDUD2FDSFrYNYTMhAQChIQ4G5JbMBMARHakkfDQgAQRPK0iMyBhgqYS0g+A9HLgnS1IhoWoR06KkBUucHEKGQICAtzc3JAjqSEre/EYCMnLkN3GkI0Mf//+hZxbAFkQBOnNQ+pIyFAfHtMwpSAaIX0JeAv+////7969e/36taCg4K9fv/j5+UVFRSFbgDBNwC8CGXKA1IuQIhcyvPf9+3cxMTHIKnHI/Ddk3Si8Ow6ZuIXsWYWsLYV0LSCTvpCS9uPHj5CqHV7ZQ6IVElwsLKDDoCBHRTIxMUFOF+bn54eMWv/48QMyUQo5gAHiQXgigcQ+pDUAOYjj+/fvkM4V5Ar5Z8+eQUL7+/fvb9++ZWdnFxYWhhy9ANKMDUMKZ4gM3MGQ6IOEEmTonrpZm4ODA1JlQJYOQEb1//37Bwl5iDcheQfiMAhJuBqGhBSk1oGY8uXLF8hFSZKSkpAtd5ClyPDFTZBD4/79+yckJPTjxw9I35eDg+PDhw9fvnx5/fo1Gxvb58+fIQscxMTEJCQk4Cnm8+fPnz59gtwPISgoCJmMgczUcnNzQ7YUQ8Z1IUfCQpwHWZMGSSKQU9MgXoWUDpDghizF4ubmhqQDSNsE0tSFHLT9/fv3Dx8+sLCwQO7rgFyqCDEf4nE4G1JlQgyHTL1AeuqQi9ggCykh02A/f/6EXKcFCSjI/aCQuRnITirIXD1keAQ53UCih3ISEg6Y5mCKw32HqZgOIhD3ILsBwoaI084BEFsg8QshIY19ZBvhapAF6cwm1Q24wo1scyAaIcaisTEFIfUoJCQh2QTS/IXkQXibGE0jmrFYQxiiBqsUVkFImcjCwgLZowEpZyDdYqzqIbtOIWc/vX379uXLl5A6WFpaGrK4BrKdBJJV4QtEsBqFVRCyJArS54PMykEaJZCL1yC1HaSz+P37d8gRYFjNwSUID1JIGQXxKSsrq5SUFOS2HkgRCukTQ65xg5SukGj69evXz58/4X1lSLkKOaYK0hWGxx3EAXDrICdRwPdkQ1YvQyIL0kuGnHgFOUTl69evkLOpIYbAAaSPB+m5Qu6D//79+7t3775+/QoZov/z58+bN29+//4NWaULSWBw7cgMiPch7TyImyGKIZ0uSJ8VkhohaRVZLyVsyFlPkFt/IPu1IFEAcQnEZEiwQEobiAi+ahiiGhI9kKiCLPuG3EMCmfeG1PmQWVXI2jPIUiyIesh8A2QuFhKjP3/+hMwZcHJyQrZOQxo1P378+Pjx4/v37z99+gTpzkL2dUEWVEN2SUFusGJlZX358iVkQ/2PHz8gG+0hrT/IfDtklQHESZCWDiS4f//+DVluBznQBHKYBmSbIBMTk6SkJGQpGSTRQEoNiEsgIQUhITkEwoZMAHz79u3Lly+QA0ZERESEhYUhjVzIPmbInmbISWwQ/7KxsUGGByANNHiygDgeEjdUHCSBOxWNARnbQBaERDeyCP3ZcI/TzTHIFkGyK4REzjb0D4dBayM8uCAxBS+FIQxI6oU7HpJZ4CohJSM82UMWbUF6Y5BmKFwj3DS4CNkMyAAbRDvkbCzIbQS4zsyH3Fv88+dPyD19kB2Y8AlRSBkCmWWEjHCSun8XEkSQWhxyKCPklC5OTk5WVtaPHz9CStePHz9ycnJC2ugQxxNJQoIXEtSQOS/IYdGQ2+0gvSnIlDa8nIQUBZBhAMhyHMgoHeRkYki5DTkbmI2NDVKuQpIBpGKDOAxyCCjkVGf4ftd3795BLgCGXJADsffbt2+QQICQEKMgbIiTIAOfkBVwHz58+PTpEzc3t7CwMMQ7DAwMIiIiYmJikKYSpF8LcQMyCQkHiLHwHA2ZbIbUTRApiBZIEoWwKSQh/TpIHw+yzglShUFaNhDDIV6GhB6knCFQDcMzEiT+/v79+/XrV0hFBUmREA9AxCGDHl+/foVMD0CGPiCj0JCl/+/evYPEE+RaQDExMciuOMgVTJAF5V+/fhUUFIQYBVnzDRmcgczzMzIyCgoKfvjwQVVVlYuLC3LDBsQ/kCiENBrgQQzxMKSShpyhChnxhkx1MDAwfPjwAbK+XFRUFDKiDvEyZI0GrtYoJMlCLoL8/Pnzhw8fIOeICQsLQ6arGRgYIAd0QA6vgeQxyKDWz58/IZkNckAdJLXBiyFIioHEFk1JeEkHCSJkkqb2DjbDIR6HJxh4WkJzJ5oyNNkRy4VnN3gIQNIVJBPBBSEZECII0QJpGUNKD8jAJqRTAleDrJcSNuRePMiSC0jlBCkHcJkJWXTy69evd+/eQbZEQoosSGkGSQaQZcOQg5AgIrhMwyUOCYQvX768efOGj49PUlISovL9+/ecnJySkpKQCTL4ThCILDEk5KwFSE0DcRukyocENWS1LORqWsiSK0gzAtJzgJTD////hyzr/fTpE6S8hZw4DQlJiGkQ90MiEdLVERAQePXqFSMjI+RARsiCXAgbsmYIMh8BGWJEW3oGMQ3iO8i+7e/fv0N6z5CzMMXFxSErgdjZ2SH9FsiAOaRTC9GIRkKsg5gM8TtkUBbSFIBUlpDEBkmcuKpzNGMJciHz2ZABf8iSQEgDBW4+3FJIToEYyHjv3j1Izw/SUoCohoycQGIU4nrINh7IfCdEJxoJORsLcoQypJ0ICSPIPm5Im/TBgwc/fvzg5+eHzBxAaqB3795Bjhb78uXL+/fvmZiYIIEuICDw9u1byKK7r1+/vnv3TlxcnIuLi4eH5+PHjzw8PH/+/IEscIBMt0CaaZBQhoz3wvuXEMa3b98gCUtMTAxyrxRkSgOy+YqXlxeyqAoSGpDqEHKpFqQlCDkXDNJOhCzNeP36NSRY/v79KyoqCjmNFnJlB2QI+vXr15DTuSUlJVlZWX/9+gXZb/3kyRNBQcEnT56wsrJCdjFCRrAh2QYSPRASLZAp4UIMhJDwWgeSheAkMoMSuwahXrjHIYEMISFzUciuhTQ3IS0/ZHE4G5c5cHG4SvIYVDQHYhSEhPgXMmsDcRhEHEIixztEBEJCVEJIiAiEhIhgJSG9ELgyNAYaF5IOIQUTpJyBZwRIFw3iMHjRDykxsdpLqiCkvQVxLcR8iGMgJ1p8/vz5wYMHkO0YkJ39yL0ZZLvgPkIWRGZDFEBIiDik1Hr27BnkVHxubu73799DDj8QFRWFXAYFOcEK0m6A6KIRCfEXpJkC6epABlQhZ92/fftWQ0MDUpFAzi/CdboiLudBDh6G6IKEOaQLBOmAwXVBpCDz05CzNhkYGCBXCH/9+hUSBZCpQ8gYJGRyHRKSkMFFTk5OyAJYDg6Ox48fv337VhQMINcIQcY1kdM/3GoaMSAxDiEJWsECmeWGJ0TIciFIZoAcWcXKygpRA2muQhIuprmQdAMZ8IG0tiAbgrm4uL5+/Qq5AFFUVPTbt2+QgywgTWBIo4mBgeHLly+/fv3i5ubm4OCQkJCA7BWGjGC/e/cOstQLMigBcQ/kQkPIDUWQvchwL0B8DhkJh5SzkHHjly9fvnr1SkVFBXKuKWTHM+SENshEBcTXkIIY3piCuBMSf8jr396/f//x40d4IoZ4HNKwgITbv3//eHh4IPdgQw4GYWdn//DhAxMTE2QlNmT4GlIGoYUnxAtogpRwqW4gJY4ZnHohQQRpOA9OF9LCVZDuAqbJBMUh9TqmRogIXDucgV8cUgrDyxZIpoDHBaRKhkQQZBAPYholJMRhEIsgfoFkfMj+nM+fP0MWAUEOw4dcMEOJdXC9kLnn9+/fP3v2jI2NTVpa+ufPn7du3YJcIgcpxCDlDKTFD+mtwrVTnQHpLEHaN8zMzJBOJ2R2FjKtBhnJh/RrIQt9SHID5HAISEcIEsuQ/aW4DIHcBPzt27dHjx5BmkSQDcQcHByQ6WeIdkg3CdIdgszZQyb7IGXvixcvIH02SJ0NGduHaKFW+sHlfvLEWSAnLEJqIORlhCwsLJCVz5CzQyEjEpBNR1htgpy3AlkLDknQkOYtZAMZZL5dSEgIsiga0jWEnBcDmW+HbAKDjP98+vQJcvLUvXv3IHv1Pn36xM/PD2nX/P79GzJz8+rVq+/fv4uLi0PSK6QfDHEbJF9Bci8kSUEWkbGxsZ09exZyAYilpaWoqCikxQA5OxNSZ0MaxRDHQ9Zvw8eZIWH17du3ly9fQqQgyxYgbUnI0gZIyoBkb/B57KDU8+XLl6dPn/Lw8EBONYN0rCUkJCC7syCKIaUMJKVCBtghfqGchJgM8Rflpg1pEyAJAxIUEDakOIYHOyQuIFJ4fApXAK8q8CgenFIQj0O6m/AUgsyFK4C4H86FMOAhAJGFkxBxeLDAGRAFcC4yA2I7pJSEjHNC6iGIUXCNkEoaUowiS8EVQBjEk5C4hnsZUmqdPn0aUtlISEhISUlBzv349esX8cbiVwnplrx+/frt27eQDhxk6A5yECGksIUMKUOqRvymUS4L6YBCbIRMjUGGpiFTdZBFzpAztiCDo6TaCJn7h5AQH0EKZEjViGkapJv75csXyJkQfHx8zMzMgoKCELdB8ikk4iBsyGV9kAFRSLEJGX8VERGBdNsg/UNIooXvT8G0d2BFQHPDkIM/IGO8kN4hZHsWZPUvZO/z79+/IddLQeZ6sToasiscMmUCabx8+/YNfoMQZDkVpC8ImbeHbFT//fs3Ly8v5MjN////Q0IfMnqsqqoKOdAVcuoyMzMzZPct5JotSGcUkoch2RISMZBeO6T/CokYyGgGNzc3ZLngly9fnjx5Igle5v3ly5cXL178+fPHwMAAUjpDCghITEMG6iGTuJBBbwYGBsgNFkJCQnxgADlr/t+/f5CFWl+/fhUQEIDcKvH3719Ix5eNje3du3eQRZuMjIyQg68hLQN4+xduO8RHWEOYDEG4aZgMMkwbulogKQTZ/ZAAgeRPSMpBjnpklchsXOYgqxnMbIj7kf0OqYdwiUP8gks9RBaZhIQn3DQIA6IAEryQdA4Xh6iHFNAQl0CqW0guhhS+EMVwlRATIIohJpNHwo2FlxWQK1Mhp9NLSEhwcXHBlyyRZwWmLsjI3N+/fwUFBb99+/bq1SsWFhbIJYCQvhCkNQAJcEjxhWkIFUWQewIQB/z69ev9+/ePHz+Wk5OD3GQDmXpjBQNSe+eQ2ITMdUKiDDkeMT0CKeS/f/8uIiIiLi7+7t07yPGTkF41pKcEMRPSU4IEFLz7B9njxMzMDFkzCx8ThSiDtOEwLR1wERbIOi42NjbI4ZSQAeQvX75ANnHDPQypMyAJF6ujIYexQQ5uhCh4+/btvXv3JCQkIKdUQlbc/f79G3IZooCAAKTNCzkkC3LDNuT6h+vXr/Pz80tKSv7580dISEhGRubt27eQGXvIHYKQS6MgfU1IFQtpDUFqSkjWhexMh4yxQybkIT1yiBWcnJwfPnz4+vXrv3//BAQEeHh4IDuP4XkAwoB3bSH9YMg2LQEBAQkJCcghAJBR9P///0P2X0HW+EEuYYSMpUBOIIEcTvLlyxdJSUnI+SGQA0/4+PggQ/eQEIOkFQibuiTcZDiDuuYPXdPgAQKvJCCFxdD1ETEuhxeFcAZEF5wLZ+AXh8iikZilBCSQsYpDBCEKII0hSPhDqgdI8Q3J0RCVkCEuZBsh4sgixLDRPAjRwsjICJkR4+Tk5OfnZ2NjgywmgnQqIGooJCHTc1JSUoyMjC9evIDcPC8mJgYZDICUYJBjNCANdCp2xLG6HBJ6kKFySDhDZv0EBAQgA/KQ+2ohwUVqHQxZxIpc+UHMwYxEOICU5JB74llZWd+/f//kyRNhYWEpKSl4HQQJK0g6gewZgxfUkG79////79y5IwIGkFVdkFYdZN0P3K7Bw4BeU8XCwgLphjIyMkJuw4Bs6mVnZ4cc1AwZSYDfdY/pAch49bdv396+ffvv3z9ICH78+FFMTIyfnx8SWJAVB5C7rp4+fSouLi4mJgZZpAfpQ0O2hbGysr5+/frz588GBgaQc54FBQUhU/2fP3+GNF0h8SQgIADZlQVpTcNLUsj+M0jQMzIyQiYMIAdXQY5xgWxf+/37t7CwMOSEL0grBGIaxEmQmpiNje379+/fwACy/4qLi0tUVBQyeAK5oeHfv3+Qnj3k+BsGBgbIkdGQ9Adp/34CAykpKcgEDKSShuQ6eOkDCVVIxoCwKSchBRzEHDgbHlAQ8ZFAQkIVHgLwHhU88CHjH3BlEAZmyEDEMc2BiGOqH2wikHIQUoRBfAFxOS5xeEAhK8DjKYhpEF0QNlpig3PhDIhpEC7ESfBODyQPQuYvIdUSJMtA3A/RSBUSUjRBViFBLlSFnEQIKQogHqGKRZBuw7t37z59+vTy5Us5OTnIXlvI0DQkNUJ8Cq9sqGIvLkMg3TDI/CNkySpkXkBBQQFyzwRkiB6yxgVSSuMyCqs4JEIhhTY8i+EakYYU4zw8PJADoP7+/Qvv88C7XuA+OejSC8hpEJBlWZAGBGQLExMTEycn5/379//+/cvGxga5OhaiAGTBoMQskBlNBgaG169fQ6oNHh4eyMFvkMPbIBOfkJwAWamP1SNcXFzfvn2DnMcGr8IVFRUhJ01C2jh//vyB3FsJOWCTlZUVsnIYcvo0ZMEb5LRqyIrBd+/eMTAwQNZR/wADyM2GPDw8AgIC8ANLIQUEJBtD2JAl8pA5XcjibciIOnyhAeT0Ll5eXgEBAch4MqQ9BT+TC5IgIKPKnz9//vnzJ6Quh8xDQzLn379/ISeNQObRf/36Bbl+BJKLINsieXh4GBkZv379ChkkgazVgtzrDDkMHXIUNnKxRcU8jxxTkPwAsQhZfESxIckDORAg4z2QFhu8cIekJTwhg2kOHsWDTQrueDgD4kI4F87AIw5PThA1cBKSeuEBCGdAFMC5cAZEHBL+yIKQSggiAmnyQoZM4R0peJkOMQFiL4RNPAmv9iAOYGBgUFBQgOwnhOwVhoxvQfb9E28sHpWQY3rv3r377t07SFdEXFwcspYTvpMKUmlBuJD1R3gMpFwKkgUgp/1DajXIqZOQCTj4eC8kLsiwDlKtQDRC2BAbISJoADIOz8bGBlmQJSMjAzlFEVII//z5EzKyCCk2IQ0mSBX79+/fV69effv2DbLZ9cWLFxA1kJiFbOTFlWjR3EB/LgukF/vv37+PHz9Cxt8hJ1MKCwtDbmiA7HyF5Ao8rRhIHQypiv79+wc54VpGRgZynCaksv/9+/ezZ88gy5RUVFQglRmkdQM5ufT379+QrURCQkKQmXlI6EO6pJAJdm5ubsg5HpDRXUh7GRJwkPiAjEtAcilksAXSk4Y0eBkZGXl4eCBtPUid+vXrV8gOK8hkA3xxHWSLG+TYHcj0MOTMash6LshRXJBBcnZ2dkiUQ84ch9xa+OXLF8i9mJDlZpAlbBAXMjIyfv78WVpaGtLOgCcOeEJHKwchvqMKCbeLKqYNA0MgAQJpOQ0D7xDpBVwJjFRxXNbBzYEzICrhXGQGRAqNhCiAFDiQwgdSZaIpg3NJrYYh5kNiH5LvIOXDhw8fIJfywqslSJ1ErcFhyGFekMtsINsxIEfvQc56hCyYgpQS9EmTP3/+hIyA8vLyQnoakMVAkOtteHh4uLm5ISc6wIOaPAb+6IMDRkbGb9++QQ5lghw8CSl1eXl5IffqwhffQGp0yD3KkCOQnzx58vHjR3Z2dj4+PhkZGT4+PsiuHMgMMbxegNs1eBig+4Y5OTlfvHjx9+/fS5cuKSsrc3BwQCpgrK6ETPFC5mwgjURWVlZIjXXv3j1I5ScqKvrz508xMTEmJibIvqBPnz79/v373r17kKpXUVGRl5cXshT+379/L1++hFRITExMgoKCPGAAGceHdI7fvn3LwMAgLi4uLCwMCX3I0jtIjxMyTgXpYf/48QNyZCZkcQFkLAVSZUL2q0FampAVgN++ffvx4wc7OzsvLy+k0w9ZZcbAwAA5G+TBgweQA7y4uLggdS1kcB6SRT98+AA5JhpynokAGEDCBHJm59+/fyHXXEMm2iF1OWRTE6RDBmlYYA1nXIKQggPeb0MufeBsSNMEUnhBggvTNFzicJUQ0yAkZGwALoXMgCuAOAxCwp2HrBLChquHcOlGQnpRENsh4QMh4U6FJF0ICRek3HnwAKHcKKqYgMs9cHEIA0Ii2wgRgZB4wgeuAMKAkPD0A+fCGZAYgWQHOAkZlIYU3BCVkDoJso8fwoaQkNoUoh7iWkgMwkmIdriD0ayDaEEm8XTUkJXB2ZA6G3KiLWQtMeSgD8haFsiqFIgjIS6BrNn88ePHgwcPZGRkeHh4hISEIFf5QsyEKIOQcGdDpJBJuAJkQTLU4zIHzViqcyFFH+Q8sp8/f0JueYJsQIXEO8QvyEH3798/SMMF0sGFVK5fvnwRFBR88eIFLy/v8ePHBQQEIAf4//nzR0lJSU5OjpmZGbL+BrJpCle5hysc4AkGLQQg7mdkZHz79q2YmNiPHz8gB49A+mNoivFwIfaCNixBpnLZ2dkFBQUhFRKklsWqGbLFG1KlQXIC5BRNyKwtpKvKy8vLwcEBOaH7/fv3kIv/3r17JyUl9fz5cy0tLcgoE2SJ1tevXyE3NUEOmYIMQUCWekEOeX4DBqqqqjw8PJAdzJCsAmm9Qk5agGwfgnSpIYdCQ9ZGQU514eDggJwuAtkoBcmikP1nkIwNmbqGlAI/fvyAnKTDw8MjLy//8OFDyB2lkBQDcTOkdw6ZM+bl5RUREYEMPv/8+RNySN63b98gTQTIkXiQI2QhwYUcqrjiGFkNkWxIdDIwMMDNhDOINGF4K8MaGhBBOAlJGBDu8A4Ngr6DFH+YynCJY6qEiMDVI4cqpPcJUYBGwtXDUzJcBJLC4Uu3IJEFKbIhnUi4URApiI0QXXApPFbD1ZDEgIydQsoiSFMe0puE3IIAKfQh9QfEJXfu3Pn48SPkpCrI+izIebfwIogk24euYlZWVsg4K2T0EVKuQiIO4ilI9EHYkHoXwoaIQ0jIGqBLly7dvHmTi4tLX1+fn5//1atXZ86c4eXlhQynQ7bCQkyGTCdDzKGQhMx1Qm6QZGJighxLBanyyDAZdAsV5AphTk5OyHIqSD2PyyxIiw++7glyoeHbt28h+8y4ubkhe38hrRtInQS5ZJuVlfXPnz/W1tZfvnwREhL6/fs35CBJyES6uLg4Hx8fBwcH5ExwSCbk4OAQERGBOAxyIDPkeEt43oOkfggXUjdDzhL7////48ePIR6BrMyCeAfeOIVohKxuh2iBHMQByTbg1VSfILsIpKSkIMPmkH3JkC4m5KQRyHk3vLy83NzcLCwskBbx27dv//z5AzmuHbK6DbLAD5L/IeZDMiTEjxCHkUpCUiGk3QBhw81EFsQ0FqIYU5xCEbjt8EKTQgNppx2SWuDmQ2IEkkvhMTL4fQF3P9UZcL/DGRAr4Fw4AyKOi4QrgzCQEx5EBKIRM+VAZCHqISQkyiCjF5C5Q7guuCEQlRAuhMSlBpITIWooJ+Fta8gAG2SXKmRVClwKcv4ixD3CwsLPnj378OGDvLw8ZMEN5JAKyl0ytEyAdJyYmJggNQUkrCABwsjICDk0CVKUQXIlRBCeTyGe/ffvn6io6OfPnyHreyB9HmZmZlFRUSEhIQEBAYiBEHMgE5R4epgQM4kk4Qd4/f//H1Jf/P79W1xcHG4jkeZAAAskOCDpho+Pj5OTE1KdYCZriAbIIMzfv3/fvn37+fNnyKKtd+/eQaZyIVUppK6CbBp+/vy5mJjYtWvXlJWVIZuG+fn5IcdfvHr16ufPn5D1VpD6G5LfIL6CnELFx8cHPpJMFNLrh2dFSJqGxApkATNkfhdSHX7//h1yjDNydEKUQS7RhGR1yLw95IBoSMMKMtDBwMDw6dMnyIGUIiIikKNLILurIfug/vz5w8HBAZk+h4xjQxa1cXBwQBajQTYH8/DwQE74ghyJDglASJqAuBzChosTw8CMF0hQQEiIgRA1EBIuDuFCrEBmQ0TIJuHmw02gouFwMylnQFyF5lpI3oYYDlEAISEiI4qEeBwSPpDcASn+IIGASxwii0ziNwduMrIWSKKFWAe3CGIOhETO9ZDWNmRdMbz3CSnEICYgmwyps+Hi8AoYYguySjgbYiOcC2fg0gIpJSC1LyRTw9cNQSpmyGwIpFj4/fu3qKgoZLujkJAQpOSBnBsF2RkFt45sBi53km0gjTRCZhI5ODg4OTkhK4cgAQWJMkhIQqoDiAMg/oJkWIg4hPz69Ss7O7u0tLSoqOjDhw8h1+7JysqKi4tDSmPIyl9INQ9PaRAziSEh9mKqhJz7BFkLBRlqhXS+MVUSIwLqqkFSNmRoGs7G1Wr4+fMnNzc3ZIvO27dvhYWFIcsNuLm5hYSEIH3ZN2/eQK6W/PDhAzMz8/37901MTB4+fKikpMTFxQW5lPfp06e/fv3i4+Pj5+eH2AUZl4B0ryELJSD75yCVOiS5Q5wHWcIAyTCQFc4MDAw/wQBSjzIzM0O2QsFPuYLEGWRQAh4lkO1JECkWFpYPHz5ARpIhQ9mQszsge4shWQsybMAFBt++fYOMPjEwMEDOOYFYLSYmBtEC2QcF2XAMOYYGYhFyvOIqlYiJOTQ1WI3CFIQEGqY4mmnDmAuJBbgHIQEC545wBjxhwBmQAIFz4QyIOC4SrgzOgKuEiEBINEFIfQnPIJCyGKIGEk3wUhgyzAtZqAE5LAlSrEO0wA2HG4VcAUOMghhLFRKymhoyTwdxBmRODeIdiCMZGRkhJ0O9efOGnZ1dUVFRWloasjwWop0qLhlChkDmERgZGSGHV//8+RPSj+Tk5ITEMrzKhMQppORHjjtIRn7+/PmzZ8/4+Pi0tLQgO0WlpKQge2Ihw92Q06QhhTNkHzNVQglykNSXL18gC8EgC9r5+fkhA8CkWsECOdkR0i6DDDXDEzFWsyA9SPgthywsLFxcXJArsSBHUvz69evVq1eQzuWvX7+EhYW1tbV//Piho6PDzMz86tUrPj6+Fy9eQO6whCREyNkdkO1MEO8xMDDw8vLy8/NDDr+EJG5IuEPqYMiij3///kEWzrGysn79+vXNmzdMTEyQ1gDyhDxkvSWkmofsQIfUxJCl0ZCakpGREdILhzhJEAx4eHggqwaYmZkhN08wMjKKiopC1EBau5CWOCQxffr0SUVFBeJOyAI/SP6HjHxCwhMtJUEEiSch2uHlC3JihbMh7UpkMyG6IAkaWZxyNsQlEPMhpkHYEHGIyGAg0VI1JF4wHTbYnI3pQhqJwMMHmQGxCxImaOIQQYgCZBJZGUQNWnqACEJISEUFYSNrhIjD0zOEC8lEkCWWkKY5RCOkKIDLQhI53DR4RCMzIAYiOxvOhrgWzoUz4HbBRSAMyEpSCBtyZzDkrvTfv39D2geQ8uHv37/v379//fr1hw8fFBUVhYSEIGtUIbuwcFkKMZYkEpc7qWgFSe7BpRgyTgk5zent27f///+HbFKSkJCAzATDHQyJUIg5yL6DiEM2u4qJib169UpAQODx48fwYWpIdQ4Z9IYkG8hpThCj0Ei4dWjiyDYiS0H2W0PuCGBhYYHsvIW0JJCVEckGDUpDGiaQ3TuQxVOQNI3ViP///3/48IGVlRVyxgqk+wg58PnPnz+fP3/+9evXmzdvICvFBQUFhYWFIQvimZiY7t69KyIicvHiRS4uLmFh4Xfv3kGyE2TxMOToj6dPnzIzM0NmgiGnhUCmeCGZDRKykOYC5GRpyOp2yFmskLleyCQu3PGQ3eiQqIW0ISAhDokSyEw75CSvT58+/fnzh5ubG7LFCHJPJxcXF2TPEmTjL2QhHGR9NWRFGMTXX758gUxyQwaXIGNQkIofMnQGmXuGuAriAFwRDFGDn0QuZSAqIWZCQgm/yRCV+NVAzCSehJdxEMOJ10h/lZBGEqa9aAEy+D2C6QUKReCJCs6AGAjnwhkQcVwkXBmcgVyhIrMhyQauDM6AVJOQGIGQkNIJviIaUohDUjtkEg1ShkCcBCm+4BohtkDspXq0QkbsIIkK0hP49OkTZOYLPigK6clB9mvIy8vLyMhAPPLt2zc+Pj54ZwDi+BFCQnpWkFENyJQoZIQVUl9AOlHwGIQUp5CQgcQmPB65ubmVlJT+/ft34cIFAQGB92DAwMAAWZYLUQbpL0EKfMjIK8QoSkgODg7I1QDgQdif/Pz8kGqCPDNBS7Tgw/GQiU94dxOriR8+fHj79q2AgIC8vDwnJyekA8rHxwfp3X769AnSD4Zs7YXcnQAZOv/w4YOIiMjLly8lJSV//vwpJCQEWczFw8Pz9evXb9++QU4u5eTk5ObmFhERgWwdhtz7C4kVSCcPkgN//foF0fLr16/Pnz9Dzn8RFxeHNFK+f/8O2XkGUQyJAEhyh+yYgkQ/ZEYHcsrV+/fvf/78KSAgICwsDDn/DOIqeXn5jx8/vn79GnKjsJCQEOQWSMh1y5Ae/IcPHyAr5cTFxSGVLrwJDKn+IU0BSPMNkjKwhi0lghBj4QkXzoCIQ8o1ZDYldg1FvchFPNz9WAXhsiOQgStAcInjCiJc6uHJEs6AmIBHPUQlZPgKMmgHyVMQLZAzLuBqID0KSEkNqRohHRSICMQu6pKQg6UgC1ch+24ho6AyMjKQYhqyEBVyXxPEavj5SJAdjN++fYNs3oXIjhASsjCNnZ0dcnQJBwfH58+f37x5A+mYQeIOOSggJTk8HuFlKQcHh6Gh4aVLlyB7XjQ0NJiYmCAXckAKeXhqYQEDau3/hizzhrgHMolJ0dzw79+/IVtxIOenQM6ZglRjkOVOEAWQ1VU/f/58//7979+/Hz58CJn7FBQUhOzS+f79+5MnT758+fL161clJSUODg5IHfz58+e3b98yMTF9+vSJm5sbctEhNzc3LxhAJmsh1SErKytkFBp8YwKokQiZi4XkMcjtT5D6DHIj5q9fv/78+fP06VPIODOkRw5RAPERJKog07qQehoSu/Ba+f///5BTLT98+ABZ8KykpPT792/I0jNIp//r16+QpVifP3+GDF9DtiwzMDA8ffoUcjE4CwuLqKgoZFE3xArIDiWIAyDNcEgLHcJGTl6ksiGhAdcFr1khLW7IaAGyLXB74YJoJsCNQmNAlEFIiF6IXRASIg73LJpeSDcFUxDep8EqRVNBSKQjN0cgjkcOH0ocAAkQSkygj15c7oREK6YbcInDVUIMhJBwQTgDrh3eC4GohJBwZRAupFCDxAty3oEkP4g4vFqFcCEnPEC6O5C2L2TBB2SwF3LIAaRfAXcJRCMk3uGCcAbEJXCHwRkQ9RCXwEmILGTtJ+TwAMhJCerq6pCNnf///xcQEHj27JmEhAQnJydkrBGyqQQyePb9+3fItCLcXohLICSaRRDrICSaArh2SAqHqEFmIyuAyyIrQBbEYy+aMjgXsjcEEsvwJXUMDAyQMh8yRA+ZMof0pjg4OD5+/CgqKgopxpmYmJ48ecLFxcXHxwcxE16gQUYOIKvNISuEIEu6IGdfc3Jyfv36VVRUFFJPQ4pxSIUCGYyEmAYpkfDUwbjCB14HQZpKkAFayHphyLgpRPzz5888PDyQE6XgNiIzcJkPUQNqIUBUQLwBGWSG3Mn84cMHTk5OAQEBSOX68+fPt2/fysvLv3r1Sl9f//379yIiIpCLOSETJJB5YhYWFsju4X///kGcCFmoJS4ufuvWLU1NTWVl5a9fv0IuDIYMOH/58uXVq1eQaV3IySGQlZCQygziMMj1RJDcBWngQE54gdz6AKka4S0pyGZiyKZ4yK4hyMgVZGAZMsQB2ZQMWWklLCwMSTH//v3j5OT8/x+0o5yXlxdyGRlk3gIySw2ZwICcdP3161c2NjY+Pj7I+WqQ7AQJVkgmgZAQkWFAwktJiF8gyQbCHvwkpmvhBf3gd/zgdyGkb0qJOyGZBRJNEDayaXDz4QxIFQJXDyklIM16SC0CaZJCqm1IKYxsIIQNSdJw9RBBkkh4KoK08yC9Bcj4HOSQg/fv37948QJyRhBkrI4k88lQDAkTCAkJJThJhmlEaoFs4IHXf5DmESMj48ePHyHHDkKOxoQsBObg4IAM3f/////BgwdPnjwRERFhZmaWlJTEZR07Ozukvwe5oh5yEOHbt28h99pBVngJCgrCoxuXOaSKQ1IIpEaHtOcg26Ig4y6Q05mEhYUhykg1HK6ehZmZGRJ2kIYMpF6E9CYlJSU/fvz49u3bv3//3rhx4+nTp6KiosLCwoqKip8+gbbVvn///s2bNwICApANQvz8/JC4FxISgmzS+vr16+3bt8XExN6+ffvp0ydNTU1RUdFnz56JiYn9////zZs3f/78EQYDSGNHUlIS0pKCb72FZEhIUwtS10KuXITsm+Lg4BASEoIM00PyJ6QmhuiCtKcgToIEE2Ru+MePH9++ffv69SvkbC9I55uBgQFy9Rhkld3fv395eHhevnz55csXyFpHSC37588fyCIyyBGYXFxcAgICHBwcoOYMC+gsFHi2hLgBEtAQN0DYNCXhFkFCg4p2wU2Gm4ksAvcsJJzhagYPA+5arBE0eNw55FwCT2lwBoVegKQl5PiCsLGaD1EMaZdDRsIgJEQLZAYKUstCROAVEoQLNxPOgIjDlRH0C3y0HFLacHJy/v3798OHD5BD73/8+AEp+t69ewc5OEFBQQGrmXCPYJUlXhDiEUiPH+4LahmO3xmQohtiF6Qn8/fvX8gEOWSFFKQghcwBc3Nzf/78+dWrVx8+fODm5lZWVoYcKPbx40estvz48YMNDCBTsJBjj9+/fy8oKAi5K09UVJSPjw9yJz11SyFI9x1SB//58+fbt2+fP3+GVPmQSwSYmZkh1yhAbMfqfvyCLJCJYUitCTn/+f///9+/f2dnZ3/06BHkMt1r1659//5dQ0MDsjn4y5cvoqKiDAwMz5494+bmPn/+vJqaGgsLC2S5AaQdBDmd482bN5ycnG/fvpWTk4Mo+Pfvn4SExNOnT1lYWJ48eQI5ZkwCDCDn4/z69Qty4AZy+v7z5w9k1cPfv3+/fv365csXyMZcZmZmfn5+SBUIiWlIhoSs4YIckQ2/dgOyeen79+9vwYCBgYGdnR28+YgLstSNkZER0tJhZGSE3EgBObcLsveXgYEBcg/J9+/ff/36xcvLCzmfBbI6DJL4II0JeOqHBD08Y0O4NCIxbYE4ibrWoWVvNJ9C7IK4hBa2Q8wnj0TLmfDKGOJa8swcybog8QsJPUjRjzUxEBlEEBMgZkJqTQgbq/kQKbjJEL0QLoQN6RNDSLg4ZFQZrheSHtDMx2o1xAT8JKTwgYxIQ7ZcsrKyQhavcHJyampqQi6uhxzKi98oCmUhORTSJoAUhpC+B2S3CIWG49EO6ctB1t9AtiFBtnEKCwtzcHBAelCQTAeJl4dg8PHjx58/fyorKwsJCf369evFixecnJxYbYHMJUPqOcjQJqS9JS0tDZmeFxYW5ufnh1zqA1GG1RwyBOGBCbHxDxhA6l3IpmTIZCXk4AoyzAcN+v758wfSz/v9+zdkxRqkouLm5hYXF3/69OmrV6+kpaUho8Hy8vIQ6x89egSZ59i7d6+Ojs67d+8gR1VA0jFkVQLkpGh1dfVfv34JCAhAqlLIVUXMzMyfPn2C1PqQ9caQw58/fvwIWe0MGWKCeBvkShbQhYyQtsLPnz8ht3NDakdI1ELshbAhg1E/f/6EbEGD1PQQ89+/f//t27dPnz5BjsESEBDg4uKCmMPGxvbs2TNI6xWysQ+y2wqShiBT4+/evYM01jg4OPj4+CApg52dHTKEDpmggoyKQFwCKZggWZ286Bk8uuAFHMRJkFIMXqhBBAczCXEqJF4g5HCKnYEKeUiqoGJIQqIJkp2RjYVbBPcpXCVEGWTlLSTvQ6oiyOotyPAeZIMDpEKCyGIaCDEHnluRzYdbipWB3FuCTGn9+vXr6dOnkPFYQUFBFRUVyJgt5NYmrIbA7cUqS7zg79+/Ib1SSB0M6RRBjkAg3hAqqnz+/LmAgADkcAjIuD2klyUoKAg5M5ibm1tSUhJy3TvaMUfIzuDk5IQsy2VgYID0QSHdRchaJfh5wz9//oSYT61mB6QmgpQYkA4xJIqfPXvGy8sLWX0M6axCDvSADCoju5wYNqg3DEkBEPt+/vz55cuXT58+8fHx3blz59+/f5AmhqSkJB8fH2Sj9K1bt9jZ2SH3CisoKHz9+lVLSwsybgxuKPyBHL7x9+9fyOyIpqbm8+fPIfXTt2/fTpw4AbnDGX7QCSRjQFoDkKwCqXEhB1dBRpYgN/hCphkgJCTmILkF4gVIRoKIQFZnQBoykK4t5GYxSOtBTEwMsk4bcv0nZAXZy5cvmZmZv337Bmmv/f//n4sL1FGGNG8h4/OfPn2CaIRsVIBMPMOX5EHKAni4Q1wC59KUAQkBZBuR2ZRbDTcNbhEkaUJMhggisyGdD4jIYCAh7oeQcPcgOxsuOMogJgTg1RgyA159EmMCmhpI1EBiBI2NSxCiDGIOJDVCSEjzHUJCehdwh8GTJcRMSIkBYcM9AuHCpZBtgdiFTEIWb0P2R0AGwyD3tUNuVoWUPKysrF++fGFjY4Nsa0HWTnU25PIDeIUHaS5T3RZMAyGlMcReSN3Py8sLuf0WcvY+ZEET5BDmb9++qaqqcnNzQy54ZmRk/PDhA2RfK6bJEBFIAwtymDGkD/39+3dmZubHjx9Dxmgh3WhIEwTPUiyIacST8AQDSVqQMVRIhPLx8f369Quy5RUyVQypbog3HK4SNKALGQeGXET//v17yK1BFy5cgFT7fHx8CgoK7Ozsnz9/FhYW/vr1q4qKyoULF6SkpD5//iwlJQU5NvLLly+QJW2QCzUhR2tB5pKfPXvGzs4uISFx7do1SAvxwYMHSkpKbGxskLOwIePGkOoWkhkgDUzI0SeQLv/r16+FhYUhUQsZvoYciQKp3ZFTG2R6GLLMG9Ja+f3796dPnyAd2f////Py8vLx8UHGkSBzGH/+/Hn79i1knl9UVBTiccgE+c+fP79+/Qq5KhES1pClmJBYgSzOhBxVDencQ3IvRBYeynRjwMMBf9lBhnsg69rgxRnEg3BBSKzBZckwn9ZaIA6G2wIvauEiowxSQwAe6XAGqSZgqoenW0hKhkQTsvlwNlwlxBC0Xgik1IaogQxTQdrKoPKOBXRmEZrJcGPh4hBjCZKQLAApqSCbGCErVSUlJSF7TL59+8bJyQlZYgLp6hA0kxIFkHCAlIGQOgnSHKHETCL1QsIcHoCQaUTI0cWQAUjIJhTI8QwSEhKQFeaQ3T6QjiYei/78+QNZGv3jx49Xr15BukyQoX4hISERERHI4jhIxQFve+ExkCQpSMcMft4ZIyMjLy+vsLDwt2/fIHtWITuVIYFPkskQxaBkCelocnNz//r16927d9+/fxcQEODk5GRhYZGUlBQTE/v169fbt28hVxJxcnJ+/vxZQ0Pj6dOnkpKS3Nzcf//+ffjwIRcXFzc3948fPyD3THFzc/Pw8EAmbgUFBX///n337l1ZWVnI6mt1dXVIPxJSpUGGjCCrGSFVLKSvCRnJ+fz586dPn+7duwdZOw4ZJYZ0muGZB+IZSDUASXaQBRGQ7PHmzZtnz55BTrj8/Pkz5GgRyOgNZM/S+/fvIYdIMzAwyMjIcHBwfP36lZub+9OnT5D13pDpB15eXkjvGTKUDUlGkOlkyHYFSJMQ7pjhxIBUY5DCEeIviAiEPfhJSKsWUkbAXYvsHbjgKIP4EMDMgMTrJUYlVvORBeEVLSTrwasfyJAsxApIgQDpJkK2zMFNgCcArAxIkxpiCC4SYhSkBoIMg0NugoFswYD0SSB9YiYmJjwnHUI8gssW4sXh47qQUVlIJoU4knhDyFAJqfngnSJIowdyuiTk1oBv377dvn37wYMHfHx8ysrKd+7cgWwwgWwBgixRguzTwWo7GxvbDzCALNyBHKgMOehJSEgIcp0u5MJEyHZtsjumaLZDSgzILYJfvnz59u0bZF/479+/IXtk2NjYID06yHkS5NXEjI8ePfr58ycHB8efP39evXoFWUX87NkzLS0tSG8VUml9//791atXb968kZCQEBMTY2Vlffnypbi4+Lt37759+wZpgzAxMYmLi3Nxcb179+7Pnz+QRYOQTjZkBxHkZA/IVDapwQTfVQa5EQyS3yBpFxJSkKQGmQqCTA98/PiRlZX19OnTWlpaV69eFRYW/v37t56eHmStNeSOZMg4EmRDG6S1BTn349evX5BbptnY2L5+/fr//39BQUHIZirIej/ICnPIimtGRkYeHh7IxA/ESWhxCWkfYApCWh4QcYhGCAkRGVEkqR6HJzmIRkjDH5KZB1W4QRLn4HESLvfAmykQBZB5IuTKDC4O8Qsk2CFsZBKer4lUD9eLph7ChWccOJdU9ZCCAuIdeJ2EOf4JkYIYDrELIgIn4f6CqCGbhBiOqZ1UcbgJEI0QEiIIOdEP3lWAH5kAkUUjkTWiSZHKhYcVJDNC2j2cnJw/fvzg5eX99u3blStXvn//zsfH9/PnT0hvB3I3HbzOxpWoINXH79+/Hz9+/OnTJyYmpnfv3rGxsenr60MWf8GdColoeKMKLg5n4PIvvOKAlMmQZANptEFGeV+8eAHpAT59+pSHh0dWVhZuJjIDl/kQcUinH+JfSCUFmX4FHWYJP0sZUj9B9m9xcHCAZs/Bw/cfP36ErE769evXgwcPfvz4ISUlJSkp+ePHD25ubsh9RK9fv4ZUYHx8fJA+LmS45tatW5KSkpCDY379+gVZmQyJJ2TXE2RDTguBHFQJ0Q6JdcgKPUhrFELCPcnCwvL48WNJScl79+5BzsbS1tZ+9+4dpBN/+/bt169fQw4MgZzRATkoG7LE8c2bN58/f4bswWdhYeHh4YFcHgWp7CHN3t+/f0O2JrODAaQ9TtAjowqoEgKQ2Ec2Ck8eRlY2yqZnCEDyC+U2kmoOXD28XIYwIB1cRkbGHz9+QJb1wsfV4I7ETEiQMhSuYJAzIEPfkAwC8Qs8NOjsckZGRsh50YyMjN++fWNlZYXcFPDu3TvIOCWae/C488uXL9+/f4eM7YuKirKysr569ermzZs6OjpohpDHRW6GQpIKJNIhO824ubkhI7uQjazi4uKk2gKpgCEdUUhvAbLEDNKZZvn58+fLly9//vwJOcKCiYmJj49PSEgIsmAKsmP606dP3759gwx/i4qKcnFxQZYKP3nyBHJ6FA8Pz9u3byGrkSG99f///3/9+vX379/Pnj2DbMmFLCeGJAtIA40kn/Dy8kJWa0OG6SHTtJCxa7RaGXIIpaCg4IMHDz5//iwqKiolJQXZmwQZ0/8GBpAWFmQkQFhYmJOTE7JQ/O/fv58/f4acbQm5woGPj09QUBDSC4dkY/gwF6RnD1+0hbZEC48HIXGMR8GoFP4QgCQkNDVYBdHUjHLpEwLwIhXOIM9euHY4A785cGUQBnKSgGc6yFQUJL9DNmLAu92Q4hjZCrguZMHBzIZ4AUIiV8b0cTOkDoOUk5ALCCD7lyBLX0XAAHLdAuSIYmT1kCjD6k7IamTIeh1eXl4BAQFBQUHyRoCxmg8RhMQ1pDsHSRKQ4eGPYPDjxw/Iul1paWmIeuJJyBwBRD1kPBWykA0yqscCCS/IriHI3CcPDw9kDAF+/QXkBA8BAQEREREpKSlIIr5z586jR4++fPkiISHBw8MjISEhICAA8QAbG9uXL18+fPgAmWplYGD49euXoKAgZJgaslYZ4iDiScjgA3I8wWtfSOMCkuAgsxGQQ56fPXsGcZKoqOj///95eHggG6ueP3/+5s0bSJUMOd2Gj48PcmEi5LTOd+/eQa54ggwJ8PPzQ5bL//nzB9KIgxyqAmkEQI77gAxcQMIUv6cgMQ1Rg8yGiIySpIbAaBiSGmJY1WMGI3IFhlULVkGILohp8NwKEcSqHpcgRAumORARTF241EOOP4SU9RASUrxCsirkwhVIAQIpCSHmQEiISggJqdUw7R2EIpBl2/BzF+jpQrTYYWJi4ufnh2xShRzCDDm6ErIGFhKk8OFf/O6ErM7h4eH59OkTpBjnBwPI0mD8epFl4TGLLAgpvSE1CCTcIEOqf//+hVQNkKVY3759Y2Nj4+Xl5eDggFzhg2YIHi4jIyPkqEtmZmbIdXzMzMyQywlBg8ccHBySkpKQg6ggp5BAajJIAgWfW8IGiVdBQUE5OTnICY4/fvx4/Pgx5CQUyLEYkCocMkQMOR7l3bt3nJyc/Pz8kJ1LkDVZkBOe8TgXlxQk20ACETLqAhnEh/sN0leGLLeGHNEFOVdFUlLy9evXEhISv3//5uDguHPnDiTQf/78ycXFJS0tzcrK+v79e8iJr58+fXrx4sWvX79EREQg5+BALqaGTMJDphwgboA0oiEhA1mzDcnGuNyPJg5JrxAD0aRGucSHALxghUcK8XpHVWKGACRZQlIynI2pjKAIcgVMT3Ow2ouWNiCZDrL8E3LaA2TRDSQvQxRDymJIBQwnCfp6MChAblJA4pFu7ocELNw6SEhKSkp+/vwZciUd5BIdyBoryNlKEMXEpBDISQ9iYmKQUy0hZxvDo4laIQ+piSEXFUMuK/r79y+kFoMsYYbsOoNUjiRZys7ODmkxsLCwfPny5eHDhwwMDJKSkoKCgqBDGL9+/crLywtJlJAjOCDznZALMr9+/crOzq6iosIBBpApa8gA98+fP8XExCD74SAD3F++fIHcD/Hly5cnT55ABrqZmJjExMS4ubm/f//++fNnyNjvz58/4WO8RHoGUg1Dwh0SwaDY+/8fsiweeU8CJPFBTsOWkJBgYWGBDOV///799evXHz9+5OLignTN4RckQ65Ugixr/PXrF+SkaD4+PsjgM6SmB60pZwFNpUMaSpCggNT6kKM3IZ1jXEs54G4mPuURGTIjUxkk60LSACTGISEMIUdmmFDia0h4IptAXkhiVoQQczDNR7YLk02qObjUIw8GwrMeZB8jJHdD9jtAFrJA+mcQoyBFDVwLpgsHpwikLkQLc1IDn2yvIVsEccOvX7+YmZkha2sg9+hAJvIgssj5FxLUuKyG3EkPOTYRXiDj14LVKIi9mFLw8W3IICtkmdT3798hJ5+wsLAICgry8PBA7nF6//49ZIE3pjm4zIf7FJKuIP3V379/v337loeHh+Xdu3eQnbKQe5q+fPny+/dvSK0JOQ1VVFRUXFwcshnpzZs3//////Tp04cPH/7////lyxf4jRZMTExv3779/fs3ZEAbshpLUFAQMicPOdMcMn4LnxLA9AMeEUgwQaIZ3maB1HyQ7jvk3hJWVlbIvDWkvmdmZv7165eEhMSLFy9ev3797NkzcXHx////8/HxSUhI/P//HzL+LCgo+O7du8+fP//8+RPiZshmcMjmY0hOhmRUyDYnyNA0pD6GzL3jCn08PoL7BY+aUSlcIQBJ1hASXg3DEwYuXaPidAgBSDUGiRRIIifPUlLNwaoe4gB4woAMpMGTDdyRkBUn8LY+xMGQWhliAkRk8JOQrR9wl0PKJXp6AdIOgAQUIyPjly9fIMdKQ076hMwRcHJyQjp7yIrx16mQegfiO0gXCLJcF1I4gzRThiHFOyQBQOYcIR1FXl7ely9ffvr0CXKI9Pfv3yFLo0i1DXK8F8T7HBwc4uLikJ3QkLF60GJxJiYmSDX55csXyDSwpKSkgIAARBASiF++fGFmZhYSErp69eqrV6/+/funpKQEmfplYWH5/Pnzr1+/IBOukBXFQkJCEhIS8vLy8LOwIbvEICd1QEZ0SfIJ5JhQyEQCZOAFksIga8d+/PgBOQcbsl+Zl5f39+/fwsLCt27dkpOTO3fuHD8//71796SlpSGTwezs7JDTPCAHXkKW4UFEREVFBQQEIMeWQs6LhlS9kA3EkMNxIH759esXpO8LuWAK0rgm6CnkIoCe2YOgw4aWAkgwQsih5fKR4Fp4jUihZ0k1B1M9pAKGdEEgBT0kzUC2qEJkISKQbhCknoaLQwqZIZRP0ZwK4aLVdhRGCh7tyNZBgo6dnZ2bmxsy0AjvvUAOn4IrhjQaILED0YVpBcQLnGAAOUYDflgKpmLyRCDJALJyipWVFXLn77dv316+fPnjxw9FRUXIkcaQEzVIHZf+//8/ZBwecsIXPz//dzDg5+fn5eVlvHfvHjMzM2Qh+O/fv1lYWG7cuMHJySkvLw9ZnAZZIP3169dHjx69fv2ai4vr7du3YmJiSkpKkCFZyM5gyLEb9+/f//z5s6qqqpCQ0Ldv3yC7uckLFDRdkOiBVHWQ6IQMcTx58kRbW/vWrVuQhoKNjQ2kJcHBwfHhw4eHDx9CerSQbb5iYmISEhLwkz1YWFhev379/ft3cXFxyPWfkLECyA5gyNAHGxsbZBE4FxfX1atXv379amBgAFlrBnEhJDFB0hCchEgRQ8KTIJpiSAWPJoi8jxNTaliKQLIf3GuQrAIJc8h6QIgUJGFA7t2CiBBJQtIVkYrJUAZxKhkaidQCTycQj0BIPHrh6vGoQZYiNX3i8i9cHMKAkHjyC1wBsmMgqzogXVi4T9FUQrgQElkvRARCwu1FTk5wKUgdDF9rApkzxhVucGdAGBAS2V5cbIh1EBKXGrg7MRVA+oWQNSuQOIKclg85sIGbmxuyqBjibOJdBbeIoMPgKunMgDgMQlLRakgFAVklANklBBn0hVxB9PnzZ0jHEjSPy8ICOaQZq+3Ix5hAOo2Q4VJIRECSLmQtEeSoK0h1zgJZA/zx48f///8/e/ZMVFTU1NT0xo0bfHx8P378gFROHz58ePTo0ffv3+Xk5O7evauvrw/Zdi0oKPj69esHDx5AdgMLCQlJSUlBzp+CDNhSsRqGJDv40DRkLAJy/NbHjx8FBQUlJCQePXr04cMHFnAwvXnzhpWVVUND49KlS6Kior9//5aVlYVsmoIcfP39+/c/f0DHX79///7p06fGxsaQVgXkWFR4hxuy7eo/eBJaUFAQMkLw7ds35JiApwk4A2sMjQpSMQQgQ1KQxA0JdkgzlopWjBo1gCGAq+aAiENqSkgthdkDxuNsTMUQAyFJCGIgvOUHEYQXBfAyFNMQuI1wvXARmjLgzQhIgEDKW8hOaIgUxHY8DoYoGCUhJzpDhqYh9ya9f//++fPn2traCgoKP378gNzPCFlaJCAgABmyxgw3yLgLJPAh1TBEDaSkgvSjIP0HSGRBbh5iefPmzb9//96+fausrMzBwfHgwQM1NTUmJqbfv39DdtaCJpBZWCCHSf348UNJSYmPj4+BgeHjx4+QCwchVzfz8/OzsbFxc3NDFl1DtENO4oa4g3ISUvWClnezsPz58+f79+8fPnzg5eV9/fo1Gxsb5ICOL1++/P///9u3b8+ePdPQ0Pj9+7ehoeGTJ080NDQgtxNCPA+pgCEHWEpJSUHiAF6OQ7pWkEXdkGoY0sYRFBSENDPh2RXiKUh2hQhCcjVEfJSkXQhAwhmS0OEFJaRbQDtLB63JkNAYTikQ7iPMMEeTguc+TJXIIvCqCMKAGwLRDudCwhBSAkD6mpDeMGRFC6SQhdTHkKIWrhFeAcMZyLZTnQ3xBcQNEC9A5hZZWFhYWVmRMwKkhoaoobozho2BjIyMkFVXkDXYkECDnOLMz88vJCQEqYa/fv3KxMQEWfiN1e+QFIIcL8hsSOqCVMasrKzMzMwiIiIg7ufPnyFLsV+8eAE5neTr169KSkoQ13z//v3ly5dMTExqamri4uIvX75kZ2cXExN7//79tWvXIKc9v337VlhY+N+/f5BRb/hEKSShYHUrGYKQyW14V/XHjx9v3ryBbJri4eGBHPglLS0NaadwcXHx8fE9fPgQMgOkrq4OWfLNwsLyAQwg90FB2gqioqJKSkqQSxpAIcLEBNnG8OnTp0ePHkEG6n/8+AFZEw4Zr4YM+EDCFJK+IWFNhr8gGjFJMowaUVogIQbJLfBCBxIXJIUDxBxMkiRDBlAxJASQHYDpF2QRZJXIbIg5mCSyXmQ2sl7aseE2QupFeKsLMo8LEYSwcbkB4iOILLzKhAtCGBBxCBtSjEI2Q0KG9CCDZ5DdEPDyB+Iw5BIAwoZYBJHFSkIUUIWEeBxuC6QaZmdnhxyxALcC4i84d5SBFUC2J33//v3jx4+fPn36+/cvBwcHDw8P5Hb5f//+sbKyCgsLy8rKQq6RgIQqJgkviyBtNciINLIyuO2Q02NYIODVq1cSEhIKCgqPHz/++fOnuro6ZOKTnZ39x48f9+7de/v2rYqKioaGhoyMzK9fvzg5Oe/cuQM5suP8+fMsLCwKCgrfv3+Xlpbm4uKCVL2Q8zmZmZkh06twiylkQEakf/z48fXrV3Bl+uHfv3/v379XVFSELOCCLGpnZ2eH7Me6efPmly9fIFukIbNK//79e/Pmza9fv0RFRQUFBcXFxSHD1JApAcgJHszMzJBu9/fv358/fw5ZCg6pjCFSkFVakKxLoY9GtZMdApBbrSDDOxBDIKUSJJFAREbJoRsC8EE8SNMKQkK8g8aG1EPIxR9EGTIJKZcgJSNcO2YWhgyrwDVCTIa4BLL2BTIVAqmqkbXDe8BwBtwQGjEgPXWI4RB3QraNwB0A8SayIyGKR0msANJ8gVw0wMTExMPDIywsDOmwQrazfvnyBXJ3FqQnhtUQeFMMEguQdAJRCamJIQogUQNJjZDUxcLNzf3gwQM5OTl2dva/f/9ycXH9+PHjz58/3NzckD08kB1UHz9+5OTkVFNTg9y/BDFISUkJssFJWloa0qWGdIghFTyk0oKohDiFEhKSDRgYGD5//vz8+fNPnz5xc3PLysqysbHx8PD8+PHj06dPkGr49+/f379/5+DgkJOT+/z5s6Sk5MuXL6WkpJ49e/bu3TvIISbv3r3j4uKCdOIheQ9yygmkWIdsK4TsSP748SMfHx+kww2ZGIb4CJKxIakcEuiQICbVjxDTSNU1qh4SbpCEDi+SIIIkBQ4uLZCYJcmoAVEMcSeyL5DZxDsJYg6mekgxgSlOHxGIXyDVDCR/IRdnEDdA1EDYmCQkn0KKPIhKZJ/Ccy6y4ZAaHaIRogUSCJDON/wkakjag5uAzMB0BlwE2Xa4IBkMiPMgo3eQvju87IL4BWImJLggvoCIjJJYAeTaBsjo6e/fv3/9+sXHxycsLAwZf4YcQg6pCiFT71gNgYQ8PLQhcQ1PNpBECIkseGqBTJKyaGlpPXjw4OPHjwICAp8/f37z5s3Xr1+1tLQg/T/IumIREZF///59/PgRcufSp0+fIFHOzs4OqZ/+/PnzEwwg06uQziXEAshKMFyOJl4cEjSQwWHIncHCwsKioqKQUXsmJibInDSkuQo5dezfv39aWlqvX7/m5eV98eKFoKDgs2fPWMALuP7+/QtZzAW5jwEy4g0Jmr9///748QNyxAfk7C3I+izImizItRiQBdXEO35UJdVDAF6+QGINksRHbFcYXijDiwCqBzidDYQUYZByDRK5kIiGRzHEp5CBNwgblwvhgQNnQAyEqIfohVsH2TkK2bYEGV+Bj4RDClCIFMQEiC6IwyBOhYhATKY1CbEL4h6ILyA2wlstkDwCcRhEapTEBb58+cLOzg7ZBAW5MxBy6iIkPUAu34OMuUJujoLUbrhMg4hD0g9k7ysbG+gwSnjqhSiALJkGbd99/fq1iooK5DphcXHxz58/X716lZ2dXV5enpeXF35Q5Y8fP969e/fly5cfP35oaGj8+fPn69evoqKiP3/+/PDhg6Sk5Pfv31lYWCCXLH379g2ypxaSSeBWUsL49+/fhw8fPn78yMzMLCwszM3NzcnJycrKCllWDpkShpzFAdnxDNkt/v79eyYmpitXroiKivLw8Kiqqt4C7yTm4uJiYGDg5OSENHAg6RWS3+CdaT4+PjExsZ8/f0I62YyMjN+/f4dMKv/69Qs+AYOWCZHzAyX+HdWLPwQg7S1INwXSJ4BMw8BF8GsflR3kIQCpYyCORK4+IV1V5KoFXutAFGMlkU1AUwCxCJ5tIQxIgQBRiWw+pIiApDeISrgaiDkQLj1JiL1wxyC7Fi4Fl6Wnw4aWXZCKFn5qE+TqIMgt8l+/fv348SOkdoOs1MPTt4SHOSSJ/v37F3JfA6QPDRlBgadGyDwCqEn35MmTL1++CAkJffr06f3795DK9dixY6qqqnJycn/+/BEVFX306NGnT58g1dvDhw8hC6C4ubkh+4UgwU2t4g+yMQnSH4XUcO/fv4ek+6tXr4qJid28eVNYWNja2vrt27d8fHxPnjyB3OkEGRVnY2Pj5OT8/v07MzMzGxsb5PCQx48f//nzR1hYWF5e/v///z9//mRkZPzz5w9kP/Xnz5/5+Pggx+hATj1lYGDg4uKCnN0B2UMG8SMtSEi0YZpMas6BF0+YRg0JEUg4IPsawob4C1K4wAtBCBdSVsJTNqYJxHgcMq4DWToAYUNyDuTycEgKh1yKB7lQHWILMSaTpwZuPsT7EBKSpckzkEhdkAEhuEUQeyEZEM0ErC6EqIdrR9MCCV5MQchxSBBxiAkQEo85kC0lkIE+iPMgCQCSJCAkpLiAJA/IOg+IFVhJiI0QEu5OOBeZAWdDzIFwIdtGICIQGyHugadViCCcxFVOQkyDmINM4hJHVoPMxmU+shpi2KTaS4yZxKihlvvx2AVZjQs5YwBSR0AW8GLVgisc8IhDihHI2AnkpJG/f/++fPkSMnbLxMQEPTkLvKYdskwYdH4FLy/v27dv79y5w87Ofvfu3ffv30tKSqqoqMBHgCH3992/f19GRgayJQnSxYbkFlwOwuorrILwjM3AwMDOzv7hwwfItQqQOwcZGRmfPHkCaZjw8vJaWlq+fv0aslcKMhguKir66tWrJ0+eqKqqQrY7CwsLQ66B+vv37507dyDDCBwcHN++fYMfVAYpWyGNFMggM2SSGHI+NmQYANlhWF0+KkijEIAnKjgDkrjh5SxEHBJBEJI8l3z69ImVlRWyZZwVDCAbVCDmQ1I+ZBMIKysrZMyKPItI0gWxnSQtFCqGByzEHEiDHR6wcPdAxCFq4IIQBjIJUYBMwo0iKIisAJMNsQUiDqnbQJ0JRtCJxBBBCImsDCKCn4T7C6s7IQUdRApuMkQLZDYRMhIDsQIekhD1EEEICdcL4Y6S9A8ByPEmbGxsP3/+hKyCYmdnFxAQ+P79O1UcAxnEhhgFqVAgZQsfH9+vX78+fPgAOXIDspwFUgeDBqVlZGQ+fvwIOePi0aNHGhoa/Pz8IiIiHBwcX79+FRQUfPv27ZMnT9TV1f/////y5UtZWVnIQV+QbgokgWLNCRCnECQhiRVO/vr1S0xM7M+fPw8fPhQWFn78+PGPHz84ODh+/PghKSnJyckJOa4ScvAkHx/f06dPpaWl5eXlIRugIVccQgaQWVlZ7969+////7dv3xoYGLCxsUHWvIELW1bIajJI4Q5xJGSIANKYZWNjg4z+j+YcSODQk4SHOWRyBVLaQki4M+BcSMqBiMM1QrjEkJCjxX///g1e2/ATsnL+9+/fPDw8HBwckCtDIFZABpcgqYIYk8lWA/cFnEG2UcRrRO6FQPwLISHicJdAGJAaCGI4RAReDsC5EFk4CS8u4CLIKuFsZJPhKpEZcPdAnAfJvxA2XBnENAiJJoWmBlJwwVVCuteYghARuF64ZyE36UKuj4WUthApyBpPZPUQcTSRUS79Q+DPnz+QOxMhkQ7prUK6f1RxDKQahiQkSBkFGWfi5+eHbIViYGDg5+eHnO0ImeIEVcO3bt1iYmISEBC4efOms7Pz/fv3+cDg+fPn7969k5GR4eHh+fABtDVIQUHh2rVrkOXakEwFb/dBbCXJG8haIFkFQkKub/rw4YO6uvqSJUtUVFQgbQopKSnInVn37t3T0tJ68+bNp0+feHl5ZWVlX716JSQkJCkpCRnQ//nz5/Hjx4WEhCCr3d6/f29oaMjExCQuLv7t2zfIzRPfv3+HNGMhhS98+RWk3wPJ2/TJOZDUQHzQQUKJePVDVCUkWCC1IKSrgZzk4IkHOTQgWkj178+fP1+9enXnzp0nT578//9fQkJCTk5OSEjo9evXwsLCkIFoyPgSZM8oLvORXYKshlRXwdVjMpCNpTobbh3cI3AGJJtDSEjJAmFjdQNcF1ZZiCDcLqxZDNkETJXIIhDHQEiIyXASogwyw4UmCOFCbIEog9f9cKPgCQyZAdEIcTNcC2SkDRIgkHEUiCFwkyG6IFy4aRBBYkiIOzFVQgzEFCdVPaYJAyuCy/24XIUrHHCp5+fnhyxsev/+PWQlr7CwsKCgIKn3B+MyH1JMQRIJRA2kNoEsIv779y9kwhS+jRaqZs+ePRcuXNDS0uLi4pKTk/v27ZuSktLq1auVlZV//vz5588fBQWFp0+fMjMzi4uLQ66KhKQ5iH4ISUbygmiENzPhof/+/XsuLi5eXt59+/bp6upevHgR0hQQERGB7DV69uzZjx8/xMTEnj59KiQkxMPD8+XLF8hFWr9+/YLsKn716tWPHz8EBAT+/v2rpqYG2bYEMZmbm/vly5eQ2y04OTm/fv369u1bISEhSFkP6ShD1rNR4im476jOgAcUmsm4xNGUDVouxP2QpAUhIUkZeX8wshpIcocMXUBSEakZEhIU//79g2fLjx8/Qk6k+fLli4yMjJaWlqioKGQ3OaTYZWFhgQyiQPQikxC3IYtA2OS5Cq4LzoCYRjsSYhHEF5CKBGIXpPEBmYuFhDNEFqIeIgJRCSEh8QJhI5MQ9ZgkfvWQNAAnkRkQqyGOgVgENxySfiAkZHYfLoVmAjIXogYS0cgGQtjwuV6IsRASoh2uEXLAH+TEe0hIwtMnRA2kRwExkEISYiCmIaSKY5oAEcFlDkSWdiSp9pKq/uPHj+zs7ExMTF++fIEMqYqKioqJiUGuCML0Fy7zcYnDkwRcASSJQlYrf//+/dOnT5AOMWSZMGR0B3Q5kp6e3vv371VUVL5+/SonJ3f//n0hIaFnz56ZmJhcvHjx6dOnkOr58+fP8vLyP378gAwVwtdBYDqdJBGIcyEkAwODsLDw8+fPIeuwzp49q6urC2mqvH379v3794KCgqqqqnPnzg0JCZGUlPz169eXL18UFBQg+7oYGRmfPXv28eNHdXX158+f//37V0FB4ffv34qKipCDOCDLrT99+gS57wJyLNnXr18hE8+QHAhp0kK8ABGBsGlEwj2OZj4kG6MJQooeTMFhKQIJGUgihvRHIWECEYGwIR5HZkNEiCfZwICdnR2y1gayAPv379+bNm1SVlaGJABImfv37188I9K43ADxBfHuQVYPZ9OhRYjmfrjV8GIFUl7AAx9NPTxlYopD/I5sIMRMZHFkXchsZF0QNlwWzoCIw4MILg4xH40LUQYnIc6GmABXCYl0iHY4CfE4RCVcEFKtQtoo8HoazRzkmhiSkODakRlwXciCEOehiUC4aC6BCJKhHq5xkDBwhQMu5+EKB1zq//79++7dO8jpxZB7Gn7//v3q1SseHh5cWkgSR3Y/xG0QErIiDH7Z1NevXxkZGSHrkEA1KeTaJgcHBwYGhufPn69atYqRkVFRUfHhw4eMjIwqKiqQzVJSUlJcXFxoXQFI0iTJlXDFcOdCKnXIuXGQprewsDADA8OHDx+kpaX5+fn//fsnICDw69evP3/+vH79+vPnz//+/Xv9+rWAgIAQGEBmf798+SIoKKigoMDJyfn06VMeHh5ZWdn///8LCgq+efNGSEgIcqQXfNPzp0+f3r179+/fP05OTkg1DJkPRquG4Q4eZdAtBCClFYSEHGQDSS2Q0hNyfgKkxKEkBUK8A7lkGnKbN6SZ/Pv3b8jGQcjmBMhkDwMD6PB3tPQPMYFGJCT3ItdYNLIIYixySEJCHpIxIbIQEUh9A2HDwx/OgJgAkcUkIaNNkDoJohISp3DzIQxkQYgIGgnXC1eJbBdEMbIaOBsihUzCTYAzIKENCXkICRfBbw5EFtJYhJxFDzn8EjnE4AYiu2GUTWcAuRPh8+fPDx8+vHv37rNnz759+4ZrSIYMt8FjGTIWDU8YkIG0f//+8fHx8fLy/vjx4/379/B1YaDjO1hYWCAX7iopKX348OHWrVt8fHyfPn06c+aMo6OjrKzs3bt3eXh4WFlZIT1riE0QCyApGF5UkedueEZiYGD4+fPnv3//dHV1IfupWcC3Srx//15aWlpMTOzChQunT59WVFS8c+cOPz+/oKDgjx8/Xr16BTlV49WrV1xcXOrq6o8ePRIWFubl5eXg4Pj06RMTE9P3798ZGRnfvXsHOSns79+/EF3i4uICAgL8/PwcHByQ8U/IDiXIHcNkeGdUCxVDALLUBdIPg5CQVAfZtUIVi/j4+CDHof/69QvSPoUcawcpRiHnCUNazZDeMJ4tg1RxD5ohkLyGJkgLLqQLCCEhdQ+EhIgg51BIYwiS8SF1MDIJiSZMF0KGGSAq4aZBDMdUjEcEbi9EDcQoiFMhImhFKtwKuEaI+yGK4bIQLiYJD3+4SjgD4heIFmRL/4IBxL+Q5Aq3EW4aRNcoSf8QePHiBT8/v7Gx8YsXL65du3bv3r3Pnz9DdqhSxTGQvRWQeIekEEiks7GxvX//HnLoBRMT09u3b79+/crKygoZmma8ceMGZB0yZOcGpCt59epVUVFRcXFxKSkpHh4eyE5KyEJiiKEkuRgyXAPZKQS5+AGyXI2dnZ2FBTQqzs7OzszMfP/+/Y8fP0pJSUHmzCGblCDD1JB7JhgYGL58+QLxzI8fP6SlpSEz3pDFNRwcHKqqqj9+/GBmZv7+/Ttk5xIvLy+kkQEJhVOnTuno6PDz8zMwMLx9+/bXr1+CgoL8/PyQbUtYPQXPvVhlKRfEFZ647IUcmgO3FxLfyEUDxEAICUkHcMWDmQFxMIRELlUhXoOUthDPQnpUpPqFlZX127dv8N3kkB2rkA1v3NzcX758uX///v///+XB12x//foVsj1PTEwMftsYZLshrngh1T2kqsdVvZFqDqnq4TGCphEiDiGR4wuyrgJNMZwLDz1IhMLF8TAgVkBISHcTUzFkcBhTnBgRiMkQEtkjEBEICbEX7niIMogXIPECYUMUQ0hIjwUyWwwZYINU1ZA0DMmYaAZCXAsRhJAQEZJIiO2YWiDuxBTHJQJ3AMRACIlL8WAQh7gQQkKC9+/fv5CdqPBYgBQmf/78YWdn//r1658/f27fvs3FxSUjIwO5XgnTI3AD0aSoJQ4xloWLi4uNjQ1SuLOxsfHx8UFO53j37h03NzekTQeJQsiwEsHt8BBz4SRkZTak1Pv37x9kQRoLCwtkxRqkI/Lz58////9//fr1379/z58/h6xbhtzjxM/PD+nC/vnzR15e/tu3b5KSkpC7JSDjyUxMTPz8/Hfu3Ll8+fK1a9d0dXV1dHR4eXkhZ3RADuWA5FJOTk5hYeG7d+9KSkoKCQlxc3Pz8vJCevmQZThwN48yBioEIJkfufcAT+4QKbIdBtmiBxnihmROiFE8PDynTp2C3BRiZWX17ds3ISEhFhYWFRUVHh4eZmZmyOZCSEMNsrIPonGUhBR2kAiCFHCQ6gpryEDiFFIJwUn4uDfxkQspqSBWQCo/CJtGJNxf+M2Hux/iTciWDUhtDUlskNYJpCsCcTaEhIQhXDvcFog5cO4og1QAmYKEdPCYmJggPcnfv39Ddgz/+fPn379/EhISkBOcqHshL6lOBW1YgqQSSOUKWfHEyMgoICAAOdwLcuQypBqDtOZItQMyOwLZWgepFCFDf69fv/737x+kpIPPz4mJifHw8AgICECqbUgeYGdn5+Tk/AYGkJ3Eurq6Hz9+FBERefDgwatXrwQFBfX19SUkJISFhcXFxf/9+/fkyRNRUVHIFmlIcmdkZOTi4pKQkLh06RJkRB5yczBkJzGkKCHVawOiHqtTsQrS1HlwGzFLEPLshZsDKYAg5kMSANxASPENKd3g6uGyBBmQTgmk6Ie0KSFr9NTU1DZt2vTly5erV69+/vw5Li7u6dOngoKCkF2hkNUcaHe4ErRrqCuAhD8eX0DCHxJZyDGCSyNk3goyYQapeyAksnqImRASIg4hkVVCqmFIpoY4D64GwqUWCU97EAbEVWiGY02QkDCBzJtABgIhZSCkFIWs3Ia3VzCNhWhHDlI0S0e5xABWVlZIdQO54ADSAGJmZv748SNkLPbz58+QqUzIOBk8XogxnOpqGB89egRJ5ZAmA+T4AsgNDfAkAkkZkDQH6RkT7w7I4AxELyRtQXZM379/n5WVVVlZmZ2dHbIJmImJSUZGBnLBIiMj4/PnzxkYGD59+iQtLc3Hx/fz508uLq73799DjiNhYGD4+PEj5P5jVlZWyMmanJyczMzMkJuRIAdqQ05+hhzSzczM/OHDhwcPHggKCkLaGZDGAeR8bUhzFdNf8EDAlBoQEYh7IEUPhA0PW4h7IFIQEiKClYToxSqFXxDZZEjJgl89GbIQK5BJiCEQNyOTEHFiSFZWVsglXX///oU0ihkZGSFb3djZ2Z88eXL9+vXnz58bGBhISkqKiopClhRAintIkxQylkNeY5QYF0LUQHwNYSOTuMSR1VCFjWwRJONjNRZSOUGkkLXgKh8gaiBpFRKDEL2QuTRIEQQRh5C4zIGEP6QtBYkdiEpci9gh9kLswkpCFEBIuAI4F86A2AJxG0QQYjuEDSnZICIQNoSE6AIthYW1+9jZ2eGehYQG3FKIOIQLsQhZBCJOkIS7B00lqeJwB0A0Qkg0MwcVF+JCCAnpxUFyOnxjN4Tx/v17yCzkixcvINf1Qrat4qqG4QaieZZa4hBjWSD7JpmZmSFLpiGHLUOm3+CpCs6FpyqIZmLI////s7Gx/f//H3KQJCsr68+fP1+/fs3Ozv7t27cfP35AtvxCchErKyukZ8zCwgI5ePPDhw+QxVPc3NyQiXRBQcEnT548ffr0x48fbGxsz58/h5yvqaCgwMTE9OHDh/fv38OPooSUI5AJachFSYqKipCNfZCcDBm7wFUHE+NB+quBpwCI7+jvAEgRAyep6wCI7yAk3GRIoQAh4YJkMCDGQnpU79+/f/jwoYKCAuQeLQcHhw8fPrCysgoKCkImKSAD0ZAOzY8fPyCL+SEr+MiwemhpgQQU/gSGGR1ENssgBQvECuRggViHKY6sBmIpRCUkBUJEkNVQzoY3MuAM5BoRWRCSltBshJSikNoXIgXpmUHGQiGdMMg6fIhRmN6Bi0C0j5Kkgp8/f0K6ZJBlvx8/foRcTfT582dpaWlBQUFWVlbkS/lINZ+66lmYmZkhJ/lBTpyBbBmCpDlIfoA32SCZh9RED0l5EEOYmJggVy9AztV8+/bts2fPIHtFBAQEIJcdQS5YhJy9+fr1a2lpaVZWVj4+PnZ2dkjl/eDBA25u7ufPnwsKCv7+/VtfXx8yu/79+/dv375xcHDw8PBAutSQkR9IlxfSFGJiYoJMPMMnbyANC0hmoG7IEmkarvCEBD6mIRBxCAnXiyfTQlRimgPXiymFRwRiGiQl4FFGhhTcZIheCBfChpCQJAQpeSEiJJG/fv0CzcGwgBI8ZLHVu3fv7t27Z2ho+OLFC11d3cePH/Py8oqKit6/fx9y7ik8iCA9NsjyLsj0DUlWk6QY0+MkaadQMcR2YuIXHjjwtAdnYHUDsnp4JMKzIbIIsna4LkiJBJeCi0NqQTxWQ3wE10iQAS8KkBlw2yH2ws2EpEm4SogyXLKQ9tyvX7/gjX5ITQxxEtwLyAyIgRAFFJIQl2MaAnctptSQFoG0oSG+hixI/vfvH2QmGHJw3tevX4WEhCCXI0CUDaB/WSCdYMgMMcQdkBFpyO4dSIaE1FXkpQlmZmZIymNjY/v37x9k45CEhARk0I+BAXTIJyMjI+TW5Z8/f7KxsUGmqCGJFXL8JgsLC3hq+NvJkyfV1dXv3bsnLCz89etXbm5uISEhyKjC////f/36Bbm7EDLqCD8KkYWFBVINs7GxQQar4VMFkFYCxONDkYTkogFJRhCrqRVoENOQSbjJ8MIOLkIGA7LdCFIBQzptkBsd3r59KyYm9vDhQ8iYzdOnTyUkJF68eAEZnoFYBJlUZgEDyMICiPjwJiFxgcuPkCSHXGdARHCph6uEKEOrPuF2QRiQCILUzRD1EBIigmwFJG1AdCGLU8KGV6twBqZpEPdAPAUhIWrgbEjxBXcwpFCFFHeQcgkyGgdJWvCRdmRjIQaOkuQByNVJv379gqQlyIJcRkZGaWnpL1++fP36lYWFhZubG5J+uLi4IEs4ybOLcl0skJuGIYUOvLqFTOhCEjckuUAGWCDrDkiylYuLC3JNL2Qm/N27d+zs7BISEuzs7CIiIpKSknx8fB8/fvzx4wekWGRnZ3/37p2wsPC7d++UlJTY2Ni4ubk/fvwIOVtDRkbm06dP/Pz8379/19LSgmy1gtwQLCAgANnfCenyQu4sgyyOgCRuSE6AF8SQHAJpZ5DkowFXDIkXiPshXqOnk5BDDO4Syh0AMQpCQrwGMRPZg/BiEV7YQdQQQ0LKO0hbDT67ISUldejQIUZGxjdv3iQmJkIOBoGcDAPJwJDmGmStH+RKFnjxSoylQ1ENSfELjxE4Ax6DaH6HGAsp9SAkpkpIfxFTHNMoiAg8bcBth4hTTmI1EJd1EMVwWYj7IYtbIa1/eOEJr24h5dK/f/8gp+fCHUxGwobrHWUgA8iWHHiZD8n4kOVa7OzsvLy8//79ExUVffv27efPnyHZHFk7ndmMDx48wGolPFWhyUISGZogAwPo2mTIonBIwvr69SvkBKvPnz9zcnI+e/ZMQUHhwoULv3//fvLkia6urrS0NGTJzO/fvyEVLeQ8fcjVERBByFbmv3//8vLy3rhxg5OT8+fPnx8+fGBnZ5eVlRUQEMDTl4W7H8KAkJjOJluE6gaS7RL8GiErBiGxBikKIWxIiYCpFyKLKU6qfyFlE7xChWiHC2KaD28CoknhcieaMoJcSKMYco2muLj4kydPxMXFX7169ezZs1+/fvHw8EhLS0MW5DMwMPDx8cHPmIW7HL8VkO4dpCKBjBvBV1RANEICFkJCREgiIc7A1IIr3DBV4hfB5TBc9uI3DVMWv/nwcMPUiCaCKz3AzYcwICSaXmQufgXIOQXChtsL0QghIRENMRaiDE7CBdEYkFk/iHbIunEICTnGAaIYbiyk/QdptcAjAqIX7h64FggDIgthE0PiUk+qODF2EaMGXkRAHADxNVyQGBMgaiAn/0AW9n758oWDg+PNmzfv37+H39HHzMwMOaIHcp0Pqb1hyFgsZDsupDkFWerLwMAAGZ2FLG9iYGDg5eX98uULfE0JxF8QEuJU0GQZnEUh4/Pnz5BpZsglcTw8PN+/f3/z5g3ktjhRUdH169cbGhp++PDB2NgYspCKj4+PmZkZsi34+vXr8vLykFvn/v79y8bG9v37dx4eHsiMNeQ47D9//nBxcQkKCkJWYJEacBR6cIhqh8c3pIAYor6g3Nn//v2D3DD9+/fv169fc3Jy/vjxQ1RUlJ2d/efPnywsoA30kLbzv3//yEhakOCFlBqQYhQe8vC2COW+GPwmIPuaSNdiaoEHI5EmYCojo+BGMwTiBojbIGxkBUSaD1cGZ0DSBjxJQMyHL8KHjMfArYPs8kK2F6IdogtNfJSLDCBzw9+/f4fMrn758gWy+ANyZhQ8/CHrh8hY8MHPzw+5nQ9yNghkpTOk7r969aqsrKygoCAnJyfEdniEIrsQmc2CzKGEDTkUENL3gqyK4uXlhXQvnj59+uTJE2Nj44MHD5qbmzMzMysqKnJwcLx//15ERISfn//BgwcvX76E3GkI6YVwc3N/+/YNMo4NmdB99eoVAwODkJCQnJwcNzf3z5+gq2EhM8GUOHvY6x3NsZAo5uPje//+PTs7u5iYGOTC0RcvXkDu1YYkWkhWhJSDEC0kkfASE9JNgQQ78uQOcs4nyeSRphhSZkFIMvwOr/DgDDIMQdaC5hK4sRAGfBgZrgwuAolxiDhcEKILXpvCxSFXz0I2WMLHUeCyEPegGQURHCWxgp8/f7Kzs3NwcLCxsfHw8Hz+/PnHjx+ysrKQTa2QqIFMFkCmLyFhi9UorIKsrKyQ3ROQ6xkgK0DZ2dl///597ty5379/Q7qOP3/+FBERgXeFsRpFzd4w5OQwSDL69OnT58+fIcsgHz58qKamxsPD8+DBA1FRUQEBAciK03fv3vHx8d24cQNyUCU3N/ft27e1tbUZGBggjubk5Hz79u2nT584ODj4+fl1dXUh88fc3NxMTEzw8QRcHhsocUj5i2k7qdGMaQLZIhAnIZPwVIhpJkQZpjguEWr5i1rm4HInpLn64cOH379/P378+O7du7y8vHp6evBs+fv3b8hxrWQsgICHJ6QAhbgBMtAKD09MBkQZGokrHODa0dQPNi4ud5LkL8gwLFav4TcfIotc1WE1BI8gsglwN8OrQ2RZeFWKZhpWXXBBiNcgYyeQZANhQ1ILRISFhQWSkCAegeuFWAThQlwCERklsQLIcRH///9/9+7d////OTk52dnZIZULJPQg0wGQ8MdqAh7Br1+/Qioy+OY08ApO0ForNjY2SK3Pxsb25MkTAwMDKSkpSCsfl4FU6w1DOq+QNgLkoogvX768ePFCXl7+3Llz6urqvLy8kK1aCgoKp06dEhERgZzqrKysfP36dUNDQ8jCK25u7v///79580ZEROTNmzeQQy4FBQWFhYUhVS+kPGVlZYWcwUmtuTFcATTUxclLZEPd15juf/PmDRcXFzc3979//169enX27Fk7OztIzoHs3Ifc2QCZjfv9+zd1l2JBsj2kkMV02wgXQU6ikFqK7ACB1Fu4KkgyjIXUeXCN+M1HVgyvueF6IbGPrAYiBUkbEJMhi13+/v0LOXUVcpYwZFkDRPEoSSSA9ID//fv36dOna9euiYqK8vLyfv/+nZOTE97igRypAkl+kFgg0nDIfWvwZUyQ+eAfP348e/bs06dP1tbWkKY8BwfH/fv3IbbQqRqGrGT+/v37s2fPvnz5IisrC78PWEZG5tWrV7a2tpCe+8GDBxUVFQ8ePKiqqvr06VNmZmYeHh4ODo7Xr1+LiYn9/v378+fPt27dgpz4ISkp+enTJ2ZmZshZ05CmBzMzMxcXF2SOnfiAo49KXNGJmf3o7B40h6Fx4Y7BJQ5XgMaglr+oZQ6a8+BcLi4uFhaWd+/esbCwiIqKysnJ6ejo8PDwQAo+yDQKpPiGjCTDNRLJgNQf8NCDl8JwEUgpDDENWRAiAidxhQMeLXC9g4GBy/243IbVX6QaAok4iFGQ+gwigstSPOIQQ+DaIVyIe+BsOAMSp/C4hutCNh8uC2dAxkLhpT+kIwFZ4gc55QNiPkQBxGqIFmRjcbHh6nEpGCHikL3+////h9zuw8LCIikpCVk4DAkBSIaFRxkkzCFSxJCQ09B+/Pjx69cvyBmOr169unnzpri4uKamJuRKY8ihWJCbgvGbSbXeMBMT08ePHyErmd+/f8/NzS0nJ6eqqnrnzh0hISFVVdXv37+/fPlSQEBAQkLi6dOnkJsbREREpKSkIOPS0tLS38EAcrXwmzdvIIdOQ3ZY8/PzQ0a8IcdtQu6E+PXrF+TsDvyeHMmypCav4RpW3Nzc7969O3v27Lt37/j5+SEn6UCmhSDbGCAjgZAyEXLyJUlBASlGISs+4Hkb0iiGmAOPCDgDIj5KYg0QrIL4wwq5AiZDO1bD4bUapBKFGAu3CFkLRCVcGTIXUltDROAkxBCIgXBdkKoXkiwh24shU4+QZAmvOeAJDNkBo2xkAKlTnj9/LioqCrmshYeHB3KFA2QlJiRS4AGOrJdINiRSIHt9v3z58uHDB8iRIJDjsP7+/fvt2zcxMTEODg5ImwCPsVSrhiFLrnh5efn4+K5fv/7o0SNWVlZxcXEVFRV+fv7Pnz9DVsdATrLk4eHh5ub+/PkzZFWqsrLykydPvnz58vv3by4uLkgf5cuXL8zMzPDrgf///w8/eBJSukGO38Ljt1Gp0RCAh8CbN2+EhIQMDAyeP3/+48cPcXFxyEExnJyckEEaSLEIYUOGqeF6iWFAilf4eBek+wIRRNYOKXaRRYYZG9PLEA/i8jimOC4TIObgJyGRiF8NJbIEzYcogJCQyhLiQbgI3HZInQoZeoFUBhARePUAOVIJctIWvJGHrB3OHmVgAlZW1t+/f1+8eBEywvr//39+MIAsXYaso4QcTwuJJlJT3c+fPyFzrJDrYd69ewfZ2iMqKvrhwwcmJiZubu5Pnz6pqKhArtzFbz7jw4cPMf0AcRlEHJKMICQkiUBMhJAQccjsBQsLy/fv3yGnEV2/fv3Lly86OjqQgz0hy7Vu3brFy8t79+5dOTm5z58/S0pKSkhIvHv3DtJ5//////Xr1zk4OERFRfn4+CD3YDCDASSxQtyDRkKcAXEYnIS4HyKFRkKaMGiGIHOR1SMbiKwGDxtyatj///8hd/JA8hIzMzMrK+v3798hm6ohR0NAGhkQ6/AYiCYFSUBwh0HCH86FeBxOIosTaQ6aMoJcuHsIqoQogKuHuBxCQqSoQkI2ATMyMkLuE4XcdAbZoY7VfFLTA674wuURguZjdRWmINx8iAMgJJ74RVOAph2uEVMcohFCwpXhcQ+m1KASgXsQzVW4xOHKIAogJFwQHiBki0PSA3LwQupgiIGQs5KQRSCH+0KWwkCKFIhjIPU6RBek/oas6oKIQNQQQyK7BO47YjRCLIKQxKinUA1kwABuCDyI2NjYvn37Jigo+OPHD8gRyIyMjL9///779+/Hjx8hZ94xMzNDzlvELBgJuv/v37+Q9c+QBV+QW9cg1xOwsrI+ffoUMuUKqYz37dvn5eUlJiYGWUQN2cELkYKP2kJshJBw71CtNwxpC0CuaeLm5lZUVPz69Ss/P/+/f/++fPkCmSp/+fLlly9fmJiYbt++raKiAjlFQUVF5c2bNy9fvmRiYnr06BFkKTVkSzU82eGphuE+QWNAkheEhCQvSMJFU0Z1LmSWEdIugWQqSA8JMtIOPz0H3Lpghiz5JsMNaLGIaQJaqsVUMFxFODg4fv/+DdnAB5m/gdzoBWEPV19T3V8jNv0QGZK4ChNixOGFEla7kGUhrXmImZBUDSk3IPUuhIQXBZAtc8jasZo/zAQh1/ZA7qqH3B//69cvyBLlJ0+eKCoq/vr1S1xcHDKcACFJDQHI8hH4fBOkbP/w4QMfGHz69EleXh5y+sXLly937dplZGQE2QkJ2T3EBQaQ5hcuq6lWDUMO0vrz58/3798hW4xYWFh+/Pjx7ds3ERGR+2AAOXlDRkaGl5dXUFDwxYsXSkpKN27c+Pnz57Nnz4SEhPT09CAHnUAOtoQ4HTJ0ABmCx+UNeFqEJFnIkCCk9oVrgZhG62T648cPSDzBXQLPOZCaAJJbINM/cLeRxIB7Fs5A1g4vQOEMZFk0NtwEuGvRFBDkIptAUDFajMD1EqORSDVMTEy/fv369+8fZGcCJAuRMchMpHWDXBk8hImPX3iygTMGuR/p7Dx4SMIZEAfAuXAGVnFI+QMh8YQwXApyKCakDITvLYacTQHp28GNgsQ1/nIS4qThREK6PX/AgI2N7QMYQNZMffr0CbKkFzI7++PHDzLOjoZU85BmPaRbBTlagJeXl5mZ+fHjx+Li4s+fPxcSEvrx44eenh5kCy786FxIUwn/MmlQbUWtKIGUdJAk+PPnT8jmom/fvv39+/fZs2d///6Vk5ODHOApKir648ePd+/eff78+c2bN3x8fJcvXxYWFr516xY3N7e8vLywsDDkHgiIIZDdnLjcCRmdQJaF+BySOiEkvPSHpFRkxVRnQ6yALK+A1AEQKyCDG5AFF5DhI/h5sxAFRJIQ8+E+gjAggYBVCpexEC3IspBwQxYhho1sKZyNXyPEaiIV4zcKUxaygICVlRVyMtGfP38g96tgqiRPBO54Ihnk2UK5LojzkM3BH7/I6uFRA2cgmzMy2cihBy9VIILIXEjgEBTHVAAXgTAgRQSEDTEfslETMlUHObwIUjyixREkHjFJiMOGH/np0yfIXbqcnJxcXFx///6FHNzx+fPn379/v3jxAn44D6RMJjUEIM0ayFFZoPqSiQki8vfv3ydPnvz+/VtAQODr16/Pnj1jZmbW09NTVFQUFxeHXOXEwsLCzs7OyMj448cP/PYy4ZcmXhY+aA45D+HPnz8sLCy8vLzHjh37+PHjvXv32NnZTUxMtLW1P3/+LCsry8PDIyIi8vDhw48fP8rIyLCwsJiYmEAO6Pj//z/knDDIxCr8qgbiHTOAKrm4uDg5OSGNEkj/G5J/Hj9+DFmDBjkoEZK1yN6cCs97cAbEy3AunAERpx0Jz/BEWgEJEyIVk6EMsigR0hyE768nmA3IsGhYaoEnGzhjWHqTbE9Bsi2kG4psCPHikJoVohfChpBo9S5cEDKlBTloArI0FV4T//r1C3JfHCRPQbRATB45JGSDAyRG/v///+PHj9evXz8AA0ZGxidPnkhKSkIOsIQckExGyECmRCF3AkG0f/ny5f379/fv31dVVX379u3fv38PHToEmZDm4eGBF/7wuIPU3BC9WEmqVcOQQ64hZ2BBOiIQ1/v7+/Pz80tKSqqrq//794+fn5+Tk/Phw4f///+/f/++kJDQhQsXFBQU/vz5o6OjIyEhASlAIUPckAM6IDdGYHU9vC+ILAtJjpByBEJCIglOIiumOhvSA4aMKbGxsUFOU2NkZHz27BlkDT0kR8GvPCPVAZBqD6IL7juCghD1yCSyFog4JNwgbJJIiFEQx0BI/NqR1eNXSYYsZOEbpDL+9+/f169f379//+HDBzKMwqoF7ngiGVgNoYMgxHnIFuGPX3jEITPgbGRzRiYbs6KFhCep4pBSCK4XwoALYlbGkCiA7LGByEKGRiErHiDVMKTMgRgCiXdMcrjGGqQHDNm/Cxn6YmBgeP36NR8fn6Sk5J8/fyBruCBS8PWhxIcGfMjh79+/kIP2/vz58+rVqyNHjvz584cTDCCrry9fvnz+/HlIhEL6wZCjLyC37uK3kWpzw/DDNCB7kCDp4MePH5ycnPz8/D9+/Hj48CFk59bHjx8FBAQOHjz44cOHX79+qaurf/z4UVVV9fbt23x8fJDhaEj3HzKB+hcMIFN9uDwDqfYgCRGiBt5ChHDhBkKSNVyQ6oxfv35BYoKBAbR8ALJM7suXL0+fPlVSUuLn54dUw2A//aXEMXC9yAxIoQAPDYK+g6uEaCSoHlMBxHbitUPUQ2IKbjumsWSLQOaGIZXxo0ePHj58yM/Pr6amRraBQ1ojPISJiSC4YjhjSPud6o6H9xDgDIgVcC6cgUccEhEQEpIXIGwISTDkIYuMIBohZ31AuiJwG8moaSB6hyj57du3Hz9+8PDwQDwOOcD558+fkCb4r1+/IDsmIAt0IP1UknwKadBD1jxD5uZ///795s2bI0eO+Pr6Xr16VVtbm4WFxczMbMuWLXx8fOrq6tzc3JDqhoWFBTISTr/eMGQAGbKcjJGRkYeHB3J8yS8w0NTU5Ofn//Xr19u3b799+/bw4UNhYWElJaU7d+4ICwtLSkr+//9fQUEB0q///fv3jx8/IBPMkMoMfx2MNVjhKRUiC0nlEBIiQiMSsrUAsoYCsoP7zZs3T548uX///qtXr758+QJZQASJJzKSBZqzId6EC6Jx4eK0Y8BthDS8aGcRkSZDnAEZm7l58+bhw4cfPHggJCREpPYRrgwemyM8HHB5H1cBQpI4XDG8vQ6xDsKFkBARSCkBUQ+PGsiiJLggfPUWeWtN4BYNXQbk/uA/f/7cu3fv7t27Hz58+PHjBzMz88+fPyUlJRkYGLi5uTk5OSFXTJLqTUivCVKeQ8ZoGRgYvn79qqioyMzMfPz48c2bNzMwgNwgKioaEBAgJyfHysr66dOnb9++MTMzc3BwQBZ54bcXZ28YHusQ/ZBYh7AhJLICSDPw169f79+/f/PmDSMjo7y8vKCg4Pfv3yFB8ObNG8g5va9evYLccMzGxsbPz29vb8/NzQ1ZDfju3TvIdDqk5YLVFkgvClmKnZ0dsi4ckmQh0yeQ8XCIMggJcS2EhIjgIiFqICSydWjqIYmeg4MDcow2ZGvBv3//3r17Jy4uDmmUQHrGhw8f1tbWFhISOn36tLKyMmT1EMRkgivo0CxFbvlCXAghIY0VTMWQ4QQeHh52dnbIOS/CwsJfvnyBnAkAUQ8xAUJCREgi4dPbkBQCIUkygbqKGRkZOTg4IH1iKSkpLy8vUVHRV69eCQgIkGcRJGQgJCSNQcyBiEBIiAhJJC6NBAMQohFC4rER0jnAVACJL0hjBTJiBDEKl3qILKY5ZIhAvAYhIcZC9hRgNQriNqxSJAlCrMPUAheHuwSiBh4OaOIQWTwkxEAICemN4FKMbDKEDVcJ0Y5cE0OKCEh8QRRD2JCiADJADVkPDBmyhnTFIAZCqhCImRARiAmQwgciDheBKIAIQgyHiKCRuNSjKYNz0dTDxXEx4OohDAjJwMDAw8MD6ddC8iBkX+Lbt28hByFDbuGTkJC4d+8eZMmRqKgoPz+/gIAApIKAjCdjno5H0L/wohJSp0I639LS0kpKSlJSUuzs7MePH5eQkIBUuj9+/GBhYfn16xfk9uhfv35BRi/wpwdq3rAEufqYjY0NsgoasmNaUFDwzZs3zMzM0tLSz58/v3Tp0r179xwcHL5+/crGxgY5MAvSYYcHN67ogaQM5FCDTIBDttNBEi5EFpIciTEQj10Epbi4uCCXWUJWTEAs/fPnj5KS0u3btxUUFF6+fCkiInLv3j1bW1teXl7IFAU/Pz+khoYcKAGZVCBoFyUKuLi43rx5A3EeFxcX5OqCnz9/wreTU2L4INT78+dPJiYmTk5OQUFBSOsQMhVC6/QwCIMCq5Mg4QApyiH5BauyUUHqhgAkKWKaSVAcLY4g0QepRzFNgyxuheyogWR5SLGJNtaNZiamOYNQBHJvICcnJwsLC2S10LNnz27duqWnp8fCwvLs2bP///9//PhRU1Pzx48fqqqqkDvpIauUIUUu/BQKknwH6ePB79hgY2ODL/j6+/evo6Pj79+/P378qKCgoKamxs/PD2k2EW8FJEJx9oaJNwiikpOTE3K+F2RDFT8/PyRcREREmJiYbty48ezZMyYmJmdn5+vXr+vr63NwcEDut4H02CCugTdFIWYik2gpCdIM/P///69fvyC9Z3iyg7QBIRfmIJtAXTakEQBpzkMOyYL06T99+sTHx/f06VMeHp4PHz6IiIhAtq+pq6t/+fIF0pSDeJmdnZ3WjoR4mY2NjZeXl4mJ6enTp7du3bpz5873799DQ0MhsgNCwgsCtGil3DGQBi/kjhoBAQFIYoDUzZQbPgxMQOtlQtqvkMKa1r6DxDUkp9PHRlr7iBjz4RUtnAHRBefCGVjF4d0piCw89CDikOYURApyIAFkPBZyWh8kl0G0QGQh9TdcHMKAaB/8JGSkE34wA2SNNCsrK+S8jrt37/Lx8T1//lxMTAxS+0DmZSEFNcSnaImfGC9Dan1IuQ0xkIWFhY2N7dOnT48fPzYzMxMXF//+/buEhARksoC8apjkldKQfItJQiKYi4tLWlpaTU1NQUGBl5f379+/b9++ffPmzY0bN2RkZP7+/fvhwwd9fX3ICW2QnhlkdBfiT/zVMCQ9QTIwJP1BDqVC1gsRJyZ8KVQDOa4MctoXCwsLZPIAcliYqKjov3//Tp8+DbmOgo+PD7JiiJ2d/du3b5DCCJIgICSFLsGv/cuXL9zc3D9+/Hj06NHmzZsfPHjAysqqoaGBXxftZCEpB9l8SJSRSiKbgMzm5OSEjEh///4dsrwAssQRl/nIeocTG5d/4eIQz0KiA1JIQUQoJOEGojHgmRfZfLhjMBnIyoYiG+J9iMvhwQsRRObCFUCk4Fw4A9KOhPQxIGog2uHiECmIekg98efPn9+/f0O2M0EmRCFlDrJ2SIBDqigIG42EGIhJwg1BY2CqpK4I5IKfP3/+fPv27efPnywsLAICApAL7P/////69evPnz9zcHA8ffr079+/P378gKwhB433srDAt6tANouS5DBIuoUcyQxZhvzt27evX78eOnTo8+fPN2/efP78uZycHA8Pz6dPn37+/EmS4XDFVOsNf/36lYWFBXKdHOTMZMjVC9+/fz927Jient6bN2/09PT+/PnDy8srICAAOb0SHpdwB+FnQAIFogaiF3kEBl4rIyuDKKY6CdlCAJl+h6y6YmJi+v37Nysr65s3by5cuPDixQt+fn4ZGRnI2Pu3b98gExiQrUr//v2DtFup7jA0A798+SIkJPTt2zfI1ZAODg4MDAwCAgLDdSstpNyBFFWQpiFkHRyprVS0YBw2XEjWgIcPJIjo4ztkqyGFPn3sHUBb4D1dOAPiGDgXzsAlDlEAKesg/Q1I0CHHIEQvRBzSS4ZsYfr79y9kxBFSSCLHNUQxxECI9kFOQuZZIRO0kFVpkLMlPnz48P3799OnT1tZWXFycgoICEAWkEN6/5BSGh4mkAAhyaeQQ4gh5TzENEjIv379WlFR8dGjR69evYIsaeLj44MspSbJfEjPk+RqGOIITJsgQ7IQf0IO13716tWjR4/4+PgkJCQOHz4sIiJiZWV17949yFZOHh4eSIMOYiAkWUBmTDENR0tAEC7kOmX4sWGQTA7pK0OursNqDrUEIREDOZoDsj4LsvaKkZHx+PHjDx8+NDc3v3HjhrCw8L9//yCOhIxaQNIQBwfHz58/BQQEICPV1HIVpjny8vJPnz7dvXv3v3//rl69GhgYyMHBAblHCFMxHUTg0Q23Cx5xcBFiGBBzMFVC1mKws7MzMTH9/PkT3j/AVDm8RXCFKma44VJJXvhgmo9mDpp1aFw0xUOXC6k+ISUVxI/wkIFz4Qw0Zcji8BCAaIcbCxlIg1TPkBk6iEpIuQSviiDlKmSsDrm8hZSTkF4yRCMaCbEOTRDiTkxBiGlYxaklCBk6hcw/QqxjZWUVFBS8cePGv3//hMDg79+/L1++lJOTgx8bDBkJg/sFsj6RJCdB7oZhZGT89evX379/IXt2fv/+ra6ufvny5YcPH+ro6LCwsHz8+FFYWPjr168kGQ5XTHI1DNeJxoCcUQLZLg2Z9fz58+f79+9VVFRevXrl6ekpLS1969YtVVVVyAmXWKdFIekPzWQIF5L+IAogiQ+etuCpECIOiSSILpqSkCEdyGp1yBTF27dvf/z4cerUKRcXF3l5eRkZGUhnFLKCDnLOIkQXJycnZI85TV3IwMDw8ePHy5cv//jxQ1NTU1JSUlpa+uvXr1++fIGkJ1rbjst8SGzSIqbgZQ0k30IGSH79+gXJmbjcM6LE4aUSPPyRRWgUFJASH0LC7YVzaWTpwBoLT+RwBsQ9cC6cgUccUuJB6j9INEFEIPtZ4RohUhBlkOCFKIN0iyF5AdInhhSbEI1DiIRsSPnz5w9ktRQDAwMfHx8HB8erV6/evHljbW39+fNnyOpgSF8O0huGXDUEZ6MFODHeZ2RkhNwZCJmFhBwWCVl3/PjxYw4ODnl5eS4urvfv35M3vgiJJqpVw5AjoiD3KkMGYGVkZAQFBc+ePaunp8fDw/P27VthYeHXr19DOoXIaQVefcITE2YAQaQgbUDIWAqkNwypgyGJEtLphLQEMU2grghkuhfiEkZGxu/fvz979uwmGLx69QpyKifk6JLPnz8LCAhA5iog49KQDvGzZ88YGRmFhYWp6zA00968efPgwQPIYd2MjIyQm0AGtg5GcyF1uZAz5yAtHsiB7KysrJAuAnUtGqKmQfIRmuMhZQGa4CiX8hDAVe4TLw6JGniswYtKuDhECkJCHAwZg4X0g+HDdZA9jRBdkJoYWQtE42AmIeU85IpfyJoPSH9GVVX148ePkK03Dx480NPT+/37N3zKD7JqB6IS0kaBhADxPv348SN8ahmyEghyheKFCxf09PTs7e0hUcnLy/v792947BBvPsQ9JC/RgsQuJgmpFCHVJKSU//v3LwcHh7W1NS8vL+S+YUZGRsjyNogySMcFvsQAzv3z5w/k+C1IpcXKygqZ8IOE6c+fPyGL5RgYQHU/ZM4PXgFDQhwy4E58WJChErJMALLj6P3798ePH9+yZcv379+zsrLS0tI+fvwIH22G7CT78eMHBwfH9+/fOTk5IXMMZ86cuXPnzvXr1z9+/AjZtQVZWQBppkBiFJ5V4AEO6d5BAhDSCICEPKQpAJl4hjR+v3//zsLCcuTIkdjYWBYWlgcPHoiLi3Nycr58+ZKPj48ML2PVgsudWBVD9s9BvABRAHE8ZA0kJO4g4nBj4QrQGJA98pBBCEZGRm5u7p8/f0KOYIME5r9//yB7/iDjLnDtEJMhtiCTEHG4MsikGiRdwZMosvshMYJsAlXYEGMxSYjzMElSLcU0GSJCqjm41EMiF5OEDNzx8vIyMjJCijZIvsZlDqR4ghSdyLkAl3qyxSFBCo93SGig2Q5RQxIJdw9EF9x8CAMiCPEdpEMCV4/GgKuHiMMDFlIYwkMGUnhiDrpCtEPOsoBfCIEro0FcBSFxhQNcHI0B0YVJQpxNPIlpAkTk379/kAEtSOEPqUeYmZn5+fkNDQ2fP39+/vx5yAJhMTEx+NEIkO1GEP9CKnJcLoHYAg9PuO/4+Pj+/////ft3SKX2/fv3f//+SUlJSUtLOzs78/HxQcouSFRCdkbB9SIzIKkdMvwDqbMga1YgGqnWG8blPVLFIZPwP3/+/PXr17dv337//s3Hx8fNzf3792/IsAMrKysPDw9koABS4JJqBVXUQ2p6Pj6+9+/fCwkJKSsrv3v3DnKIqKysrJCQkIyMDGRjMWQHG2QjjbCw8IMHD7i4uA4cOPDmzZtly5a5uLhAJtQh55xA2laQOh5P/oQnF7hf/v37Jyoq+v79ex4eHsguusuXLyspKQkLC+/Zs+fFixfm5uaQq77k5eU/fvyIaQLcqAFhQMITYjUxbvv796+AgACkioUsCoVMBhOjF5L04UUtxNJRkqYhwMnJCTmBgZ2dXVpa+s2bN5A9oDS1lHaGQ/IpJeZDEiokEULYyKbhMh9NHM6FMyCGwA2ElPvwXhCkAoC0UCFNTIh6SBUF0QXJiRCHQWQhBRFEFi4yeBgiIiLc3NyfP3+GXI/LwAA6aBreUaHQnZDlxpBTLj5//vzr168zZ878/PmTh4fn////kKXXkMCHhCdauMFth3TYIGELaTNBwhwyMjHoquHv37+zsrJCohziRMguoL9//379+pWJiQlyhRFkzgMyBg73Kj0ZnJycnz59+vXrFycnJ+TiZGZm5mfPnj19+lRBQYGPj+/Xr1+Q2g6yGguyMOrixYt8fHysrKwGBgYmJiaQOQZBQUEeHh7InnRIaxdSMcNjFM6AeBASOJC6BCLCwAA6WxVysgzkJNGfP39+/vwZ4rDPnz/LyMjo6endv3//3bt3kIXTkMYdXDudGXAvQIoJSLce7gY0/8LFkRm/fv2C5D3IlSY/fvyALMeAtzGRFSOzIXkGEnrEWISsd5RNdgj8+PGDjY0NsqxUWFj49+/foqKikDMZyDZzQDRSPf3A8wLEO7jMRxOH6IJnHzgDTRxeg0I6bZDeIRMTE2RjMbzmgPTbINUDJGtAHAPXjsyASw0GBmR5LBcXFz8/P+QoJ+quP4WMqH3//p2BAbRaG7IE6suXL5Czo+Fz1T9//oT0pzEHJCChBLlbgpGREeJIyNERkJsFQIPEEEWDh4TsD4OcRgk59YmRkfHTp08/fvzg5uYWEhLi5eWFHFwF2RNGa5fjKqk/fPjAw8MDWXslKSn57t07QUFBSBywsbFBuvKQtM7Jyfn9+/cPHz78////+vXrdnZ2kLUSHBwc4uLikLV/P3/+hKxcY4MBSD8PkvohfoS4BJLNkLMKRISXl/fz58+cnJyfP3/m5eX99++fuLj4q1evfv36ZWFhAdmyDJm9+P79Oy8vL9lb3CCOgZMQV8G5BBkQ1yIrg5gACTp4cQARRPY+shbIRNf3798/fvz48OHDx48f//z5U1BQ0N7eHpe/IPZCjEUr0dBMhnAhKiFsCIlsAkRklCQ+BCANVhkZGQYGhvPnz3/58oWRkVFISIi6hSbx7iFVJXLsI6cfXOZgph9klRATIGZCEjmEDdEFkUXO41jF4VUvnAHXAjcBIgLRDplSgWQxCBuS6SD1B4SEiMO1w10FZyD7ghg2RCOmSriTKASsrKzfv3//8uULvCsM76FRaDJE+8+fP4WFhSHj0n/+/Hn+/DkXF9fv37+lpKQgM2KQDi5kqxIuz0KMgmwmglRt8K7wp0+fQJ0uiIrBQ0KGTX79+gWZA4bcnPjlyxdOTk7I6DSk1wiZroNsJhsQx//9+5ebm/sG+HQwLS2tzZs3Ozs7q6ioQMIa0jji4uL68eMHZDc9JC55eHgePXoEWVYgLCwMOXQaMs8BuRMCMq0LWewHyZ8Q36GlWnh8wxmcnJxfv36FXGb15csXQUFBCwuLp0+fQmaCv379+uTJE0gYfvnyBXICKsTkIUrevXv3wIED79+/FxMTU1ZWVlRUvHDhwqNHj8TFxfH4CLl8QQtSrLrgauAasSobFSQYAnx8fJcuXeLk5JSQkIAM0sCTLkG9g0cBPBnAGRS6DS0Q4MbCGRDz4Vw4A1K/QmThJORQP3iihYtD1i1CxpwgspDpUkhbH7IYBTLBB6mkIeZAyh+IC5Frerixg4HBwsICWbEFGTqFdOghVSNVnPf161dIbwoy1rh//34lJSVeXl5WVlbIxmV2dnZGRkbI2jHIviZc9kKWbUOWXkNGPTk4OA4ePAjqy+HSM1DikNsgODg4/v37B1kCx8fHx8LCAm99fP/+nYmJiZubG3KVFWTennauhaRaTPP5+Phev3595coVZWXl1atXMzMzCwoKMjExffnyBbKgDJIgvn79Csk579+///79+927dx8+fHjr1i1zc3MGBgYJCQnISDtEDWTICHLNFLK/4G6AZw+IeyA5BJIhIasSIIeonDp1SkVFhYeHR0NDQ0lJiYGBgQMMICYzMzN/+fKFl5cXYgiFJNxtRJoDySHIuiBs5LkciAjEQGQ2RARCysjIODg4KCgoCAsLf/v27ePHj2/fvsWlGBJEEFlIUENEIAUNxEA0EqIYWRAS2pjiyGpG2bhCAHK20dOnT48cOXLv3j0zMzNJScnXr18jp3NcegeDOHKygaQBSHog220Q7chGwdlwBsRwOBfOgIhDSHgFCWfAnQpJ5BBdkDoYkuAhdS2kJobsKYAYBekcQ9TAO8dwYyHmQJwNUU8MiUs9xDRiTMAPICcoQ25zgZSfkFFSSHcOv15iZBUVFS9fvszJycnLyyshISEkJGRqaiogIAAJK0ghDym7IMc34TIT0v2FnCEBWa747ds3FhYWHR0dUNGNS9tAifPx8UFWY0HOi2ZiYuLn5xcWFubk5PwDBpC2G+QITEgLbkCcCjnRm4ODQ0dH59ixY1FRUTIyMs+ePYMcIA7p4LKzs3NwcPDy8kKuvbx3756srKy6uvqNGzcEBQXfvXsHGT9BTveQaRsuLi74YB08vcIZEP/C0zeE8ffvX8h09e/fv58/f3779m0GBoagoCB+fv4PHz7w8/Ozs7P/AAMuLi4BAQFqJVOIY0gl4SUF3FOQpAwxB+IjCBsXCRnSh6wYgBwjBzmlHJd65CIJbjsexaNS1A2BDx8+GBkZvXjx4sqVK+/evTtx4oSDgwMxEU1dZ1BiGjzZwBmUmAbRCw8BSG0HyQ5o5sO5cAYkMcPLDWQGLjbk7luILCSvwfc1QW6Ih9QQkNliiKsgToJogYhA3DyoyF+/fkEuE4TUwZAhX4gHqeLOu3fv7t27V1xc/OvXr9LS0pA5U0h3iImJCcKFFOOQa21xXZkDH+aErGd6+fLlq1evPn/+DDl2dNAt0WJmZr558+a5c+d+/PjBzs4uJSUlLi7Oy8sLOY2ZjY2Nh4fn9+/fkO1AXFxcA1idQDqUvb29ampqAgICb9++ZWFhYWdnh2xc/vLlC3xZxOfPn79//75ly5aoqCgtLS0ZGZnfv3+LiYlBLgCBTBVDFP/58werjyD5EzNhwbMHJOVBjja1tLTcs2fPnz9/IDdw8fHxMTIyQmaOIXewDGy4YfoCMiMFKVwgZQ3cX1gVMzAw/Pz5U1xcHDLFCNkpCEknuNRDxCGGQ9ijJD1DgJ2d/devX58/f1ZRUfHw8Hj16tXfv3+puEaBPn6hdfrBZT5BcWQFEDY8B0GKDsipF5AeMDyjQQINctIcZHaTjY0NUhxBdMFrYojKQUhCJgG/ffv2588fFvDx0ZC1VHDvU+jmb9++SUhI2NvbHzx48OHDhyoqKlxcXJCFWpAzLCHmQ+57gAz1QUTQSEikQMai//z58+LFi/v373/9+lVISAi0ZOfhw4doGvBz4d6DxxN+9aTKsrCw/Pjx4+vXr5BbGyEj0iCHMjJCjEKzF+4eiCycxCUOV4DJQDYZoh1SewkICEA2w3z79g1yf9S5c+e4ubn5+fkFBQUhN8xDFsJB6uD///+/e/dOSkrq4cOH0tLSf//+vXv37u7du9++fWtubu7m5sbExARpZHz//v3379+QCV0ODg7Icl9IxH/69Onfv3+Qq4Egd4hCLmwGzeezsEDWA8OHBCC3KH758uXWrVtGRkYbN258+fJlRkbG79+/B3ZFNGYgQwIWUxwS+JjiHBwcHz9+/PXrF6TShZyuDhnJ/P79O4TBzMz8+vVrMTEx5HSCZhTcXohFEBJSHqGphHDhCiBcOIlLHK4AjUGqejTtQ44LKWggC2cgt51C1kl8+/ZNUFDw27dvkBkyfn5+yKwbZMvH4PcmrngkmK4gGiEkpGdJkmchzWu4RkxzICIQEtlkiAiEhKzLhRgCGZGGsCEkRARS40LqYMhuC2TTIN6E1CUQXRBZ+Ng1hEs5CXcwmlHwzgncJRAFuNRDZDFJyLIbyHZqiEcg3ocs3X/06JGEhASksQJZn/Tx48dTp06Zm5u/ePHi169furq6vLy8r1+/5uHhwTQc0p1AdiHEeRArnj59ys/PLyEh8fnz55cvX965c+fs2bMCAgIWFhaMg60ahqQYyAGe7OzsXFxckAtz4A0NuMcgoQDxM4SNTOISR1aDxkY2GaIdMvf+798/yFEYkFL75cuXu3btYmdnl5SUVFRUFBcXhwxEQNIxZK5FWFj40aNHwsLCJ0+e/Pr16/379yELpgQFBZWVlSED15BRYmFh4Tdv3kCaRWxsbJycnL/AgIGB4dy5c8+fP5eSklJSUuLi4oKMhEBmQX7//g2poSHnhkIOkdmyZYuEhMTt27f5+PicnZ0h926+f/8ezZsDy4UELKYbIIGPKQ5p7UKOsmNkZIQslIDsvf7w4YOmpubz588lJSUh56J8/foVUjFjmgOxF24LnAERx1QPV4AmhUscTRmcS6p6uMYhyoDMe127do2FhYWfn//nz5/MzMw/fvwQExP79esXpEUrISHx7t07SMwO4LwSSSGMKx7h6QeiAEJCCgqI+RARCAkp9yHiRJJo1TDcBEwD4SIQk+FcCANejUGqBIggnIRUPJA6FVJFQbrF8FoZbibEvxCNEDZEF0QEoowSEpc5cPfDLYXYgks9RBaThByoBznHEBJNkNW+kK3VENMgbfovX75ASpjDhw8/efLkxYsXDg4OGhoakKYkpskQEcjBmRCTkSOLjY3t4cOHb9++/fv3r4iIiIaGxsePH3fv3i0iImJgYDDoBqUhrRVIxQbZswVPiBB/0pn8+/fvz58/IQNokF4sZKeak5MTJycnNzc3pGMKmR74////hw8ftLS07t27x87O/vv3bwUFhZUrV4qIiKirqysqKkIiiZmZGTKpwMzM/OHDByYmJjk5uT9//rx79+7Dhw9cXFyQDVp79uy5d++etbU15MJENja2P3/+fP36FbIEDLJ+DzJTDtk6xczMfOnSpfv378fExEhISLx+/Zrso8bpHMh4rIPs4+Lj4/vy5QtksOHPnz9Pnz598eLFmzdv2NnZHz16xAMG8KY6LtMgeQyeN3ApGxWnJATev3//7du3e/fuiYiIsLOzP3/+HLKH/vHjxx8/fuTh4eHj49PU1ITsPPz8+TMldo0ovfDkDWdAvA/nwhlYxSG1F6SrAFGAzIbLQvpz////h9z/BmkkQZYjQepvSHcIoh5e2UAMpAMJtxfZ8STZC2lwQLo0kAVWkGbH379/v3//zsHB8efPHxEREU5OzpMnT7569YqdnR3S1/r27ZuiouKbN29+/folISEBX7tDpO3//v0TERFhYWF59uzZixcvODk5f/78+f37d0FBQdBWKyJNoZsySPhCljhBSkxI1UU3B6BZBNkTBTl84/Hjx69evfr//z8XF5eiouKfP38gu6ogLSnI8XJKSkpXrlwREhLi5+d/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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "from PIL import Image\n", "pil_image = Image.open(\"foo.png\")\n", @@ -662,7 +626,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 9, "metadata": { "tags": [ "remove-input" @@ -672,13 +636,198 @@ { "data": { "text/html": [ - "
# my-python-robot/my_cool_arm.py\n\nimport asyncio\nimport json\nfrom typing import Any, Dict, Optional, Tuple\n\nfrom viam.components.arm import Arm, JointPositions, KinematicsFileFormat, Pose\nfrom viam.operations import run_with_operation\n\n\nclass MyCoolArm(Arm):\n    # Subclass the Viam Arm component and implement the required functions\n\n    def __init__(self, name: str):\n        # Starting position\n        self.position = Pose(\n            x=0,\n            y=0,\n            z=0,\n            o_x=0,\n            o_y=0,\n            o_z=0,\n            theta=0,\n        )\n\n        # Starting joint positions\n        self.joint_positions = JointPositions(values=[0, 0, 0, 0, 0, 0])\n        self.is_stopped = True\n\n        # Minimal working kinematics model\n        self.kinematics = json.dumps(\n            {\n                "name": "MyArm",\n                "links": [{"id": "base", "parent": "world", "translation": {"x": 0, "y": 0, "z": 0}}],\n                "joints": [\n                    {"id": "waist", "type": "revolute", "parent": "base", "axis": {"x": 0, "y": 0, "z": 1}, "max": 359, "min": -359}\n                ],\n            }\n        ).encode("utf-8")\n        super().__init__(name)\n\n    async def get_end_position(self, extra: Optional[Dict[str, Any]] = None, **kwargs) -> Pose:\n        return self.position\n\n    @run_with_operation\n    async def move_to_position(\n        self,\n        pose: Pose,\n        extra: Optional[Dict[str, Any]] = None,\n        **kwargs,\n    ):\n        operation = self.get_operation(kwargs)\n\n        self.is_stopped = False\n        self.position = pose\n\n        # Simulate the length of time it takes for the arm to move to its new position\n        for x in range(10):\n            await asyncio.sleep(1)\n\n            # Check if the operation is cancelled and, if it is, stop the arm's motion\n            if await operation.is_cancelled():\n                await self.stop()\n                break\n\n        self.is_stopped = True\n\n    async def get_joint_positions(self, extra: Optional[Dict[str, Any]] = None, **kwargs) -> JointPositions:\n        return self.joint_positions\n\n    @run_with_operation\n    async def move_to_joint_positions(self, positions: JointPositions, extra: Optional[Dict[str, Any]] = None, **kwargs):\n        operation = self.get_operation(kwargs)\n\n        self.is_stopped = False\n        self.joint_positions = positions\n\n        # Simulate the length of time it takes for the arm to move to its new joint position\n        for x in range(10):\n            await asyncio.sleep(1)\n\n            # Check if the operation is cancelled and, if it is, stop the arm's motion\n            if await operation.is_cancelled():\n                await self.stop()\n                break\n\n        self.is_stopped = True\n\n    async def stop(self, extra: Optional[Dict[str, Any]] = None, **kwargs):\n        self.is_stopped = True\n\n    async def is_moving(self) -> bool:\n        return not self.is_stopped\n\n    async def get_kinematics(self, extra: Optional[Dict[str, Any]] = None, **kwargs) -> Union[Tuple[KinematicsFileFormat.ValueType, bytes], Tuple[KinematicsFileFormat.ValueType, bytes, Mapping[str, Mesh]]]:\n        return KinematicsFileFormat.KINEMATICS_FILE_FORMAT_SVA, self.kinematics\n
\n" + "
# my-python-robot/my_cool_arm.py\n",
+       "\n",
+       "import asyncio\n",
+       "import json\n",
+       "from typing import Any, Dict, List, Mapping, Optional, Tuple, Union\n",
+       "\n",
+       "from viam.components.arm import Arm, JointPositions, KinematicsFileFormat, Pose\n",
+       "from viam.operations import run_with_operation\n",
+       "from viam.proto.common import Capsule, Geometry, Mesh, Sphere\n",
+       "\n",
+       "\n",
+       "class MyCoolArm(Arm):\n",
+       "    # Subclass the Viam Arm component and implement the required functions\n",
+       "\n",
+       "    def __init__(self, name: str):\n",
+       "        # Starting position\n",
+       "        self.position = Pose(\n",
+       "            x=0,\n",
+       "            y=0,\n",
+       "            z=0,\n",
+       "            o_x=0,\n",
+       "            o_y=0,\n",
+       "            o_z=0,\n",
+       "            theta=0,\n",
+       "        )\n",
+       "\n",
+       "        # Starting joint positions\n",
+       "        self.joint_positions = JointPositions(values=[0, 0, 0, 0, 0, 0])\n",
+       "        self.is_stopped = True\n",
+       "        self.geometries = [\n",
+       "            Geometry(center=Pose(x=1, y=2, z=3, o_x=2, o_y=3, o_z=4, theta=20), sphere=Sphere(radius_mm=2)),\n",
+       "            Geometry(center=Pose(x=1, y=2, z=3, o_x=2, o_y=3, o_z=4, theta=20), capsule=Capsule(radius_mm=3, length_mm=8)),\n",
+       "        ]\n",
+       "\n",
+       "        # Minimal working kinematics model\n",
+       "        self.kinematics = json.dumps(\n",
+       "            {\n",
+       "                "name": "MyArm",\n",
+       "                "links": [{"id": "base", "parent": "world", "translation": {"x": 0, "y": 0, "z": 0}}],\n",
+       "                "joints": [\n",
+       "                    {"id": "waist", "type": "revolute", "parent": "base", "axis": {"x": 0, "y": 0, "z": 1}, "max": 359, "min": -359}\n",
+       "                ],\n",
+       "            }\n",
+       "        ).encode("utf-8")\n",
+       "        super().__init__(name)\n",
+       "\n",
+       "    async def get_end_position(self, extra: Optional[Dict[str, Any]] = None, **kwargs) -> Pose:\n",
+       "        return self.position\n",
+       "\n",
+       "    @run_with_operation\n",
+       "    async def move_to_position(\n",
+       "        self,\n",
+       "        pose: Pose,\n",
+       "        extra: Optional[Dict[str, Any]] = None,\n",
+       "        **kwargs,\n",
+       "    ):\n",
+       "        operation = self.get_operation(kwargs)\n",
+       "\n",
+       "        self.is_stopped = False\n",
+       "        self.position = pose\n",
+       "\n",
+       "        # Simulate the length of time it takes for the arm to move to its new position\n",
+       "        for x in range(10):\n",
+       "            await asyncio.sleep(1)\n",
+       "\n",
+       "            # Check if the operation is cancelled and, if it is, stop the arm's motion\n",
+       "            if await operation.is_cancelled():\n",
+       "                await self.stop()\n",
+       "                break\n",
+       "\n",
+       "        self.is_stopped = True\n",
+       "\n",
+       "    async def get_joint_positions(self, extra: Optional[Dict[str, Any]] = None, **kwargs) -> JointPositions:\n",
+       "        return self.joint_positions\n",
+       "\n",
+       "    @run_with_operation\n",
+       "    async def move_to_joint_positions(self, positions: JointPositions, extra: Optional[Dict[str, Any]] = None, **kwargs):\n",
+       "        operation = self.get_operation(kwargs)\n",
+       "\n",
+       "        self.is_stopped = False\n",
+       "        self.joint_positions = positions\n",
+       "\n",
+       "        # Simulate the length of time it takes for the arm to move to its new joint position\n",
+       "        for x in range(10):\n",
+       "            await asyncio.sleep(1)\n",
+       "\n",
+       "            # Check if the operation is cancelled and, if it is, stop the arm's motion\n",
+       "            if await operation.is_cancelled():\n",
+       "                await self.stop()\n",
+       "                break\n",
+       "\n",
+       "        self.is_stopped = True\n",
+       "\n",
+       "    async def stop(self, extra: Optional[Dict[str, Any]] = None, **kwargs):\n",
+       "        self.is_stopped = True\n",
+       "\n",
+       "    async def is_moving(self) -> bool:\n",
+       "        return not self.is_stopped\n",
+       "\n",
+       "    async def get_geometries(self, *, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None) -> List[Geometry]:\n",
+       "        return self.geometries\n",
+       "\n",
+       "    async def get_kinematics(\n",
+       "        self, extra: Optional[Dict[str, Any]] = None, **kwargs\n",
+       "    ) -> Union[Tuple[KinematicsFileFormat.ValueType, bytes], Tuple[KinematicsFileFormat.ValueType, bytes, Mapping[str, Mesh]]]:\n",
+       "        return KinematicsFileFormat.KINEMATICS_FILE_FORMAT_SVA, self.kinematics\n",
+       "\n",
+       "    async def close(self):\n",
+       "        # This is a completely optional function to include. This will be called when the resource is removed from the config or the module\n",
+       "        # is shutting down.\n",
+       "        self.logger.info(f"{self.name} is closed.")\n",
+       "
\n" ], "text/plain": [ "" ] }, - "execution_count": 1, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -722,19 +871,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 10, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/var/folders/vh/04mycgp163125hlq8k9bkl8w0000gn/T/ipykernel_50114/2037726754.py:15: RuntimeWarning: coroutine 'main' was never awaited\n", - " pass\n", - "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n" - ] - } - ], + "outputs": [], "source": [ "# my-python-robot/main.py\n", "\n", @@ -911,7 +1050,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "tags": [ "hide-input" @@ -930,7 +1069,7 @@ } ], "source": [ - "from IPython.core.display import display, Image\n", + "from IPython.display import display, Image\n", "\n", "display(Image(filename=\"./codediff.png\"))" ] @@ -1275,7 +1414,7 @@ "metadata": { "celltoolbar": "Tags", "kernelspec": { - "display_name": "viam-sdk-1ZkIuRmo-py3.11", + "display_name": "viam-sdk (3.13.11)", "language": "python", "name": "python3" }, @@ -1289,12 +1428,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.9 (main, Apr 2 2024, 08:25:04) [Clang 15.0.0 (clang-1500.1.0.2.5)]" - }, - "vscode": { - "interpreter": { - "hash": "3dcf3a0dc186f3f37ed02c43aacb5aba79c21834e2f1b6d3d1f9d9c84c46ec17" - } + "version": "3.13.11" } }, "nbformat": 4, diff --git a/etc/generate_proto_import.py b/etc/generate_proto_import.py index 00c7f13cb5..e30d5a5b7d 100644 --- a/etc/generate_proto_import.py +++ b/etc/generate_proto_import.py @@ -143,7 +143,7 @@ def check_class(obj) -> bool: f.write("Do not edit manually!\n") f.write("'''\n") for imp, cls in classes.items(): - f.write(f'from {"."*(len(package.split("."))+IMPORT_LEVEL)}{PROTO_GEN_PACKAGE}.{package}.{imp} import (\n') + f.write(f"from {'.' * (len(package.split('.')) + IMPORT_LEVEL)}{PROTO_GEN_PACKAGE}.{package}.{imp} import (\n") f.write(" %s\n" % (",\n ".join(cls))) f.write(")\n") f.write("\n__all__ = [\n") diff --git a/pyproject.toml b/pyproject.toml index b3916766f6..7c1b2d1e53 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,35 +6,32 @@ authors = [ ] license = "Apache-2.0" readme = "README.md" -requires-python = ">=3.8.1" +requires-python = ">=3.10" dynamic = [ 'version', ] dependencies = [ - "googleapis-common-protos>=1.65.0", - "grpclib>=0.4.7", - "protobuf==5.29.6", - "typing-extensions>=4.12.2", + "grpclib>=0.4.9", + "protobuf==6.33.5", + "typing-extensions>=4.15.0", "pymongo>=4.10.1", + "googleapis-common-protos>=1.73.0", ] [dependency-groups] dev = [ - "coverage>=7.6.1", - "mypy-protobuf>=3.6.0", - "myst-nb<1.0.0; python_version<'3.9'", - "myst-nb>=1.0.0; python_version>='3.9'", - "nbmake>=1.5.4", - "numpy<1.25.0; python_version<'3.9'", - "numpy>=1.26.2; python_version>='3.9'", - "pillow>=10.4.0", - "pyright>=1.1.382.post1", - "pytest-asyncio>=0.24.0", - "pytest>=8.3.3", - "ruff>=0.6.8", - "sphinx-autoapi<3.0.0; python_version<'3.9'", - "sphinx-autoapi>=3.0.0; python_version>='3.9'", - "sphinx-rtd-theme>=2.0.0", - "types-pillow>=10.2.0.20240822", + "coverage>=7.13.4", + "mypy-protobuf>=5.0.0", + "myst-nb>=1.4.0", + "nbmake>=1.5.5", + "numpy<2.3.0; python_version<'3.11'", + "numpy>=1.3.0; python_version>='3.11'", + "pillow>=12.1.1", + "pyright>=1.1.401", + "pytest-asyncio>=1.3.0", + "pytest>=9.0.2", + "ruff>=0.15.5", + "sphinx-autoapi>=3.7.0", + "sphinx-rtd-theme>=3.1.0", ] [project.urls] diff --git a/requirements-test.txt b/requirements-test.txt index 6ca693c927..e833a153c0 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,6 +1,5 @@ - grpclib~=0.4.6 - googleapis-common-protos~=1.63.2 - typing-extensions~=4.8.0 + grpclib~=0.4.9 + typing-extensions~=4.15.0 Pillow~=10.4.0 - protobuf==5.29.6 - numpy~=1.21 + protobuf==6.33.5 + numpy~=1.26.2 diff --git a/src/viam/app/_logs.py b/src/viam/app/_logs.py index 407186b0fe..20f4c0cd1a 100644 --- a/src/viam/app/_logs.py +++ b/src/viam/app/_logs.py @@ -1,10 +1,4 @@ -import sys - -if sys.version_info >= (3, 9): - from collections.abc import AsyncIterator -else: - from typing import AsyncIterator - +from collections.abc import AsyncIterator from typing import Protocol, TypeVar LogsType = TypeVar("LogsType", covariant=True) diff --git a/src/viam/app/data_client.py b/src/viam/app/data_client.py index 9f50cce5b9..2f897d5928 100644 --- a/src/viam/app/data_client.py +++ b/src/viam/app/data_client.py @@ -881,9 +881,7 @@ async def delete_tabular_data( For more information, see `Data Client API `_. """ - request = DeleteTabularDataRequest( - organization_id=organization_id, delete_older_than_days=delete_older_than_days, filter=filter - ) + request = DeleteTabularDataRequest(organization_id=organization_id, delete_older_than_days=delete_older_than_days, filter=filter) response: DeleteTabularDataResponse = await self._data_client.DeleteTabularData(request, metadata=self._metadata) return response.deleted_count diff --git a/src/viam/components/audio_in/audio_in.py b/src/viam/components/audio_in/audio_in.py index 7a19fc2e55..58f6eacdaa 100644 --- a/src/viam/components/audio_in/audio_in.py +++ b/src/viam/components/audio_in/audio_in.py @@ -1,6 +1,5 @@ import abc -import sys -from typing import Final, Optional +from typing import Final, Optional, TypeAlias from viam.proto.common import GetPropertiesResponse from viam.proto.component.audioin import GetAudioResponse @@ -9,11 +8,6 @@ from ..component_base import ComponentBase -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - class AudioIn(ComponentBase): """AudioIn represents a component that can capture audio. diff --git a/src/viam/components/audio_out/audio_out.py b/src/viam/components/audio_out/audio_out.py index 0c2b75e1de..98ac5ed96b 100644 --- a/src/viam/components/audio_out/audio_out.py +++ b/src/viam/components/audio_out/audio_out.py @@ -1,6 +1,5 @@ import abc -import sys -from typing import Any, Dict, Final, Optional +from typing import Any, Dict, Final, Optional, TypeAlias from viam.proto.common import GetPropertiesResponse from viam.resource.types import API, RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_COMPONENT @@ -8,11 +7,6 @@ from ..component_base import ComponentBase from . import AudioInfo -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - class AudioOut(ComponentBase): """AudioOut represents a component that can play audio. diff --git a/src/viam/components/board/board.py b/src/viam/components/board/board.py index e9bcee5885..986304b150 100644 --- a/src/viam/components/board/board.py +++ b/src/viam/components/board/board.py @@ -1,7 +1,6 @@ import abc -import sys from datetime import timedelta -from typing import Any, Dict, Final, List, Optional +from typing import Any, Dict, Final, List, Optional, TypeAlias from viam.proto.component.board import PowerMode, ReadAnalogReaderResponse, StreamTicksResponse from viam.resource.types import API, RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_COMPONENT @@ -9,11 +8,6 @@ from ..component_base import ComponentBase -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - Tick = StreamTicksResponse TickStream = Stream[Tick] diff --git a/src/viam/components/camera/camera.py b/src/viam/components/camera/camera.py index 744fd8d53f..b6d7664742 100644 --- a/src/viam/components/camera/camera.py +++ b/src/viam/components/camera/camera.py @@ -1,6 +1,5 @@ import abc -import sys -from typing import Any, Dict, Final, Optional, Sequence, Tuple +from typing import Any, Dict, Final, Optional, Sequence, Tuple, TypeAlias from viam.media.video import NamedImage from viam.proto.common import ResponseMetadata @@ -9,11 +8,6 @@ from ..component_base import ComponentBase -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - class Camera(ComponentBase): """ diff --git a/src/viam/components/movement_sensor/movement_sensor.py b/src/viam/components/movement_sensor/movement_sensor.py index 2144536344..dbbea0a443 100644 --- a/src/viam/components/movement_sensor/movement_sensor.py +++ b/src/viam/components/movement_sensor/movement_sensor.py @@ -1,7 +1,6 @@ import abc -import sys from dataclasses import dataclass -from typing import Any, Dict, Final, Mapping, Optional, Tuple +from typing import Any, Dict, Final, Mapping, Optional, Tuple, TypeAlias from typing_extensions import Self @@ -12,11 +11,6 @@ from . import GeoPoint, Orientation, Vector3 -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - class MovementSensor(ComponentBase): """MovementSensor reports information about the robot's direction, position and speed. diff --git a/src/viam/errors.py b/src/viam/errors.py index b9a6b0e7d3..05bc359ae3 100644 --- a/src/viam/errors.py +++ b/src/viam/errors.py @@ -22,7 +22,7 @@ class InsecureConnectionError(ViamError): def __init__(self, address: str, authenticated: bool = False) -> None: self.address = address self.authenticated = authenticated - self.message = f"Requested address {self.address} is insecure" + f'{" and will not send credentials" if self.authenticated else ""}' + self.message = f"Requested address {self.address} is insecure" + f"{' and will not send credentials' if self.authenticated else ''}" super().__init__(self.message) diff --git a/src/viam/gen/app/agent/v1/agent_pb2.py b/src/viam/gen/app/agent/v1/agent_pb2.py index 89a837bf94..fcaf8a71ce 100644 --- a/src/viam/gen/app/agent/v1/agent_pb2.py +++ b/src/viam/gen/app/agent/v1/agent_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/agent/v1/agent.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/agent/v1/agent.proto') _sym_db = _symbol_database.Default() from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 diff --git a/src/viam/gen/app/agent/v1/agent_pb2.pyi b/src/viam/gen/app/agent/v1/agent_pb2.pyi index 7ffec7ea72..cd03b831e3 100644 --- a/src/viam/gen/app/agent/v1/agent_pb2.pyi +++ b/src/viam/gen/app/agent/v1/agent_pb2.pyi @@ -2,28 +2,32 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.duration_pb2 -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated +else: + from typing_extensions import deprecated as _deprecated +DESCRIPTOR: _descriptor.FileDescriptor class _PackageFormat: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _PackageFormatEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PackageFormat.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _PackageFormatEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_PackageFormat.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor PACKAGE_FORMAT_UNSPECIFIED: _PackageFormat.ValueType 'unknown/unset (autodetection may be attempted)' PACKAGE_FORMAT_RAW: _PackageFormat.ValueType @@ -47,244 +51,259 @@ PACKAGE_FORMAT_EXECUTABLE: PackageFormat.ValueType 'set executable permissions' PACKAGE_FORMAT_XZ_EXECUTABLE: PackageFormat.ValueType 'decompress and set executable' -global___PackageFormat = PackageFormat +Global___PackageFormat: _TypeAlias = PackageFormat -@typing.final -class DeviceAgentConfigRequest(google.protobuf.message.Message): +@_typing.final +class DeviceAgentConfigRequest(_message.Message): """Device side""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class SubsystemVersionsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + @_typing.final + class SubsystemVersionsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str - def __init__(self, *, key: builtins.str=..., value: builtins.str=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - ID_FIELD_NUMBER: builtins.int - HOST_INFO_FIELD_NUMBER: builtins.int - SUBSYSTEM_VERSIONS_FIELD_NUMBER: builtins.int - VERSION_INFO_FIELD_NUMBER: builtins.int - AGENT_UPTIME_FIELD_NUMBER: builtins.int - VIAM_SERVER_UPTIME_FIELD_NUMBER: builtins.int - id: builtins.str + ID_FIELD_NUMBER: _builtins.int + HOST_INFO_FIELD_NUMBER: _builtins.int + SUBSYSTEM_VERSIONS_FIELD_NUMBER: _builtins.int + VERSION_INFO_FIELD_NUMBER: _builtins.int + AGENT_UPTIME_FIELD_NUMBER: _builtins.int + VIAM_SERVER_UPTIME_FIELD_NUMBER: _builtins.int + id: _builtins.str 'robot partID' - @property - def host_info(self) -> global___HostInfo: + @_builtins.property + def host_info(self) -> Global___HostInfo: """info about the host system""" - @property - def subsystem_versions(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def subsystem_versions(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """current subsystems and versions DEPRECATED in favor of version_info """ - @property - def version_info(self) -> global___VersionInfo: + @_builtins.property + def version_info(self) -> Global___VersionInfo: """Currently installed versions for agent and viam-server""" - @property - def agent_uptime(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def agent_uptime(self) -> _duration_pb2.Duration: """how long viam-agent has been running since its most recent start""" - @property - def viam_server_uptime(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def viam_server_uptime(self) -> _duration_pb2.Duration: """how long viam-server has been running since its most recent start (omitted if not running)""" - def __init__(self, *, id: builtins.str=..., host_info: global___HostInfo | None=..., subsystem_versions: collections.abc.Mapping[builtins.str, builtins.str] | None=..., version_info: global___VersionInfo | None=..., agent_uptime: google.protobuf.duration_pb2.Duration | None=..., viam_server_uptime: google.protobuf.duration_pb2.Duration | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., host_info: Global___HostInfo | None=..., subsystem_versions: _abc.Mapping[_builtins.str, _builtins.str] | None=..., version_info: Global___VersionInfo | None=..., agent_uptime: _duration_pb2.Duration | None=..., viam_server_uptime: _duration_pb2.Duration | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['agent_uptime', b'agent_uptime', 'host_info', b'host_info', 'version_info', b'version_info', 'viam_server_uptime', b'viam_server_uptime'] - def HasField(self, field_name: typing.Literal['agent_uptime', b'agent_uptime', 'host_info', b'host_info', 'version_info', b'version_info', 'viam_server_uptime', b'viam_server_uptime']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['agent_uptime', b'agent_uptime', 'host_info', b'host_info', 'id', b'id', 'subsystem_versions', b'subsystem_versions', 'version_info', b'version_info', 'viam_server_uptime', b'viam_server_uptime'] - def ClearField(self, field_name: typing.Literal['agent_uptime', b'agent_uptime', 'host_info', b'host_info', 'id', b'id', 'subsystem_versions', b'subsystem_versions', 'version_info', b'version_info', 'viam_server_uptime', b'viam_server_uptime']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeviceAgentConfigRequest = DeviceAgentConfigRequest +Global___DeviceAgentConfigRequest: _TypeAlias = DeviceAgentConfigRequest -@typing.final -class DeviceAgentConfigResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeviceAgentConfigResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class SubsystemConfigsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class SubsystemConfigsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> global___DeviceSubsystemConfig: + @_builtins.property + def value(self) -> Global___DeviceSubsystemConfig: ... - def __init__(self, *, key: builtins.str=..., value: global___DeviceSubsystemConfig | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: Global___DeviceSubsystemConfig | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - SUBSYSTEM_CONFIGS_FIELD_NUMBER: builtins.int - CHECK_INTERVAL_FIELD_NUMBER: builtins.int - AGENT_UPDATE_INFO_FIELD_NUMBER: builtins.int - VIAM_SERVER_UPDATE_INFO_FIELD_NUMBER: builtins.int - ADVANCED_SETTINGS_FIELD_NUMBER: builtins.int - NETWORK_CONFIGURATION_FIELD_NUMBER: builtins.int - ADDITIONAL_NETWORKS_FIELD_NUMBER: builtins.int - SYSTEM_CONFIGURATION_FIELD_NUMBER: builtins.int - - @property - def subsystem_configs(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___DeviceSubsystemConfig]: + SUBSYSTEM_CONFIGS_FIELD_NUMBER: _builtins.int + CHECK_INTERVAL_FIELD_NUMBER: _builtins.int + AGENT_UPDATE_INFO_FIELD_NUMBER: _builtins.int + VIAM_SERVER_UPDATE_INFO_FIELD_NUMBER: _builtins.int + ADVANCED_SETTINGS_FIELD_NUMBER: _builtins.int + NETWORK_CONFIGURATION_FIELD_NUMBER: _builtins.int + ADDITIONAL_NETWORKS_FIELD_NUMBER: _builtins.int + SYSTEM_CONFIGURATION_FIELD_NUMBER: _builtins.int + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def subsystem_configs(self) -> _containers.MessageMap[_builtins.str, Global___DeviceSubsystemConfig]: """subsystems to be installed/configured/updated note: previously installed subsystems will be removed from the system if removed from this list DEPRECATED in favor of indidivual update_info and settings fields """ - @property - def check_interval(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def check_interval(self) -> _duration_pb2.Duration: """how often this request should be repeated""" - @property - def agent_update_info(self) -> global___UpdateInfo: + @_builtins.property + def agent_update_info(self) -> Global___UpdateInfo: """update info for agent and viam-server, parsed/processed in App""" - @property - def viam_server_update_info(self) -> global___UpdateInfo: + @_builtins.property + def viam_server_update_info(self) -> Global___UpdateInfo: ... - @property - def advanced_settings(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def advanced_settings(self) -> _struct_pb2.Struct: """various settings that are passed directly to device Agent""" - @property - def network_configuration(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def network_configuration(self) -> _struct_pb2.Struct: ... - @property - def additional_networks(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def additional_networks(self) -> _struct_pb2.Struct: ... - @property - def system_configuration(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def system_configuration(self) -> _struct_pb2.Struct: ... - def __init__(self, *, subsystem_configs: collections.abc.Mapping[builtins.str, global___DeviceSubsystemConfig] | None=..., check_interval: google.protobuf.duration_pb2.Duration | None=..., agent_update_info: global___UpdateInfo | None=..., viam_server_update_info: global___UpdateInfo | None=..., advanced_settings: google.protobuf.struct_pb2.Struct | None=..., network_configuration: google.protobuf.struct_pb2.Struct | None=..., additional_networks: google.protobuf.struct_pb2.Struct | None=..., system_configuration: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, subsystem_configs: _abc.Mapping[_builtins.str, Global___DeviceSubsystemConfig] | None=..., check_interval: _duration_pb2.Duration | None=..., agent_update_info: Global___UpdateInfo | None=..., viam_server_update_info: Global___UpdateInfo | None=..., advanced_settings: _struct_pb2.Struct | None=..., network_configuration: _struct_pb2.Struct | None=..., additional_networks: _struct_pb2.Struct | None=..., system_configuration: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['additional_networks', b'additional_networks', 'advanced_settings', b'advanced_settings', 'agent_update_info', b'agent_update_info', 'check_interval', b'check_interval', 'network_configuration', b'network_configuration', 'system_configuration', b'system_configuration', 'viam_server_update_info', b'viam_server_update_info'] - def HasField(self, field_name: typing.Literal['additional_networks', b'additional_networks', 'advanced_settings', b'advanced_settings', 'agent_update_info', b'agent_update_info', 'check_interval', b'check_interval', 'network_configuration', b'network_configuration', 'system_configuration', b'system_configuration', 'viam_server_update_info', b'viam_server_update_info']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['additional_networks', b'additional_networks', 'advanced_settings', b'advanced_settings', 'agent_update_info', b'agent_update_info', 'check_interval', b'check_interval', 'network_configuration', b'network_configuration', 'subsystem_configs', b'subsystem_configs', 'system_configuration', b'system_configuration', 'viam_server_update_info', b'viam_server_update_info'] - def ClearField(self, field_name: typing.Literal['additional_networks', b'additional_networks', 'advanced_settings', b'advanced_settings', 'agent_update_info', b'agent_update_info', 'check_interval', b'check_interval', 'network_configuration', b'network_configuration', 'subsystem_configs', b'subsystem_configs', 'system_configuration', b'system_configuration', 'viam_server_update_info', b'viam_server_update_info']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeviceAgentConfigResponse = DeviceAgentConfigResponse +Global___DeviceAgentConfigResponse: _TypeAlias = DeviceAgentConfigResponse -@typing.final -class DeviceSubsystemConfig(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class DeviceSubsystemConfig(_message.Message): """DEPRECATED as of January 2025""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - UPDATE_INFO_FIELD_NUMBER: builtins.int - DISABLE_FIELD_NUMBER: builtins.int - FORCE_RESTART_FIELD_NUMBER: builtins.int - ATTRIBUTES_FIELD_NUMBER: builtins.int - disable: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + UPDATE_INFO_FIELD_NUMBER: _builtins.int + DISABLE_FIELD_NUMBER: _builtins.int + FORCE_RESTART_FIELD_NUMBER: _builtins.int + ATTRIBUTES_FIELD_NUMBER: _builtins.int + disable: _builtins.bool 'if this subsystem is disabled and should not be started by the agent' - force_restart: builtins.bool + force_restart: _builtins.bool 'force_restart will restart the subsystem, even if no updates are available' - @property - def update_info(self) -> global___UpdateInfo: + @_builtins.property + def update_info(self) -> Global___UpdateInfo: """data needed to download/validate the subsystem""" - @property - def attributes(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def attributes(self) -> _struct_pb2.Struct: """arbitrary config sections""" - def __init__(self, *, update_info: global___UpdateInfo | None=..., disable: builtins.bool=..., force_restart: builtins.bool=..., attributes: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, update_info: Global___UpdateInfo | None=..., disable: _builtins.bool=..., force_restart: _builtins.bool=..., attributes: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['attributes', b'attributes', 'update_info', b'update_info'] - def HasField(self, field_name: typing.Literal['attributes', b'attributes', 'update_info', b'update_info']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['attributes', b'attributes', 'disable', b'disable', 'force_restart', b'force_restart', 'update_info', b'update_info'] - def ClearField(self, field_name: typing.Literal['attributes', b'attributes', 'disable', b'disable', 'force_restart', b'force_restart', 'update_info', b'update_info']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeviceSubsystemConfig = DeviceSubsystemConfig - -@typing.final -class VersionInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AGENT_RUNNING_FIELD_NUMBER: builtins.int - AGENT_INSTALLED_FIELD_NUMBER: builtins.int - VIAM_SERVER_RUNNING_FIELD_NUMBER: builtins.int - VIAM_SERVER_INSTALLED_FIELD_NUMBER: builtins.int - agent_running: builtins.str +Global___DeviceSubsystemConfig: _TypeAlias = DeviceSubsystemConfig + +@_typing.final +class VersionInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AGENT_RUNNING_FIELD_NUMBER: _builtins.int + AGENT_INSTALLED_FIELD_NUMBER: _builtins.int + VIAM_SERVER_RUNNING_FIELD_NUMBER: _builtins.int + VIAM_SERVER_INSTALLED_FIELD_NUMBER: _builtins.int + agent_running: _builtins.str 'the version of agent currently running and making the request' - agent_installed: builtins.str + agent_installed: _builtins.str 'the version of agent installed (will run after restart if different)' - viam_server_running: builtins.str + viam_server_running: _builtins.str 'the version of viam-server currently running' - viam_server_installed: builtins.str + viam_server_installed: _builtins.str 'the version of viam-server installed (will run after restart if different)' - def __init__(self, *, agent_running: builtins.str=..., agent_installed: builtins.str=..., viam_server_running: builtins.str=..., viam_server_installed: builtins.str=...) -> None: + def __init__(self, *, agent_running: _builtins.str=..., agent_installed: _builtins.str=..., viam_server_running: _builtins.str=..., viam_server_installed: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['agent_installed', b'agent_installed', 'agent_running', b'agent_running', 'viam_server_installed', b'viam_server_installed', 'viam_server_running', b'viam_server_running'] - def ClearField(self, field_name: typing.Literal['agent_installed', b'agent_installed', 'agent_running', b'agent_running', 'viam_server_installed', b'viam_server_installed', 'viam_server_running', b'viam_server_running']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___VersionInfo = VersionInfo - -@typing.final -class HostInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PLATFORM_FIELD_NUMBER: builtins.int - DISTRO_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - platform: builtins.str +Global___VersionInfo: _TypeAlias = VersionInfo + +@_typing.final +class HostInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PLATFORM_FIELD_NUMBER: _builtins.int + DISTRO_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + platform: _builtins.str 'platform is the docker styled combination of kernel and architecture. Ex: linux/amd64, darwin/arm64' - distro: builtins.str + distro: _builtins.str 'ID and VERSION_ID fields from /etc/os-release, colon seperated. Ex: ubuntu:22.04, debian:11' - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """additional tags for specific hardware or software that's present and may affect software selection ex: "jetson", "rpi4", "systemd", etc. """ - def __init__(self, *, platform: builtins.str=..., distro: builtins.str=..., tags: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, platform: _builtins.str=..., distro: _builtins.str=..., tags: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['distro', b'distro', 'platform', b'platform', 'tags', b'tags'] - def ClearField(self, field_name: typing.Literal['distro', b'distro', 'platform', b'platform', 'tags', b'tags']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___HostInfo = HostInfo - -@typing.final -class UpdateInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILENAME_FIELD_NUMBER: builtins.int - URL_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - SHA256_FIELD_NUMBER: builtins.int - FORMAT_FIELD_NUMBER: builtins.int - filename: builtins.str +Global___HostInfo: _TypeAlias = HostInfo + +@_typing.final +class UpdateInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FILENAME_FIELD_NUMBER: _builtins.int + URL_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + SHA256_FIELD_NUMBER: _builtins.int + FORMAT_FIELD_NUMBER: _builtins.int + filename: _builtins.str 'unpacked filename as it is expected on disk (regardless of url)' - url: builtins.str + url: _builtins.str 'url to download from' - version: builtins.str + version: _builtins.str 'version expected at the url' - sha256: builtins.bytes + sha256: _builtins.bytes 'sha256 sum of file as downloaded' - format: global___PackageFormat.ValueType + format: Global___PackageFormat.ValueType 'determines if decompression or executable permissions are needed' - def __init__(self, *, filename: builtins.str=..., url: builtins.str=..., version: builtins.str=..., sha256: builtins.bytes=..., format: global___PackageFormat.ValueType=...) -> None: + def __init__(self, *, filename: _builtins.str=..., url: _builtins.str=..., version: _builtins.str=..., sha256: _builtins.bytes=..., format: Global___PackageFormat.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['filename', b'filename', 'format', b'format', 'sha256', b'sha256', 'url', b'url', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['filename', b'filename', 'format', b'format', 'sha256', b'sha256', 'url', b'url', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateInfo = UpdateInfo \ No newline at end of file +Global___UpdateInfo: _TypeAlias = UpdateInfo \ No newline at end of file diff --git a/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.py b/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.py index d55ad27503..a8062d9c10 100644 --- a/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.py +++ b/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/cloudslam/v1/cloud_slam.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/cloudslam/v1/cloud_slam.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 diff --git a/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi b/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi index 8f1939117e..df14eb05c9 100644 --- a/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi +++ b/src/viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi @@ -2,29 +2,29 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from .... import common -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _EndStatus: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _EndStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_EndStatus.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _EndStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_EndStatus.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor END_STATUS_UNSPECIFIED: _EndStatus.ValueType END_STATUS_SUCCESS: _EndStatus.ValueType END_STATUS_TIMEOUT: _EndStatus.ValueType @@ -36,349 +36,370 @@ END_STATUS_UNSPECIFIED: EndStatus.ValueType END_STATUS_SUCCESS: EndStatus.ValueType END_STATUS_TIMEOUT: EndStatus.ValueType END_STATUS_FAIL: EndStatus.ValueType -global___EndStatus = EndStatus +Global___EndStatus: _TypeAlias = EndStatus -@typing.final -class StartMappingSessionRequest(google.protobuf.message.Message): +@_typing.final +class StartMappingSessionRequest(_message.Message): """StartMappingSession""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SLAM_VERSION_FIELD_NUMBER: builtins.int - VIAM_SERVER_VERSION_FIELD_NUMBER: builtins.int - MAP_NAME_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - ROBOT_ID_FIELD_NUMBER: builtins.int - CAPTURE_INTERVAL_FIELD_NUMBER: builtins.int - SENSORS_FIELD_NUMBER: builtins.int - SLAM_CONFIG_FIELD_NUMBER: builtins.int - EXISTING_MAP_VERSION_FIELD_NUMBER: builtins.int - MODULE_FIELD_NUMBER: builtins.int - slam_version: builtins.str + DESCRIPTOR: _descriptor.Descriptor + SLAM_VERSION_FIELD_NUMBER: _builtins.int + VIAM_SERVER_VERSION_FIELD_NUMBER: _builtins.int + MAP_NAME_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + ROBOT_ID_FIELD_NUMBER: _builtins.int + CAPTURE_INTERVAL_FIELD_NUMBER: _builtins.int + SENSORS_FIELD_NUMBER: _builtins.int + SLAM_CONFIG_FIELD_NUMBER: _builtins.int + EXISTING_MAP_VERSION_FIELD_NUMBER: _builtins.int + MODULE_FIELD_NUMBER: _builtins.int + slam_version: _builtins.str 'Version to use for slam, defaults stable' - viam_server_version: builtins.str + viam_server_version: _builtins.str 'Version to use for viam, defaults stable' - map_name: builtins.str - organization_id: builtins.str - location_id: builtins.str - robot_id: builtins.str - existing_map_version: builtins.str + map_name: _builtins.str + organization_id: _builtins.str + location_id: _builtins.str + robot_id: _builtins.str + existing_map_version: _builtins.str - @property - def capture_interval(self) -> global___CaptureInterval: + @_builtins.property + def capture_interval(self) -> Global___CaptureInterval: ... - @property - def sensors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SensorInfo]: + @_builtins.property + def sensors(self) -> _containers.RepeatedCompositeFieldContainer[Global___SensorInfo]: ... - @property - def slam_config(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def slam_config(self) -> _struct_pb2.Struct: ... - @property - def module(self) -> global___Module: + @_builtins.property + def module(self) -> Global___Module: ... - def __init__(self, *, slam_version: builtins.str=..., viam_server_version: builtins.str=..., map_name: builtins.str=..., organization_id: builtins.str=..., location_id: builtins.str=..., robot_id: builtins.str=..., capture_interval: global___CaptureInterval | None=..., sensors: collections.abc.Iterable[global___SensorInfo] | None=..., slam_config: google.protobuf.struct_pb2.Struct | None=..., existing_map_version: builtins.str=..., module: global___Module | None=...) -> None: + def __init__(self, *, slam_version: _builtins.str=..., viam_server_version: _builtins.str=..., map_name: _builtins.str=..., organization_id: _builtins.str=..., location_id: _builtins.str=..., robot_id: _builtins.str=..., capture_interval: Global___CaptureInterval | None=..., sensors: _abc.Iterable[Global___SensorInfo] | None=..., slam_config: _struct_pb2.Struct | None=..., existing_map_version: _builtins.str=..., module: Global___Module | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['capture_interval', b'capture_interval', 'module', b'module', 'slam_config', b'slam_config'] - def HasField(self, field_name: typing.Literal['capture_interval', b'capture_interval', 'module', b'module', 'slam_config', b'slam_config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['capture_interval', b'capture_interval', 'existing_map_version', b'existing_map_version', 'location_id', b'location_id', 'map_name', b'map_name', 'module', b'module', 'organization_id', b'organization_id', 'robot_id', b'robot_id', 'sensors', b'sensors', 'slam_config', b'slam_config', 'slam_version', b'slam_version', 'viam_server_version', b'viam_server_version'] - def ClearField(self, field_name: typing.Literal['capture_interval', b'capture_interval', 'existing_map_version', b'existing_map_version', 'location_id', b'location_id', 'map_name', b'map_name', 'module', b'module', 'organization_id', b'organization_id', 'robot_id', b'robot_id', 'sensors', b'sensors', 'slam_config', b'slam_config', 'slam_version', b'slam_version', 'viam_server_version', b'viam_server_version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StartMappingSessionRequest = StartMappingSessionRequest +Global___StartMappingSessionRequest: _TypeAlias = StartMappingSessionRequest -@typing.final -class Module(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - MODULE_ID_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - name: builtins.str - module_id: builtins.str - version: builtins.str +@_typing.final +class Module(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + MODULE_ID_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + name: _builtins.str + module_id: _builtins.str + version: _builtins.str - def __init__(self, *, name: builtins.str=..., module_id: builtins.str=..., version: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=..., module_id: _builtins.str=..., version: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['module_id', b'module_id', 'name', b'name', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['module_id', b'module_id', 'name', b'name', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Module = Module +Global___Module: _TypeAlias = Module -@typing.final -class SensorInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SOURCE_COMPONENT_NAME_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - DATA_FREQUENCY_HZ_FIELD_NUMBER: builtins.int - source_component_name: builtins.str - type: builtins.str +@_typing.final +class SensorInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SOURCE_COMPONENT_NAME_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + DATA_FREQUENCY_HZ_FIELD_NUMBER: _builtins.int + source_component_name: _builtins.str + type: _builtins.str 'type is the RDK component type' - data_frequency_hz: builtins.str + data_frequency_hz: _builtins.str - def __init__(self, *, source_component_name: builtins.str=..., type: builtins.str=..., data_frequency_hz: builtins.str=...) -> None: + def __init__(self, *, source_component_name: _builtins.str=..., type: _builtins.str=..., data_frequency_hz: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data_frequency_hz', b'data_frequency_hz', 'source_component_name', b'source_component_name', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['data_frequency_hz', b'data_frequency_hz', 'source_component_name', b'source_component_name', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SensorInfo = SensorInfo +Global___SensorInfo: _TypeAlias = SensorInfo -@typing.final -class CaptureInterval(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - START_TIME_FIELD_NUMBER: builtins.int - END_TIME_FIELD_NUMBER: builtins.int +@_typing.final +class CaptureInterval(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + START_TIME_FIELD_NUMBER: _builtins.int + END_TIME_FIELD_NUMBER: _builtins.int - @property - def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def start_time(self) -> _timestamp_pb2.Timestamp: ... - @property - def end_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def end_time(self) -> _timestamp_pb2.Timestamp: """if no end_time specified cloud slam will be run using live sensors""" - def __init__(self, *, start_time: google.protobuf.timestamp_pb2.Timestamp | None=..., end_time: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, start_time: _timestamp_pb2.Timestamp | None=..., end_time: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['end_time', b'end_time', 'start_time', b'start_time'] - def HasField(self, field_name: typing.Literal['end_time', b'end_time', 'start_time', b'start_time']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['end_time', b'end_time', 'start_time', b'start_time'] - def ClearField(self, field_name: typing.Literal['end_time', b'end_time', 'start_time', b'start_time']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CaptureInterval = CaptureInterval +Global___CaptureInterval: _TypeAlias = CaptureInterval -@typing.final -class StartMappingSessionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SESSION_ID_FIELD_NUMBER: builtins.int - session_id: builtins.str +@_typing.final +class StartMappingSessionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SESSION_ID_FIELD_NUMBER: _builtins.int + session_id: _builtins.str - def __init__(self, *, session_id: builtins.str=...) -> None: + def __init__(self, *, session_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['session_id', b'session_id'] - def ClearField(self, field_name: typing.Literal['session_id', b'session_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StartMappingSessionResponse = StartMappingSessionResponse +Global___StartMappingSessionResponse: _TypeAlias = StartMappingSessionResponse -@typing.final -class GetActiveMappingSessionsForRobotRequest(google.protobuf.message.Message): +@_typing.final +class GetActiveMappingSessionsForRobotRequest(_message.Message): """GetActiveMappingSessionsForRobot""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOT_ID_FIELD_NUMBER: builtins.int - robot_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ROBOT_ID_FIELD_NUMBER: _builtins.int + robot_id: _builtins.str 'assumes only one active mapping session on a robot' - def __init__(self, *, robot_id: builtins.str=...) -> None: + def __init__(self, *, robot_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['robot_id', b'robot_id'] - def ClearField(self, field_name: typing.Literal['robot_id', b'robot_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetActiveMappingSessionsForRobotRequest = GetActiveMappingSessionsForRobotRequest +Global___GetActiveMappingSessionsForRobotRequest: _TypeAlias = GetActiveMappingSessionsForRobotRequest -@typing.final -class GetActiveMappingSessionsForRobotResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SESSION_ID_FIELD_NUMBER: builtins.int - session_id: builtins.str +@_typing.final +class GetActiveMappingSessionsForRobotResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SESSION_ID_FIELD_NUMBER: _builtins.int + session_id: _builtins.str - def __init__(self, *, session_id: builtins.str=...) -> None: + def __init__(self, *, session_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['session_id', b'session_id'] - def ClearField(self, field_name: typing.Literal['session_id', b'session_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetActiveMappingSessionsForRobotResponse = GetActiveMappingSessionsForRobotResponse +Global___GetActiveMappingSessionsForRobotResponse: _TypeAlias = GetActiveMappingSessionsForRobotResponse -@typing.final -class GetMappingSessionPointCloudRequest(google.protobuf.message.Message): +@_typing.final +class GetMappingSessionPointCloudRequest(_message.Message): """GetMappingSessionPointCloud""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SESSION_ID_FIELD_NUMBER: builtins.int - session_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + SESSION_ID_FIELD_NUMBER: _builtins.int + session_id: _builtins.str - def __init__(self, *, session_id: builtins.str=...) -> None: + def __init__(self, *, session_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['session_id', b'session_id'] - def ClearField(self, field_name: typing.Literal['session_id', b'session_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetMappingSessionPointCloudRequest = GetMappingSessionPointCloudRequest +Global___GetMappingSessionPointCloudRequest: _TypeAlias = GetMappingSessionPointCloudRequest -@typing.final -class GetMappingSessionPointCloudResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MAP_URL_FIELD_NUMBER: builtins.int - POSE_FIELD_NUMBER: builtins.int - map_url: builtins.str +@_typing.final +class GetMappingSessionPointCloudResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MAP_URL_FIELD_NUMBER: _builtins.int + POSE_FIELD_NUMBER: _builtins.int + map_url: _builtins.str 'url to the pointcloud map' - @property - def pose(self) -> common.v1.common_pb2.Pose: + @_builtins.property + def pose(self) -> _common_pb2.Pose: """Current position within the SLAM Map""" - def __init__(self, *, map_url: builtins.str=..., pose: common.v1.common_pb2.Pose | None=...) -> None: + def __init__(self, *, map_url: _builtins.str=..., pose: _common_pb2.Pose | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def HasField(self, field_name: typing.Literal['pose', b'pose']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['map_url', b'map_url', 'pose', b'pose'] - def ClearField(self, field_name: typing.Literal['map_url', b'map_url', 'pose', b'pose']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetMappingSessionPointCloudResponse = GetMappingSessionPointCloudResponse +Global___GetMappingSessionPointCloudResponse: _TypeAlias = GetMappingSessionPointCloudResponse -@typing.final -class ListMappingSessionsRequest(google.protobuf.message.Message): +@_typing.final +class ListMappingSessionsRequest(_message.Message): """ListMappingSessions""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - organization_id: builtins.str - location_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + location_id: _builtins.str - def __init__(self, *, organization_id: builtins.str=..., location_id: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., location_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListMappingSessionsRequest = ListMappingSessionsRequest +Global___ListMappingSessionsRequest: _TypeAlias = ListMappingSessionsRequest -@typing.final -class ListMappingSessionsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SESSION_FIELD_NUMBER: builtins.int +@_typing.final +class ListMappingSessionsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SESSION_FIELD_NUMBER: _builtins.int - @property - def session(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MappingMetadata]: + @_builtins.property + def session(self) -> _containers.RepeatedCompositeFieldContainer[Global___MappingMetadata]: ... - def __init__(self, *, session: collections.abc.Iterable[global___MappingMetadata] | None=...) -> None: + def __init__(self, *, session: _abc.Iterable[Global___MappingMetadata] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['session', b'session'] - def ClearField(self, field_name: typing.Literal['session', b'session']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListMappingSessionsResponse = ListMappingSessionsResponse +Global___ListMappingSessionsResponse: _TypeAlias = ListMappingSessionsResponse -@typing.final -class StopMappingSessionRequest(google.protobuf.message.Message): +@_typing.final +class StopMappingSessionRequest(_message.Message): """StopMappingSession""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SESSION_ID_FIELD_NUMBER: builtins.int - session_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + SESSION_ID_FIELD_NUMBER: _builtins.int + session_id: _builtins.str - def __init__(self, *, session_id: builtins.str=...) -> None: + def __init__(self, *, session_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['session_id', b'session_id'] - def ClearField(self, field_name: typing.Literal['session_id', b'session_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopMappingSessionRequest = StopMappingSessionRequest +Global___StopMappingSessionRequest: _TypeAlias = StopMappingSessionRequest -@typing.final -class StopMappingSessionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PACKAGE_ID_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - package_id: builtins.str - version: builtins.str +@_typing.final +class StopMappingSessionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PACKAGE_ID_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + package_id: _builtins.str + version: _builtins.str - def __init__(self, *, package_id: builtins.str=..., version: builtins.str=...) -> None: + def __init__(self, *, package_id: _builtins.str=..., version: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['package_id', b'package_id', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['package_id', b'package_id', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopMappingSessionResponse = StopMappingSessionResponse +Global___StopMappingSessionResponse: _TypeAlias = StopMappingSessionResponse -@typing.final -class GetMappingSessionMetadataByIDRequest(google.protobuf.message.Message): +@_typing.final +class GetMappingSessionMetadataByIDRequest(_message.Message): """GetMappingSessionMetadataByID""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SESSION_ID_FIELD_NUMBER: builtins.int - session_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + SESSION_ID_FIELD_NUMBER: _builtins.int + session_id: _builtins.str - def __init__(self, *, session_id: builtins.str=...) -> None: + def __init__(self, *, session_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['session_id', b'session_id'] - def ClearField(self, field_name: typing.Literal['session_id', b'session_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetMappingSessionMetadataByIDRequest = GetMappingSessionMetadataByIDRequest +Global___GetMappingSessionMetadataByIDRequest: _TypeAlias = GetMappingSessionMetadataByIDRequest -@typing.final -class GetMappingSessionMetadataByIDResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SESSION_METADATA_FIELD_NUMBER: builtins.int +@_typing.final +class GetMappingSessionMetadataByIDResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SESSION_METADATA_FIELD_NUMBER: _builtins.int - @property - def session_metadata(self) -> global___MappingMetadata: + @_builtins.property + def session_metadata(self) -> Global___MappingMetadata: ... - def __init__(self, *, session_metadata: global___MappingMetadata | None=...) -> None: + def __init__(self, *, session_metadata: Global___MappingMetadata | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['session_metadata', b'session_metadata'] - def HasField(self, field_name: typing.Literal['session_metadata', b'session_metadata']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['session_metadata', b'session_metadata'] - def ClearField(self, field_name: typing.Literal['session_metadata', b'session_metadata']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetMappingSessionMetadataByIDResponse = GetMappingSessionMetadataByIDResponse +Global___GetMappingSessionMetadataByIDResponse: _TypeAlias = GetMappingSessionMetadataByIDResponse -@typing.final -class MappingMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - ROBOT_ID_FIELD_NUMBER: builtins.int - TIME_START_SUBMITTED_FIELD_NUMBER: builtins.int - TIME_CLOUD_RUN_JOB_STARTED_FIELD_NUMBER: builtins.int - TIME_END_SUBMITTED_FIELD_NUMBER: builtins.int - TIME_CLOUD_RUN_JOB_ENDED_FIELD_NUMBER: builtins.int - END_STATUS_FIELD_NUMBER: builtins.int - CLOUD_RUN_JOB_ID_FIELD_NUMBER: builtins.int - VIAM_SERVER_VERSION_FIELD_NUMBER: builtins.int - MAP_NAME_FIELD_NUMBER: builtins.int - SLAM_VERSION_FIELD_NUMBER: builtins.int - CONFIG_FIELD_NUMBER: builtins.int - ERROR_MSG_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class MappingMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + ROBOT_ID_FIELD_NUMBER: _builtins.int + TIME_START_SUBMITTED_FIELD_NUMBER: _builtins.int + TIME_CLOUD_RUN_JOB_STARTED_FIELD_NUMBER: _builtins.int + TIME_END_SUBMITTED_FIELD_NUMBER: _builtins.int + TIME_CLOUD_RUN_JOB_ENDED_FIELD_NUMBER: _builtins.int + END_STATUS_FIELD_NUMBER: _builtins.int + CLOUD_RUN_JOB_ID_FIELD_NUMBER: _builtins.int + VIAM_SERVER_VERSION_FIELD_NUMBER: _builtins.int + MAP_NAME_FIELD_NUMBER: _builtins.int + SLAM_VERSION_FIELD_NUMBER: _builtins.int + CONFIG_FIELD_NUMBER: _builtins.int + ERROR_MSG_FIELD_NUMBER: _builtins.int + org_id: _builtins.str 'org associated with the slam session' - location_id: builtins.str + location_id: _builtins.str 'location associated with the slam session' - robot_id: builtins.str + robot_id: _builtins.str 'robot associated with slam session' - end_status: global___EndStatus.ValueType + end_status: Global___EndStatus.ValueType 'enums that represent “success”, “failed”, etc' - cloud_run_job_id: builtins.str + cloud_run_job_id: _builtins.str 'initially unset' - viam_server_version: builtins.str + viam_server_version: _builtins.str 'version tag from request, defaults to stable' - map_name: builtins.str + map_name: _builtins.str 'name of the map package' - slam_version: builtins.str + slam_version: _builtins.str 'version tag from request, defaults to stable' - config: builtins.str + config: _builtins.str 'a robot config for a slam session' - error_msg: builtins.str + error_msg: _builtins.str 'additional details on the end status if needed, such as errors' - @property - def time_start_submitted(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_start_submitted(self) -> _timestamp_pb2.Timestamp: """time this document was created""" - @property - def time_cloud_run_job_started(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_cloud_run_job_started(self) -> _timestamp_pb2.Timestamp: """time the cloud run job started""" - @property - def time_end_submitted(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_end_submitted(self) -> _timestamp_pb2.Timestamp: """time StopSlamSession was called""" - @property - def time_cloud_run_job_ended(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_cloud_run_job_ended(self) -> _timestamp_pb2.Timestamp: """time the cloud run job ended""" - def __init__(self, *, org_id: builtins.str=..., location_id: builtins.str=..., robot_id: builtins.str=..., time_start_submitted: google.protobuf.timestamp_pb2.Timestamp | None=..., time_cloud_run_job_started: google.protobuf.timestamp_pb2.Timestamp | None=..., time_end_submitted: google.protobuf.timestamp_pb2.Timestamp | None=..., time_cloud_run_job_ended: google.protobuf.timestamp_pb2.Timestamp | None=..., end_status: global___EndStatus.ValueType=..., cloud_run_job_id: builtins.str=..., viam_server_version: builtins.str=..., map_name: builtins.str=..., slam_version: builtins.str=..., config: builtins.str=..., error_msg: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., location_id: _builtins.str=..., robot_id: _builtins.str=..., time_start_submitted: _timestamp_pb2.Timestamp | None=..., time_cloud_run_job_started: _timestamp_pb2.Timestamp | None=..., time_end_submitted: _timestamp_pb2.Timestamp | None=..., time_cloud_run_job_ended: _timestamp_pb2.Timestamp | None=..., end_status: Global___EndStatus.ValueType=..., cloud_run_job_id: _builtins.str=..., viam_server_version: _builtins.str=..., map_name: _builtins.str=..., slam_version: _builtins.str=..., config: _builtins.str=..., error_msg: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['time_cloud_run_job_ended', b'time_cloud_run_job_ended', 'time_cloud_run_job_started', b'time_cloud_run_job_started', 'time_end_submitted', b'time_end_submitted', 'time_start_submitted', b'time_start_submitted'] - def HasField(self, field_name: typing.Literal['time_cloud_run_job_ended', b'time_cloud_run_job_ended', 'time_cloud_run_job_started', b'time_cloud_run_job_started', 'time_end_submitted', b'time_end_submitted', 'time_start_submitted', b'time_start_submitted']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['cloud_run_job_id', b'cloud_run_job_id', 'config', b'config', 'end_status', b'end_status', 'error_msg', b'error_msg', 'location_id', b'location_id', 'map_name', b'map_name', 'org_id', b'org_id', 'robot_id', b'robot_id', 'slam_version', b'slam_version', 'time_cloud_run_job_ended', b'time_cloud_run_job_ended', 'time_cloud_run_job_started', b'time_cloud_run_job_started', 'time_end_submitted', b'time_end_submitted', 'time_start_submitted', b'time_start_submitted', 'viam_server_version', b'viam_server_version'] - def ClearField(self, field_name: typing.Literal['cloud_run_job_id', b'cloud_run_job_id', 'config', b'config', 'end_status', b'end_status', 'error_msg', b'error_msg', 'location_id', b'location_id', 'map_name', b'map_name', 'org_id', b'org_id', 'robot_id', b'robot_id', 'slam_version', b'slam_version', 'time_cloud_run_job_ended', b'time_cloud_run_job_ended', 'time_cloud_run_job_started', b'time_cloud_run_job_started', 'time_end_submitted', b'time_end_submitted', 'time_start_submitted', b'time_start_submitted', 'viam_server_version', b'viam_server_version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MappingMetadata = MappingMetadata \ No newline at end of file +Global___MappingMetadata: _TypeAlias = MappingMetadata \ No newline at end of file diff --git a/src/viam/gen/app/data/v1/data_pb2.py b/src/viam/gen/app/data/v1/data_pb2.py index 4658fc1080..c36d5d8d52 100644 --- a/src/viam/gen/app/data/v1/data_pb2.py +++ b/src/viam/gen/app/data/v1/data_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/data/v1/data.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/data/v1/data.proto') _sym_db = _symbol_database.Default() from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 diff --git a/src/viam/gen/app/data/v1/data_pb2.pyi b/src/viam/gen/app/data/v1/data_pb2.pyi index 07ccaf099d..6b226638a5 100644 --- a/src/viam/gen/app/data/v1/data_pb2.pyi +++ b/src/viam/gen/app/data/v1/data_pb2.pyi @@ -2,29 +2,33 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.any_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 +from collections import abc as _abc +from google.protobuf import any_pb2 as _any_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated +else: + from typing_extensions import deprecated as _deprecated +DESCRIPTOR: _descriptor.FileDescriptor class _Order: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _OrderEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Order.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _OrderEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_Order.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor ORDER_UNSPECIFIED: _Order.ValueType ORDER_DESCENDING: _Order.ValueType ORDER_ASCENDING: _Order.ValueType @@ -34,14 +38,14 @@ class Order(_Order, metaclass=_OrderEnumTypeWrapper): ORDER_UNSPECIFIED: Order.ValueType ORDER_DESCENDING: Order.ValueType ORDER_ASCENDING: Order.ValueType -global___Order = Order +Global___Order: _TypeAlias = Order class _TagsFilterType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _TagsFilterTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TagsFilterType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _TagsFilterTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_TagsFilterType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor TAGS_FILTER_TYPE_UNSPECIFIED: _TagsFilterType.ValueType TAGS_FILTER_TYPE_MATCH_BY_OR: _TagsFilterType.ValueType 'TAGS_FILTER_TYPE_MATCH_BY_OR specifies documents matched (using logical OR) on the tags field in the TagsFilter.' @@ -59,14 +63,14 @@ TAGS_FILTER_TYPE_TAGGED: TagsFilterType.ValueType 'TAGS_FILTER_TYPE_TAGGED specifies that all tagged documents should be returned.' TAGS_FILTER_TYPE_UNTAGGED: TagsFilterType.ValueType 'TAGS_FILTER_TYPE_UNTAGGED specifes that all untagged documents should be returned.' -global___TagsFilterType = TagsFilterType +Global___TagsFilterType: _TypeAlias = TagsFilterType class _TabularDataSourceType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _TabularDataSourceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TabularDataSourceType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _TabularDataSourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_TabularDataSourceType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor TABULAR_DATA_SOURCE_TYPE_UNSPECIFIED: _TabularDataSourceType.ValueType TABULAR_DATA_SOURCE_TYPE_STANDARD: _TabularDataSourceType.ValueType 'TABULAR_DATA_SOURCE_TYPE_STANDARD indicates reading from standard storage. This is\n the default option and available for all data synced to Viam.\n ' @@ -84,14 +88,14 @@ TABULAR_DATA_SOURCE_TYPE_HOT_STORAGE: TabularDataSourceType.ValueType 'TABULAR_DATA_SOURCE_TYPE_HOT_STORAGE indicates reading from hot storage. This is a\npremium feature requiring opting in specific data sources.\nSee docs at https://docs.viam.com/data-ai/capture-data/advanced/advanced-data-capture-sync/#capture-to-the-hot-data-store\n' TABULAR_DATA_SOURCE_TYPE_PIPELINE_SINK: TabularDataSourceType.ValueType 'TABULAR_DATA_SOURCE_TYPE_PIPELINE_SINK indicates reading the output data of\na data pipeline. When using this, a pipeline ID needs to be specified.\n' -global___TabularDataSourceType = TabularDataSourceType +Global___TabularDataSourceType: _TypeAlias = TabularDataSourceType class _IndexableCollection: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _IndexableCollectionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_IndexableCollection.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _IndexableCollectionEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_IndexableCollection.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor INDEXABLE_COLLECTION_UNSPECIFIED: _IndexableCollection.ValueType INDEXABLE_COLLECTION_HOT_STORE: _IndexableCollection.ValueType INDEXABLE_COLLECTION_PIPELINE_SINK: _IndexableCollection.ValueType @@ -101,14 +105,14 @@ class IndexableCollection(_IndexableCollection, metaclass=_IndexableCollectionEn INDEXABLE_COLLECTION_UNSPECIFIED: IndexableCollection.ValueType INDEXABLE_COLLECTION_HOT_STORE: IndexableCollection.ValueType INDEXABLE_COLLECTION_PIPELINE_SINK: IndexableCollection.ValueType -global___IndexableCollection = IndexableCollection +Global___IndexableCollection: _TypeAlias = IndexableCollection class _IndexCreator: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _IndexCreatorEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_IndexCreator.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _IndexCreatorEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_IndexCreator.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor INDEX_CREATOR_UNSPECIFIED: _IndexCreator.ValueType INDEX_CREATOR_VIAM: _IndexCreator.ValueType INDEX_CREATOR_CUSTOMER: _IndexCreator.ValueType @@ -118,10 +122,10 @@ class IndexCreator(_IndexCreator, metaclass=_IndexCreatorEnumTypeWrapper): INDEX_CREATOR_UNSPECIFIED: IndexCreator.ValueType INDEX_CREATOR_VIAM: IndexCreator.ValueType INDEX_CREATOR_CUSTOMER: IndexCreator.ValueType -global___IndexCreator = IndexCreator +Global___IndexCreator: _TypeAlias = IndexCreator -@typing.final -class DataRequest(google.protobuf.message.Message): +@_typing.final +class DataRequest(_message.Message): """DataRequest encapsulates the filter for the data, a limit on the maximum results returned, a last string associated with the last returned document, and the sorting order by time. last is returned in the responses TabularDataByFilterResponse and BinaryDataByFilterResponse @@ -129,862 +133,939 @@ class DataRequest(google.protobuf.message.Message): We can then use the last string from the previous API calls in the subsequent request to get the next set of ordered documents. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILTER_FIELD_NUMBER: builtins.int - LIMIT_FIELD_NUMBER: builtins.int - LAST_FIELD_NUMBER: builtins.int - SORT_ORDER_FIELD_NUMBER: builtins.int - limit: builtins.int - last: builtins.str - sort_order: global___Order.ValueType + DESCRIPTOR: _descriptor.Descriptor + FILTER_FIELD_NUMBER: _builtins.int + LIMIT_FIELD_NUMBER: _builtins.int + LAST_FIELD_NUMBER: _builtins.int + SORT_ORDER_FIELD_NUMBER: _builtins.int + limit: _builtins.int + last: _builtins.str + sort_order: Global___Order.ValueType - @property - def filter(self) -> global___Filter: + @_builtins.property + def filter(self) -> Global___Filter: ... - def __init__(self, *, filter: global___Filter | None=..., limit: builtins.int=..., last: builtins.str=..., sort_order: global___Order.ValueType=...) -> None: + def __init__(self, *, filter: Global___Filter | None=..., limit: _builtins.int=..., last: _builtins.str=..., sort_order: Global___Order.ValueType=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter'] - def HasField(self, field_name: typing.Literal['filter', b'filter']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter', 'last', b'last', 'limit', b'limit', 'sort_order', b'sort_order'] - def ClearField(self, field_name: typing.Literal['filter', b'filter', 'last', b'last', 'limit', b'limit', 'sort_order', b'sort_order']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DataRequest = DataRequest +Global___DataRequest: _TypeAlias = DataRequest -@typing.final -class Filter(google.protobuf.message.Message): +@_typing.final +class Filter(_message.Message): """Filter defines the fields over which we can filter data using a logic AND. For example, if component_type and robot_id are specified, only data from that `robot_id` of type `component_type` is returned. However, we logical OR over the specified tags and bounding box labels, such that if component_type, robot_id, tagA, tagB are specified, we return data from that `robot_id` of type `component_type` with `tagA` or `tagB`. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMPONENT_NAME_FIELD_NUMBER: builtins.int - COMPONENT_TYPE_FIELD_NUMBER: builtins.int - METHOD_FIELD_NUMBER: builtins.int - ROBOT_NAME_FIELD_NUMBER: builtins.int - ROBOT_ID_FIELD_NUMBER: builtins.int - PART_NAME_FIELD_NUMBER: builtins.int - PART_ID_FIELD_NUMBER: builtins.int - LOCATION_IDS_FIELD_NUMBER: builtins.int - ORGANIZATION_IDS_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - INTERVAL_FIELD_NUMBER: builtins.int - TAGS_FILTER_FIELD_NUMBER: builtins.int - BBOX_LABELS_FIELD_NUMBER: builtins.int - DATASET_ID_FIELD_NUMBER: builtins.int - component_name: builtins.str - component_type: builtins.str - method: builtins.str - robot_name: builtins.str - robot_id: builtins.str - part_name: builtins.str - part_id: builtins.str - dataset_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + COMPONENT_TYPE_FIELD_NUMBER: _builtins.int + METHOD_FIELD_NUMBER: _builtins.int + ROBOT_NAME_FIELD_NUMBER: _builtins.int + ROBOT_ID_FIELD_NUMBER: _builtins.int + PART_NAME_FIELD_NUMBER: _builtins.int + PART_ID_FIELD_NUMBER: _builtins.int + LOCATION_IDS_FIELD_NUMBER: _builtins.int + ORGANIZATION_IDS_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + INTERVAL_FIELD_NUMBER: _builtins.int + TAGS_FILTER_FIELD_NUMBER: _builtins.int + BBOX_LABELS_FIELD_NUMBER: _builtins.int + DATASET_ID_FIELD_NUMBER: _builtins.int + component_name: _builtins.str + component_type: _builtins.str + method: _builtins.str + robot_name: _builtins.str + robot_id: _builtins.str + part_name: _builtins.str + part_id: _builtins.str + dataset_id: _builtins.str - @property - def location_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def location_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def organization_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def organization_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def mime_type(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def mime_type(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def interval(self) -> global___CaptureInterval: + @_builtins.property + def interval(self) -> Global___CaptureInterval: ... - @property - def tags_filter(self) -> global___TagsFilter: + @_builtins.property + def tags_filter(self) -> Global___TagsFilter: ... - @property - def bbox_labels(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def bbox_labels(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """bbox_labels are used to match documents with the specified bounding box labels (using logical OR).""" - def __init__(self, *, component_name: builtins.str=..., component_type: builtins.str=..., method: builtins.str=..., robot_name: builtins.str=..., robot_id: builtins.str=..., part_name: builtins.str=..., part_id: builtins.str=..., location_ids: collections.abc.Iterable[builtins.str] | None=..., organization_ids: collections.abc.Iterable[builtins.str] | None=..., mime_type: collections.abc.Iterable[builtins.str] | None=..., interval: global___CaptureInterval | None=..., tags_filter: global___TagsFilter | None=..., bbox_labels: collections.abc.Iterable[builtins.str] | None=..., dataset_id: builtins.str=...) -> None: + def __init__(self, *, component_name: _builtins.str=..., component_type: _builtins.str=..., method: _builtins.str=..., robot_name: _builtins.str=..., robot_id: _builtins.str=..., part_name: _builtins.str=..., part_id: _builtins.str=..., location_ids: _abc.Iterable[_builtins.str] | None=..., organization_ids: _abc.Iterable[_builtins.str] | None=..., mime_type: _abc.Iterable[_builtins.str] | None=..., interval: Global___CaptureInterval | None=..., tags_filter: Global___TagsFilter | None=..., bbox_labels: _abc.Iterable[_builtins.str] | None=..., dataset_id: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['interval', b'interval', 'tags_filter', b'tags_filter'] - def HasField(self, field_name: typing.Literal['interval', b'interval', 'tags_filter', b'tags_filter']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['bbox_labels', b'bbox_labels', 'component_name', b'component_name', 'component_type', b'component_type', 'dataset_id', b'dataset_id', 'interval', b'interval', 'location_ids', b'location_ids', 'method', b'method', 'mime_type', b'mime_type', 'organization_ids', b'organization_ids', 'part_id', b'part_id', 'part_name', b'part_name', 'robot_id', b'robot_id', 'robot_name', b'robot_name', 'tags_filter', b'tags_filter'] - def ClearField(self, field_name: typing.Literal['bbox_labels', b'bbox_labels', 'component_name', b'component_name', 'component_type', b'component_type', 'dataset_id', b'dataset_id', 'interval', b'interval', 'location_ids', b'location_ids', 'method', b'method', 'mime_type', b'mime_type', 'organization_ids', b'organization_ids', 'part_id', b'part_id', 'part_name', b'part_name', 'robot_id', b'robot_id', 'robot_name', b'robot_name', 'tags_filter', b'tags_filter']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Filter = Filter +Global___Filter: _TypeAlias = Filter -@typing.final -class TagsFilter(google.protobuf.message.Message): +@_typing.final +class TagsFilter(_message.Message): """TagsFilter defines the type of filtering and, if applicable, over which tags to perform a logical OR.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - type: global___TagsFilterType.ValueType + DESCRIPTOR: _descriptor.Descriptor + TYPE_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + type: Global___TagsFilterType.ValueType - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Tags are used to match documents if `type` is UNSPECIFIED or MATCH_BY_OR.""" - def __init__(self, *, type: global___TagsFilterType.ValueType=..., tags: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, type: Global___TagsFilterType.ValueType=..., tags: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['tags', b'tags', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['tags', b'tags', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TagsFilter = TagsFilter +Global___TagsFilter: _TypeAlias = TagsFilter -@typing.final -class CaptureMetadata(google.protobuf.message.Message): +@_typing.final +class CaptureMetadata(_message.Message): """CaptureMetadata contains information on the settings used for the data capture.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class MethodParametersEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class MethodParametersEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> google.protobuf.any_pb2.Any: + @_builtins.property + def value(self) -> _any_pb2.Any: ... - def __init__(self, *, key: builtins.str=..., value: google.protobuf.any_pb2.Any | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _any_pb2.Any | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - ROBOT_NAME_FIELD_NUMBER: builtins.int - ROBOT_ID_FIELD_NUMBER: builtins.int - PART_NAME_FIELD_NUMBER: builtins.int - PART_ID_FIELD_NUMBER: builtins.int - COMPONENT_TYPE_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - METHOD_NAME_FIELD_NUMBER: builtins.int - METHOD_PARAMETERS_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - organization_id: builtins.str - location_id: builtins.str - robot_name: builtins.str - robot_id: builtins.str - part_name: builtins.str - part_id: builtins.str - component_type: builtins.str - component_name: builtins.str - method_name: builtins.str - mime_type: builtins.str - - @property - def method_parameters(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.any_pb2.Any]: - ... - - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... - - def __init__(self, *, organization_id: builtins.str=..., location_id: builtins.str=..., robot_name: builtins.str=..., robot_id: builtins.str=..., part_name: builtins.str=..., part_id: builtins.str=..., component_type: builtins.str=..., component_name: builtins.str=..., method_name: builtins.str=..., method_parameters: collections.abc.Mapping[builtins.str, google.protobuf.any_pb2.Any] | None=..., tags: collections.abc.Iterable[builtins.str] | None=..., mime_type: builtins.str=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_type', b'component_type', 'location_id', b'location_id', 'method_name', b'method_name', 'method_parameters', b'method_parameters', 'mime_type', b'mime_type', 'organization_id', b'organization_id', 'part_id', b'part_id', 'part_name', b'part_name', 'robot_id', b'robot_id', 'robot_name', b'robot_name', 'tags', b'tags']) -> None: - ... -global___CaptureMetadata = CaptureMetadata - -@typing.final -class CaptureInterval(google.protobuf.message.Message): + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + ROBOT_NAME_FIELD_NUMBER: _builtins.int + ROBOT_ID_FIELD_NUMBER: _builtins.int + PART_NAME_FIELD_NUMBER: _builtins.int + PART_ID_FIELD_NUMBER: _builtins.int + COMPONENT_TYPE_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + METHOD_NAME_FIELD_NUMBER: _builtins.int + METHOD_PARAMETERS_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + location_id: _builtins.str + robot_name: _builtins.str + robot_id: _builtins.str + part_name: _builtins.str + part_id: _builtins.str + component_type: _builtins.str + component_name: _builtins.str + method_name: _builtins.str + mime_type: _builtins.str + + @_builtins.property + def method_parameters(self) -> _containers.MessageMap[_builtins.str, _any_pb2.Any]: + ... + + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + ... + + def __init__(self, *, organization_id: _builtins.str=..., location_id: _builtins.str=..., robot_name: _builtins.str=..., robot_id: _builtins.str=..., part_name: _builtins.str=..., part_id: _builtins.str=..., component_type: _builtins.str=..., component_name: _builtins.str=..., method_name: _builtins.str=..., method_parameters: _abc.Mapping[_builtins.str, _any_pb2.Any] | None=..., tags: _abc.Iterable[_builtins.str] | None=..., mime_type: _builtins.str=...) -> None: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['component_name', b'component_name', 'component_type', b'component_type', 'location_id', b'location_id', 'method_name', b'method_name', 'method_parameters', b'method_parameters', 'mime_type', b'mime_type', 'organization_id', b'organization_id', 'part_id', b'part_id', 'part_name', b'part_name', 'robot_id', b'robot_id', 'robot_name', b'robot_name', 'tags', b'tags'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___CaptureMetadata: _TypeAlias = CaptureMetadata + +@_typing.final +class CaptureInterval(_message.Message): """CaptureInterval describes the start and end time of the capture in this file.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - START_FIELD_NUMBER: builtins.int - END_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + START_FIELD_NUMBER: _builtins.int + END_FIELD_NUMBER: _builtins.int - @property - def start(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def start(self) -> _timestamp_pb2.Timestamp: ... - @property - def end(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def end(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, start: google.protobuf.timestamp_pb2.Timestamp | None=..., end: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, start: _timestamp_pb2.Timestamp | None=..., end: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['end', b'end', 'start', b'start'] - def HasField(self, field_name: typing.Literal['end', b'end', 'start', b'start']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['end', b'end', 'start', b'start'] - def ClearField(self, field_name: typing.Literal['end', b'end', 'start', b'start']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CaptureInterval = CaptureInterval +Global___CaptureInterval: _TypeAlias = CaptureInterval -@typing.final -class TabularDataByFilterRequest(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class TabularDataByFilterRequest(_message.Message): """TabularDataByFilterRequest requests tabular data based on filter values.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_REQUEST_FIELD_NUMBER: builtins.int - COUNT_ONLY_FIELD_NUMBER: builtins.int - INCLUDE_INTERNAL_DATA_FIELD_NUMBER: builtins.int - count_only: builtins.bool - include_internal_data: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + DATA_REQUEST_FIELD_NUMBER: _builtins.int + COUNT_ONLY_FIELD_NUMBER: _builtins.int + INCLUDE_INTERNAL_DATA_FIELD_NUMBER: _builtins.int + count_only: _builtins.bool + include_internal_data: _builtins.bool - @property - def data_request(self) -> global___DataRequest: + @_builtins.property + def data_request(self) -> Global___DataRequest: ... - def __init__(self, *, data_request: global___DataRequest | None=..., count_only: builtins.bool=..., include_internal_data: builtins.bool=...) -> None: + def __init__(self, *, data_request: Global___DataRequest | None=..., count_only: _builtins.bool=..., include_internal_data: _builtins.bool=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data_request', b'data_request'] - def HasField(self, field_name: typing.Literal['data_request', b'data_request']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['count_only', b'count_only', 'data_request', b'data_request', 'include_internal_data', b'include_internal_data'] - def ClearField(self, field_name: typing.Literal['count_only', b'count_only', 'data_request', b'data_request', 'include_internal_data', b'include_internal_data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TabularDataByFilterRequest = TabularDataByFilterRequest +Global___TabularDataByFilterRequest: _TypeAlias = TabularDataByFilterRequest -@typing.final -class TabularDataByFilterResponse(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class TabularDataByFilterResponse(_message.Message): """TabularDataByFilterResponse provides the data and metadata of tabular data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_FIELD_NUMBER: builtins.int - DATA_FIELD_NUMBER: builtins.int - COUNT_FIELD_NUMBER: builtins.int - LAST_FIELD_NUMBER: builtins.int - TOTAL_SIZE_BYTES_FIELD_NUMBER: builtins.int - count: builtins.int - last: builtins.str - total_size_bytes: builtins.int + DESCRIPTOR: _descriptor.Descriptor + METADATA_FIELD_NUMBER: _builtins.int + DATA_FIELD_NUMBER: _builtins.int + COUNT_FIELD_NUMBER: _builtins.int + LAST_FIELD_NUMBER: _builtins.int + TOTAL_SIZE_BYTES_FIELD_NUMBER: _builtins.int + count: _builtins.int + last: _builtins.str + total_size_bytes: _builtins.int - @property - def metadata(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CaptureMetadata]: + @_builtins.property + def metadata(self) -> _containers.RepeatedCompositeFieldContainer[Global___CaptureMetadata]: ... - @property - def data(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TabularData]: + @_builtins.property + def data(self) -> _containers.RepeatedCompositeFieldContainer[Global___TabularData]: ... - def __init__(self, *, metadata: collections.abc.Iterable[global___CaptureMetadata] | None=..., data: collections.abc.Iterable[global___TabularData] | None=..., count: builtins.int=..., last: builtins.str=..., total_size_bytes: builtins.int=...) -> None: + def __init__(self, *, metadata: _abc.Iterable[Global___CaptureMetadata] | None=..., data: _abc.Iterable[Global___TabularData] | None=..., count: _builtins.int=..., last: _builtins.str=..., total_size_bytes: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['count', b'count', 'data', b'data', 'last', b'last', 'metadata', b'metadata', 'total_size_bytes', b'total_size_bytes'] - def ClearField(self, field_name: typing.Literal['count', b'count', 'data', b'data', 'last', b'last', 'metadata', b'metadata', 'total_size_bytes', b'total_size_bytes']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TabularDataByFilterResponse = TabularDataByFilterResponse +Global___TabularDataByFilterResponse: _TypeAlias = TabularDataByFilterResponse -@typing.final -class TabularData(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class TabularData(_message.Message): """TabularData contains data and metadata associated with tabular data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int - METADATA_INDEX_FIELD_NUMBER: builtins.int - TIME_REQUESTED_FIELD_NUMBER: builtins.int - TIME_RECEIVED_FIELD_NUMBER: builtins.int - metadata_index: builtins.int + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int + METADATA_INDEX_FIELD_NUMBER: _builtins.int + TIME_REQUESTED_FIELD_NUMBER: _builtins.int + TIME_RECEIVED_FIELD_NUMBER: _builtins.int + metadata_index: _builtins.int - @property - def data(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def data(self) -> _struct_pb2.Struct: ... - @property - def time_requested(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_requested(self) -> _timestamp_pb2.Timestamp: ... - @property - def time_received(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_received(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, data: google.protobuf.struct_pb2.Struct | None=..., metadata_index: builtins.int=..., time_requested: google.protobuf.timestamp_pb2.Timestamp | None=..., time_received: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, data: _struct_pb2.Struct | None=..., metadata_index: _builtins.int=..., time_requested: _timestamp_pb2.Timestamp | None=..., time_received: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data', b'data', 'time_received', b'time_received', 'time_requested', b'time_requested'] - def HasField(self, field_name: typing.Literal['data', b'data', 'time_received', b'time_received', 'time_requested', b'time_requested']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data', 'metadata_index', b'metadata_index', 'time_received', b'time_received', 'time_requested', b'time_requested'] - def ClearField(self, field_name: typing.Literal['data', b'data', 'metadata_index', b'metadata_index', 'time_received', b'time_received', 'time_requested', b'time_requested']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TabularData = TabularData +Global___TabularData: _TypeAlias = TabularData -@typing.final -class TabularDataBySQLRequest(google.protobuf.message.Message): +@_typing.final +class TabularDataBySQLRequest(_message.Message): """TabularDataBySQLRequest requests tabular data using a SQL query.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - SQL_QUERY_FIELD_NUMBER: builtins.int - organization_id: builtins.str - sql_query: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + SQL_QUERY_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + sql_query: _builtins.str 'sql_query accepts any valid SQL SELECT statement. Tabular data is held in a database\n called "sensorData" and a table called readings, so queries should select from "readings"\n or "sensorData.readings".\n ' - def __init__(self, *, organization_id: builtins.str=..., sql_query: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., sql_query: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id', 'sql_query', b'sql_query'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id', 'sql_query', b'sql_query']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TabularDataBySQLRequest = TabularDataBySQLRequest +Global___TabularDataBySQLRequest: _TypeAlias = TabularDataBySQLRequest -@typing.final -class TabularDataBySQLResponse(google.protobuf.message.Message): +@_typing.final +class TabularDataBySQLResponse(_message.Message): """TabularDataBySQLResponse provides unified tabular data and metadata, queried with SQL.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RAW_DATA_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + RAW_DATA_FIELD_NUMBER: _builtins.int - @property - def raw_data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + @_builtins.property + def raw_data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... - def __init__(self, *, raw_data: collections.abc.Iterable[builtins.bytes] | None=...) -> None: + def __init__(self, *, raw_data: _abc.Iterable[_builtins.bytes] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['raw_data', b'raw_data'] - def ClearField(self, field_name: typing.Literal['raw_data', b'raw_data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TabularDataBySQLResponse = TabularDataBySQLResponse +Global___TabularDataBySQLResponse: _TypeAlias = TabularDataBySQLResponse -@typing.final -class TabularDataSource(google.protobuf.message.Message): +@_typing.final +class TabularDataSource(_message.Message): """TabularDataSource specifies the data source for user queries to execute on.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - PIPELINE_ID_FIELD_NUMBER: builtins.int - type: global___TabularDataSourceType.ValueType - pipeline_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + TYPE_FIELD_NUMBER: _builtins.int + PIPELINE_ID_FIELD_NUMBER: _builtins.int + type: Global___TabularDataSourceType.ValueType + pipeline_id: _builtins.str 'pipeline_id is the ID of the pipeline to query. Required when using\n TABULAR_DATA_SOURCE_TYPE_PIPELINE_SINK.\n ' - def __init__(self, *, type: global___TabularDataSourceType.ValueType=..., pipeline_id: builtins.str | None=...) -> None: + def __init__(self, *, type: Global___TabularDataSourceType.ValueType=..., pipeline_id: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_pipeline_id', b'_pipeline_id', 'pipeline_id', b'pipeline_id'] - def HasField(self, field_name: typing.Literal['_pipeline_id', b'_pipeline_id', 'pipeline_id', b'pipeline_id']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_pipeline_id', b'_pipeline_id', 'pipeline_id', b'pipeline_id', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['_pipeline_id', b'_pipeline_id', 'pipeline_id', b'pipeline_id', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__pipeline_id: _TypeAlias = _typing.Literal['pipeline_id'] + _WhichOneofArgType__pipeline_id: _TypeAlias = _typing.Literal['_pipeline_id', b'_pipeline_id'] - def WhichOneof(self, oneof_group: typing.Literal['_pipeline_id', b'_pipeline_id']) -> typing.Literal['pipeline_id'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__pipeline_id) -> _WhichOneofReturnType__pipeline_id | None: ... -global___TabularDataSource = TabularDataSource +Global___TabularDataSource: _TypeAlias = TabularDataSource -@typing.final -class TabularDataByMQLRequest(google.protobuf.message.Message): +@_typing.final +class TabularDataByMQLRequest(_message.Message): """TabularDataByMQLRequest requests tabular data using an MQL query.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - MQL_BINARY_FIELD_NUMBER: builtins.int - USE_RECENT_DATA_FIELD_NUMBER: builtins.int - DATA_SOURCE_FIELD_NUMBER: builtins.int - QUERY_PREFIX_NAME_FIELD_NUMBER: builtins.int - organization_id: builtins.str - use_recent_data: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + MQL_BINARY_FIELD_NUMBER: _builtins.int + USE_RECENT_DATA_FIELD_NUMBER: _builtins.int + DATA_SOURCE_FIELD_NUMBER: _builtins.int + QUERY_PREFIX_NAME_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + use_recent_data: _builtins.bool 'Deprecated, please use TABULAR_DATA_SOURCE_TYPE_HOT_STORAGE instead.' - query_prefix_name: builtins.str + query_prefix_name: _builtins.str 'query_prefix_name is an optional field that can be used to specify a saved query to run' - @property - def mql_binary(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + @_builtins.property + def mql_binary(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: """mql_binary accepts a MongoDB aggregation pipeline as a list of BSON documents, where each document is one stage in the pipeline. The pipeline is run on the "sensorData.readings" namespace, which holds the Viam organization's tabular data. """ - @property - def data_source(self) -> global___TabularDataSource: + @_builtins.property + def data_source(self) -> Global___TabularDataSource: """data_source is an optional field that can be used to specify the data source for the query. If not specified, the query will run on "standard" storage. """ - def __init__(self, *, organization_id: builtins.str=..., mql_binary: collections.abc.Iterable[builtins.bytes] | None=..., use_recent_data: builtins.bool | None=..., data_source: global___TabularDataSource | None=..., query_prefix_name: builtins.str | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., mql_binary: _abc.Iterable[_builtins.bytes] | None=..., use_recent_data: _builtins.bool | None=..., data_source: Global___TabularDataSource | None=..., query_prefix_name: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_data_source', b'_data_source', '_query_prefix_name', b'_query_prefix_name', '_use_recent_data', b'_use_recent_data', 'data_source', b'data_source', 'query_prefix_name', b'query_prefix_name', 'use_recent_data', b'use_recent_data'] - def HasField(self, field_name: typing.Literal['_data_source', b'_data_source', '_query_prefix_name', b'_query_prefix_name', '_use_recent_data', b'_use_recent_data', 'data_source', b'data_source', 'query_prefix_name', b'query_prefix_name', 'use_recent_data', b'use_recent_data']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_data_source', b'_data_source', '_query_prefix_name', b'_query_prefix_name', '_use_recent_data', b'_use_recent_data', 'data_source', b'data_source', 'mql_binary', b'mql_binary', 'organization_id', b'organization_id', 'query_prefix_name', b'query_prefix_name', 'use_recent_data', b'use_recent_data'] - def ClearField(self, field_name: typing.Literal['_data_source', b'_data_source', '_query_prefix_name', b'_query_prefix_name', '_use_recent_data', b'_use_recent_data', 'data_source', b'data_source', 'mql_binary', b'mql_binary', 'organization_id', b'organization_id', 'query_prefix_name', b'query_prefix_name', 'use_recent_data', b'use_recent_data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__data_source: _TypeAlias = _typing.Literal['data_source'] + _WhichOneofArgType__data_source: _TypeAlias = _typing.Literal['_data_source', b'_data_source'] + _WhichOneofReturnType__query_prefix_name: _TypeAlias = _typing.Literal['query_prefix_name'] + _WhichOneofArgType__query_prefix_name: _TypeAlias = _typing.Literal['_query_prefix_name', b'_query_prefix_name'] + _WhichOneofReturnType__use_recent_data: _TypeAlias = _typing.Literal['use_recent_data'] + _WhichOneofArgType__use_recent_data: _TypeAlias = _typing.Literal['_use_recent_data', b'_use_recent_data'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_data_source', b'_data_source']) -> typing.Literal['data_source'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__data_source) -> _WhichOneofReturnType__data_source | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_query_prefix_name', b'_query_prefix_name']) -> typing.Literal['query_prefix_name'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__query_prefix_name) -> _WhichOneofReturnType__query_prefix_name | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_use_recent_data', b'_use_recent_data']) -> typing.Literal['use_recent_data'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__use_recent_data) -> _WhichOneofReturnType__use_recent_data | None: ... -global___TabularDataByMQLRequest = TabularDataByMQLRequest +Global___TabularDataByMQLRequest: _TypeAlias = TabularDataByMQLRequest -@typing.final -class TabularDataByMQLResponse(google.protobuf.message.Message): +@_typing.final +class TabularDataByMQLResponse(_message.Message): """TabularDataByMQLResponse provides unified tabular data and metadata, queried with MQL.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RAW_DATA_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + RAW_DATA_FIELD_NUMBER: _builtins.int - @property - def raw_data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + @_builtins.property + def raw_data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... - def __init__(self, *, raw_data: collections.abc.Iterable[builtins.bytes] | None=...) -> None: + def __init__(self, *, raw_data: _abc.Iterable[_builtins.bytes] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['raw_data', b'raw_data'] - def ClearField(self, field_name: typing.Literal['raw_data', b'raw_data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TabularDataByMQLResponse = TabularDataByMQLResponse +Global___TabularDataByMQLResponse: _TypeAlias = TabularDataByMQLResponse -@typing.final -class ExportTabularDataRequest(google.protobuf.message.Message): +@_typing.final +class ExportTabularDataRequest(_message.Message): """ExportTabularDataRequest requests tabular data from the specified data source.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_ID_FIELD_NUMBER: builtins.int - RESOURCE_NAME_FIELD_NUMBER: builtins.int - RESOURCE_SUBTYPE_FIELD_NUMBER: builtins.int - METHOD_NAME_FIELD_NUMBER: builtins.int - INTERVAL_FIELD_NUMBER: builtins.int - ADDITIONAL_PARAMETERS_FIELD_NUMBER: builtins.int - part_id: builtins.str - resource_name: builtins.str - resource_subtype: builtins.str - method_name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + PART_ID_FIELD_NUMBER: _builtins.int + RESOURCE_NAME_FIELD_NUMBER: _builtins.int + RESOURCE_SUBTYPE_FIELD_NUMBER: _builtins.int + METHOD_NAME_FIELD_NUMBER: _builtins.int + INTERVAL_FIELD_NUMBER: _builtins.int + ADDITIONAL_PARAMETERS_FIELD_NUMBER: _builtins.int + part_id: _builtins.str + resource_name: _builtins.str + resource_subtype: _builtins.str + method_name: _builtins.str - @property - def interval(self) -> global___CaptureInterval: + @_builtins.property + def interval(self) -> Global___CaptureInterval: ... - @property - def additional_parameters(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def additional_parameters(self) -> _struct_pb2.Struct: ... - def __init__(self, *, part_id: builtins.str=..., resource_name: builtins.str=..., resource_subtype: builtins.str=..., method_name: builtins.str=..., interval: global___CaptureInterval | None=..., additional_parameters: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, part_id: _builtins.str=..., resource_name: _builtins.str=..., resource_subtype: _builtins.str=..., method_name: _builtins.str=..., interval: Global___CaptureInterval | None=..., additional_parameters: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_additional_parameters', b'_additional_parameters', 'additional_parameters', b'additional_parameters', 'interval', b'interval'] - def HasField(self, field_name: typing.Literal['_additional_parameters', b'_additional_parameters', 'additional_parameters', b'additional_parameters', 'interval', b'interval']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_additional_parameters', b'_additional_parameters', 'additional_parameters', b'additional_parameters', 'interval', b'interval', 'method_name', b'method_name', 'part_id', b'part_id', 'resource_name', b'resource_name', 'resource_subtype', b'resource_subtype'] - def ClearField(self, field_name: typing.Literal['_additional_parameters', b'_additional_parameters', 'additional_parameters', b'additional_parameters', 'interval', b'interval', 'method_name', b'method_name', 'part_id', b'part_id', 'resource_name', b'resource_name', 'resource_subtype', b'resource_subtype']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__additional_parameters: _TypeAlias = _typing.Literal['additional_parameters'] + _WhichOneofArgType__additional_parameters: _TypeAlias = _typing.Literal['_additional_parameters', b'_additional_parameters'] - def WhichOneof(self, oneof_group: typing.Literal['_additional_parameters', b'_additional_parameters']) -> typing.Literal['additional_parameters'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__additional_parameters) -> _WhichOneofReturnType__additional_parameters | None: ... -global___ExportTabularDataRequest = ExportTabularDataRequest +Global___ExportTabularDataRequest: _TypeAlias = ExportTabularDataRequest -@typing.final -class ExportTabularDataResponse(google.protobuf.message.Message): +@_typing.final +class ExportTabularDataResponse(_message.Message): """ExportTabularDataResponse provides unified tabular data and metadata for a single data point from the specified data source.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_ID_FIELD_NUMBER: builtins.int - RESOURCE_NAME_FIELD_NUMBER: builtins.int - RESOURCE_SUBTYPE_FIELD_NUMBER: builtins.int - METHOD_NAME_FIELD_NUMBER: builtins.int - TIME_CAPTURED_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - ROBOT_NAME_FIELD_NUMBER: builtins.int - ROBOT_ID_FIELD_NUMBER: builtins.int - PART_NAME_FIELD_NUMBER: builtins.int - METHOD_PARAMETERS_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - PAYLOAD_FIELD_NUMBER: builtins.int - part_id: builtins.str - resource_name: builtins.str - resource_subtype: builtins.str - method_name: builtins.str - organization_id: builtins.str - location_id: builtins.str - robot_name: builtins.str - robot_id: builtins.str - part_name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + PART_ID_FIELD_NUMBER: _builtins.int + RESOURCE_NAME_FIELD_NUMBER: _builtins.int + RESOURCE_SUBTYPE_FIELD_NUMBER: _builtins.int + METHOD_NAME_FIELD_NUMBER: _builtins.int + TIME_CAPTURED_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + ROBOT_NAME_FIELD_NUMBER: _builtins.int + ROBOT_ID_FIELD_NUMBER: _builtins.int + PART_NAME_FIELD_NUMBER: _builtins.int + METHOD_PARAMETERS_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + PAYLOAD_FIELD_NUMBER: _builtins.int + part_id: _builtins.str + resource_name: _builtins.str + resource_subtype: _builtins.str + method_name: _builtins.str + organization_id: _builtins.str + location_id: _builtins.str + robot_name: _builtins.str + robot_id: _builtins.str + part_name: _builtins.str - @property - def time_captured(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_captured(self) -> _timestamp_pb2.Timestamp: ... - @property - def method_parameters(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def method_parameters(self) -> _struct_pb2.Struct: ... - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def payload(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def payload(self) -> _struct_pb2.Struct: ... - def __init__(self, *, part_id: builtins.str=..., resource_name: builtins.str=..., resource_subtype: builtins.str=..., method_name: builtins.str=..., time_captured: google.protobuf.timestamp_pb2.Timestamp | None=..., organization_id: builtins.str=..., location_id: builtins.str=..., robot_name: builtins.str=..., robot_id: builtins.str=..., part_name: builtins.str=..., method_parameters: google.protobuf.struct_pb2.Struct | None=..., tags: collections.abc.Iterable[builtins.str] | None=..., payload: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, part_id: _builtins.str=..., resource_name: _builtins.str=..., resource_subtype: _builtins.str=..., method_name: _builtins.str=..., time_captured: _timestamp_pb2.Timestamp | None=..., organization_id: _builtins.str=..., location_id: _builtins.str=..., robot_name: _builtins.str=..., robot_id: _builtins.str=..., part_name: _builtins.str=..., method_parameters: _struct_pb2.Struct | None=..., tags: _abc.Iterable[_builtins.str] | None=..., payload: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['method_parameters', b'method_parameters', 'payload', b'payload', 'time_captured', b'time_captured'] - def HasField(self, field_name: typing.Literal['method_parameters', b'method_parameters', 'payload', b'payload', 'time_captured', b'time_captured']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id', 'method_name', b'method_name', 'method_parameters', b'method_parameters', 'organization_id', b'organization_id', 'part_id', b'part_id', 'part_name', b'part_name', 'payload', b'payload', 'resource_name', b'resource_name', 'resource_subtype', b'resource_subtype', 'robot_id', b'robot_id', 'robot_name', b'robot_name', 'tags', b'tags', 'time_captured', b'time_captured'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id', 'method_name', b'method_name', 'method_parameters', b'method_parameters', 'organization_id', b'organization_id', 'part_id', b'part_id', 'part_name', b'part_name', 'payload', b'payload', 'resource_name', b'resource_name', 'resource_subtype', b'resource_subtype', 'robot_id', b'robot_id', 'robot_name', b'robot_name', 'tags', b'tags', 'time_captured', b'time_captured']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ExportTabularDataResponse = ExportTabularDataResponse +Global___ExportTabularDataResponse: _TypeAlias = ExportTabularDataResponse -@typing.final -class GetLatestTabularDataRequest(google.protobuf.message.Message): +@_typing.final +class GetLatestTabularDataRequest(_message.Message): """GetLatestTabularDataRequest requests the most recent tabular data captured from the specified data source.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_ID_FIELD_NUMBER: builtins.int - RESOURCE_NAME_FIELD_NUMBER: builtins.int - METHOD_NAME_FIELD_NUMBER: builtins.int - RESOURCE_SUBTYPE_FIELD_NUMBER: builtins.int - ADDITIONAL_PARAMETERS_FIELD_NUMBER: builtins.int - part_id: builtins.str - resource_name: builtins.str - method_name: builtins.str - resource_subtype: builtins.str + DESCRIPTOR: _descriptor.Descriptor + PART_ID_FIELD_NUMBER: _builtins.int + RESOURCE_NAME_FIELD_NUMBER: _builtins.int + METHOD_NAME_FIELD_NUMBER: _builtins.int + RESOURCE_SUBTYPE_FIELD_NUMBER: _builtins.int + ADDITIONAL_PARAMETERS_FIELD_NUMBER: _builtins.int + part_id: _builtins.str + resource_name: _builtins.str + method_name: _builtins.str + resource_subtype: _builtins.str - @property - def additional_parameters(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def additional_parameters(self) -> _struct_pb2.Struct: ... - def __init__(self, *, part_id: builtins.str=..., resource_name: builtins.str=..., method_name: builtins.str=..., resource_subtype: builtins.str=..., additional_parameters: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, part_id: _builtins.str=..., resource_name: _builtins.str=..., method_name: _builtins.str=..., resource_subtype: _builtins.str=..., additional_parameters: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_additional_parameters', b'_additional_parameters', 'additional_parameters', b'additional_parameters'] - def HasField(self, field_name: typing.Literal['_additional_parameters', b'_additional_parameters', 'additional_parameters', b'additional_parameters']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_additional_parameters', b'_additional_parameters', 'additional_parameters', b'additional_parameters', 'method_name', b'method_name', 'part_id', b'part_id', 'resource_name', b'resource_name', 'resource_subtype', b'resource_subtype'] - def ClearField(self, field_name: typing.Literal['_additional_parameters', b'_additional_parameters', 'additional_parameters', b'additional_parameters', 'method_name', b'method_name', 'part_id', b'part_id', 'resource_name', b'resource_name', 'resource_subtype', b'resource_subtype']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__additional_parameters: _TypeAlias = _typing.Literal['additional_parameters'] + _WhichOneofArgType__additional_parameters: _TypeAlias = _typing.Literal['_additional_parameters', b'_additional_parameters'] - def WhichOneof(self, oneof_group: typing.Literal['_additional_parameters', b'_additional_parameters']) -> typing.Literal['additional_parameters'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__additional_parameters) -> _WhichOneofReturnType__additional_parameters | None: ... -global___GetLatestTabularDataRequest = GetLatestTabularDataRequest +Global___GetLatestTabularDataRequest: _TypeAlias = GetLatestTabularDataRequest -@typing.final -class GetLatestTabularDataResponse(google.protobuf.message.Message): +@_typing.final +class GetLatestTabularDataResponse(_message.Message): """GetLatestTabularDataResponse provides the data, time synced, and time captured of the most recent tabular data captured from the requested data source, as long as it was synced within the last year. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TIME_CAPTURED_FIELD_NUMBER: builtins.int - TIME_SYNCED_FIELD_NUMBER: builtins.int - PAYLOAD_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + TIME_CAPTURED_FIELD_NUMBER: _builtins.int + TIME_SYNCED_FIELD_NUMBER: _builtins.int + PAYLOAD_FIELD_NUMBER: _builtins.int - @property - def time_captured(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_captured(self) -> _timestamp_pb2.Timestamp: ... - @property - def time_synced(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_synced(self) -> _timestamp_pb2.Timestamp: ... - @property - def payload(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def payload(self) -> _struct_pb2.Struct: ... - def __init__(self, *, time_captured: google.protobuf.timestamp_pb2.Timestamp | None=..., time_synced: google.protobuf.timestamp_pb2.Timestamp | None=..., payload: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, time_captured: _timestamp_pb2.Timestamp | None=..., time_synced: _timestamp_pb2.Timestamp | None=..., payload: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['payload', b'payload', 'time_captured', b'time_captured', 'time_synced', b'time_synced'] - def HasField(self, field_name: typing.Literal['payload', b'payload', 'time_captured', b'time_captured', 'time_synced', b'time_synced']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['payload', b'payload', 'time_captured', b'time_captured', 'time_synced', b'time_synced'] - def ClearField(self, field_name: typing.Literal['payload', b'payload', 'time_captured', b'time_captured', 'time_synced', b'time_synced']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLatestTabularDataResponse = GetLatestTabularDataResponse +Global___GetLatestTabularDataResponse: _TypeAlias = GetLatestTabularDataResponse -@typing.final -class BinaryData(google.protobuf.message.Message): +@_typing.final +class BinaryData(_message.Message): """BinaryData contains data and metadata associated with binary data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BINARY_FIELD_NUMBER: builtins.int - METADATA_FIELD_NUMBER: builtins.int - binary: builtins.bytes + DESCRIPTOR: _descriptor.Descriptor + BINARY_FIELD_NUMBER: _builtins.int + METADATA_FIELD_NUMBER: _builtins.int + binary: _builtins.bytes - @property - def metadata(self) -> global___BinaryMetadata: + @_builtins.property + def metadata(self) -> Global___BinaryMetadata: ... - def __init__(self, *, binary: builtins.bytes=..., metadata: global___BinaryMetadata | None=...) -> None: + def __init__(self, *, binary: _builtins.bytes=..., metadata: Global___BinaryMetadata | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata'] - def HasField(self, field_name: typing.Literal['metadata', b'metadata']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary', b'binary', 'metadata', b'metadata'] - def ClearField(self, field_name: typing.Literal['binary', b'binary', 'metadata', b'metadata']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BinaryData = BinaryData +Global___BinaryData: _TypeAlias = BinaryData -@typing.final -class BinaryDataByFilterRequest(google.protobuf.message.Message): +@_typing.final +class BinaryDataByFilterRequest(_message.Message): """BinaryDataByFilterRequest requests the data and metadata of binary (image + file) data when a filter is provided.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_REQUEST_FIELD_NUMBER: builtins.int - INCLUDE_BINARY_FIELD_NUMBER: builtins.int - COUNT_ONLY_FIELD_NUMBER: builtins.int - INCLUDE_INTERNAL_DATA_FIELD_NUMBER: builtins.int - include_binary: builtins.bool - count_only: builtins.bool - include_internal_data: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + DATA_REQUEST_FIELD_NUMBER: _builtins.int + INCLUDE_BINARY_FIELD_NUMBER: _builtins.int + COUNT_ONLY_FIELD_NUMBER: _builtins.int + INCLUDE_INTERNAL_DATA_FIELD_NUMBER: _builtins.int + include_binary: _builtins.bool + count_only: _builtins.bool + include_internal_data: _builtins.bool - @property - def data_request(self) -> global___DataRequest: + @_builtins.property + def data_request(self) -> Global___DataRequest: ... - def __init__(self, *, data_request: global___DataRequest | None=..., include_binary: builtins.bool=..., count_only: builtins.bool=..., include_internal_data: builtins.bool=...) -> None: + def __init__(self, *, data_request: Global___DataRequest | None=..., include_binary: _builtins.bool=..., count_only: _builtins.bool=..., include_internal_data: _builtins.bool=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data_request', b'data_request'] - def HasField(self, field_name: typing.Literal['data_request', b'data_request']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['count_only', b'count_only', 'data_request', b'data_request', 'include_binary', b'include_binary', 'include_internal_data', b'include_internal_data'] - def ClearField(self, field_name: typing.Literal['count_only', b'count_only', 'data_request', b'data_request', 'include_binary', b'include_binary', 'include_internal_data', b'include_internal_data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BinaryDataByFilterRequest = BinaryDataByFilterRequest +Global___BinaryDataByFilterRequest: _TypeAlias = BinaryDataByFilterRequest -@typing.final -class BinaryDataByFilterResponse(google.protobuf.message.Message): +@_typing.final +class BinaryDataByFilterResponse(_message.Message): """BinaryDataByFilterResponse provides the data and metadata of binary (image + file) data when a filter is provided.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int - COUNT_FIELD_NUMBER: builtins.int - LAST_FIELD_NUMBER: builtins.int - TOTAL_SIZE_BYTES_FIELD_NUMBER: builtins.int - count: builtins.int - last: builtins.str - total_size_bytes: builtins.int + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int + COUNT_FIELD_NUMBER: _builtins.int + LAST_FIELD_NUMBER: _builtins.int + TOTAL_SIZE_BYTES_FIELD_NUMBER: _builtins.int + count: _builtins.int + last: _builtins.str + total_size_bytes: _builtins.int - @property - def data(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryData]: + @_builtins.property + def data(self) -> _containers.RepeatedCompositeFieldContainer[Global___BinaryData]: ... - def __init__(self, *, data: collections.abc.Iterable[global___BinaryData] | None=..., count: builtins.int=..., last: builtins.str=..., total_size_bytes: builtins.int=...) -> None: + def __init__(self, *, data: _abc.Iterable[Global___BinaryData] | None=..., count: _builtins.int=..., last: _builtins.str=..., total_size_bytes: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['count', b'count', 'data', b'data', 'last', b'last', 'total_size_bytes', b'total_size_bytes'] - def ClearField(self, field_name: typing.Literal['count', b'count', 'data', b'data', 'last', b'last', 'total_size_bytes', b'total_size_bytes']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BinaryDataByFilterResponse = BinaryDataByFilterResponse +Global___BinaryDataByFilterResponse: _TypeAlias = BinaryDataByFilterResponse -@typing.final -class BinaryID(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class BinaryID(_message.Message): """BinaryID is the unique identifier for a file that one can request to be retrieved or modified.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILE_ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - file_id: builtins.str - organization_id: builtins.str - location_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + FILE_ID_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + file_id: _builtins.str + organization_id: _builtins.str + location_id: _builtins.str - def __init__(self, *, file_id: builtins.str=..., organization_id: builtins.str=..., location_id: builtins.str=...) -> None: + def __init__(self, *, file_id: _builtins.str=..., organization_id: _builtins.str=..., location_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['file_id', b'file_id', 'location_id', b'location_id', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['file_id', b'file_id', 'location_id', b'location_id', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BinaryID = BinaryID +Global___BinaryID: _TypeAlias = BinaryID -@typing.final -class BinaryDataByIDsRequest(google.protobuf.message.Message): +@_typing.final +class BinaryDataByIDsRequest(_message.Message): """BinaryDataByFilterRequest requests the data and metadata of binary (image + file) data by binary ids.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INCLUDE_BINARY_FIELD_NUMBER: builtins.int - BINARY_IDS_FIELD_NUMBER: builtins.int - BINARY_DATA_IDS_FIELD_NUMBER: builtins.int - include_binary: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + INCLUDE_BINARY_FIELD_NUMBER: _builtins.int + BINARY_IDS_FIELD_NUMBER: _builtins.int + BINARY_DATA_IDS_FIELD_NUMBER: _builtins.int + include_binary: _builtins.bool - @property - def binary_ids(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def binary_ids(self) -> _containers.RepeatedCompositeFieldContainer[Global___BinaryID]: ... - @property - def binary_data_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def binary_data_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, include_binary: builtins.bool=..., binary_ids: collections.abc.Iterable[global___BinaryID] | None=..., binary_data_ids: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, include_binary: _builtins.bool=..., binary_ids: _abc.Iterable[Global___BinaryID] | None=..., binary_data_ids: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids', 'include_binary', b'include_binary'] - def ClearField(self, field_name: typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids', 'include_binary', b'include_binary']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BinaryDataByIDsRequest = BinaryDataByIDsRequest +Global___BinaryDataByIDsRequest: _TypeAlias = BinaryDataByIDsRequest -@typing.final -class BinaryDataByIDsResponse(google.protobuf.message.Message): +@_typing.final +class BinaryDataByIDsResponse(_message.Message): """BinaryDataByIDsResponse provides the data and metadata of binary (image + file) data when a filter is provided.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int - COUNT_FIELD_NUMBER: builtins.int - count: builtins.int + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int + COUNT_FIELD_NUMBER: _builtins.int + count: _builtins.int - @property - def data(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryData]: + @_builtins.property + def data(self) -> _containers.RepeatedCompositeFieldContainer[Global___BinaryData]: ... - def __init__(self, *, data: collections.abc.Iterable[global___BinaryData] | None=..., count: builtins.int=...) -> None: + def __init__(self, *, data: _abc.Iterable[Global___BinaryData] | None=..., count: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['count', b'count', 'data', b'data'] - def ClearField(self, field_name: typing.Literal['count', b'count', 'data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BinaryDataByIDsResponse = BinaryDataByIDsResponse +Global___BinaryDataByIDsResponse: _TypeAlias = BinaryDataByIDsResponse -@typing.final -class BoundingBox(google.protobuf.message.Message): +@_typing.final +class BoundingBox(_message.Message): """BoundingBox represents a labeled bounding box on an image. x and y values are normalized ratios between 0 and 1. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - LABEL_FIELD_NUMBER: builtins.int - X_MIN_NORMALIZED_FIELD_NUMBER: builtins.int - Y_MIN_NORMALIZED_FIELD_NUMBER: builtins.int - X_MAX_NORMALIZED_FIELD_NUMBER: builtins.int - Y_MAX_NORMALIZED_FIELD_NUMBER: builtins.int - CONFIDENCE_FIELD_NUMBER: builtins.int - id: builtins.str - label: builtins.str - x_min_normalized: builtins.float - y_min_normalized: builtins.float - x_max_normalized: builtins.float - y_max_normalized: builtins.float - confidence: builtins.float + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + LABEL_FIELD_NUMBER: _builtins.int + X_MIN_NORMALIZED_FIELD_NUMBER: _builtins.int + Y_MIN_NORMALIZED_FIELD_NUMBER: _builtins.int + X_MAX_NORMALIZED_FIELD_NUMBER: _builtins.int + Y_MAX_NORMALIZED_FIELD_NUMBER: _builtins.int + CONFIDENCE_FIELD_NUMBER: _builtins.int + id: _builtins.str + label: _builtins.str + x_min_normalized: _builtins.float + y_min_normalized: _builtins.float + x_max_normalized: _builtins.float + y_max_normalized: _builtins.float + confidence: _builtins.float 'confidence is an optional range from 0 - 1' - def __init__(self, *, id: builtins.str=..., label: builtins.str=..., x_min_normalized: builtins.float=..., y_min_normalized: builtins.float=..., x_max_normalized: builtins.float=..., y_max_normalized: builtins.float=..., confidence: builtins.float | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., label: _builtins.str=..., x_min_normalized: _builtins.float=..., y_min_normalized: _builtins.float=..., x_max_normalized: _builtins.float=..., y_max_normalized: _builtins.float=..., confidence: _builtins.float | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_confidence', b'_confidence', 'confidence', b'confidence'] - def HasField(self, field_name: typing.Literal['_confidence', b'_confidence', 'confidence', b'confidence']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_confidence', b'_confidence', 'confidence', b'confidence', 'id', b'id', 'label', b'label', 'x_max_normalized', b'x_max_normalized', 'x_min_normalized', b'x_min_normalized', 'y_max_normalized', b'y_max_normalized', 'y_min_normalized', b'y_min_normalized'] - def ClearField(self, field_name: typing.Literal['_confidence', b'_confidence', 'confidence', b'confidence', 'id', b'id', 'label', b'label', 'x_max_normalized', b'x_max_normalized', 'x_min_normalized', b'x_min_normalized', 'y_max_normalized', b'y_max_normalized', 'y_min_normalized', b'y_min_normalized']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__confidence: _TypeAlias = _typing.Literal['confidence'] + _WhichOneofArgType__confidence: _TypeAlias = _typing.Literal['_confidence', b'_confidence'] - def WhichOneof(self, oneof_group: typing.Literal['_confidence', b'_confidence']) -> typing.Literal['confidence'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__confidence) -> _WhichOneofReturnType__confidence | None: ... -global___BoundingBox = BoundingBox +Global___BoundingBox: _TypeAlias = BoundingBox -@typing.final -class Classification(google.protobuf.message.Message): +@_typing.final +class Classification(_message.Message): """Classification represents a confidence score with a label.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - LABEL_FIELD_NUMBER: builtins.int - CONFIDENCE_FIELD_NUMBER: builtins.int - id: builtins.str - label: builtins.str - confidence: builtins.float + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + LABEL_FIELD_NUMBER: _builtins.int + CONFIDENCE_FIELD_NUMBER: _builtins.int + id: _builtins.str + label: _builtins.str + confidence: _builtins.float 'confidence is an optional range from 0 - 1' - def __init__(self, *, id: builtins.str=..., label: builtins.str=..., confidence: builtins.float | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., label: _builtins.str=..., confidence: _builtins.float | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_confidence', b'_confidence', 'confidence', b'confidence'] - def HasField(self, field_name: typing.Literal['_confidence', b'_confidence', 'confidence', b'confidence']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_confidence', b'_confidence', 'confidence', b'confidence', 'id', b'id', 'label', b'label'] - def ClearField(self, field_name: typing.Literal['_confidence', b'_confidence', 'confidence', b'confidence', 'id', b'id', 'label', b'label']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__confidence: _TypeAlias = _typing.Literal['confidence'] + _WhichOneofArgType__confidence: _TypeAlias = _typing.Literal['_confidence', b'_confidence'] - def WhichOneof(self, oneof_group: typing.Literal['_confidence', b'_confidence']) -> typing.Literal['confidence'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__confidence) -> _WhichOneofReturnType__confidence | None: ... -global___Classification = Classification +Global___Classification: _TypeAlias = Classification -@typing.final -class Annotations(google.protobuf.message.Message): +@_typing.final +class Annotations(_message.Message): """Annotations are data annotations used for machine learning.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BBOXES_FIELD_NUMBER: builtins.int - CLASSIFICATIONS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + BBOXES_FIELD_NUMBER: _builtins.int + CLASSIFICATIONS_FIELD_NUMBER: _builtins.int - @property - def bboxes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BoundingBox]: + @_builtins.property + def bboxes(self) -> _containers.RepeatedCompositeFieldContainer[Global___BoundingBox]: ... - @property - def classifications(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Classification]: + @_builtins.property + def classifications(self) -> _containers.RepeatedCompositeFieldContainer[Global___Classification]: ... - def __init__(self, *, bboxes: collections.abc.Iterable[global___BoundingBox] | None=..., classifications: collections.abc.Iterable[global___Classification] | None=...) -> None: + def __init__(self, *, bboxes: _abc.Iterable[Global___BoundingBox] | None=..., classifications: _abc.Iterable[Global___Classification] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['bboxes', b'bboxes', 'classifications', b'classifications'] - def ClearField(self, field_name: typing.Literal['bboxes', b'bboxes', 'classifications', b'classifications']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Annotations = Annotations +Global___Annotations: _TypeAlias = Annotations -@typing.final -class BinaryMetadata(google.protobuf.message.Message): +@_typing.final +class BinaryMetadata(_message.Message): """BinaryMetadata is the metadata associated with binary data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - CAPTURE_METADATA_FIELD_NUMBER: builtins.int - TIME_REQUESTED_FIELD_NUMBER: builtins.int - TIME_RECEIVED_FIELD_NUMBER: builtins.int - FILE_NAME_FIELD_NUMBER: builtins.int - FILE_EXT_FIELD_NUMBER: builtins.int - URI_FIELD_NUMBER: builtins.int - ANNOTATIONS_FIELD_NUMBER: builtins.int - DATASET_IDS_FIELD_NUMBER: builtins.int - BINARY_DATA_ID_FIELD_NUMBER: builtins.int - id: builtins.str - file_name: builtins.str - file_ext: builtins.str - uri: builtins.str - binary_data_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + CAPTURE_METADATA_FIELD_NUMBER: _builtins.int + TIME_REQUESTED_FIELD_NUMBER: _builtins.int + TIME_RECEIVED_FIELD_NUMBER: _builtins.int + FILE_NAME_FIELD_NUMBER: _builtins.int + FILE_EXT_FIELD_NUMBER: _builtins.int + URI_FIELD_NUMBER: _builtins.int + ANNOTATIONS_FIELD_NUMBER: _builtins.int + DATASET_IDS_FIELD_NUMBER: _builtins.int + BINARY_DATA_ID_FIELD_NUMBER: _builtins.int + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def id(self) -> _builtins.str: + ... + + @id.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def id(self, value: _builtins.str) -> None: + ... + file_name: _builtins.str + file_ext: _builtins.str + uri: _builtins.str + binary_data_id: _builtins.str - @property - def capture_metadata(self) -> global___CaptureMetadata: + @_builtins.property + def capture_metadata(self) -> Global___CaptureMetadata: ... - @property - def time_requested(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_requested(self) -> _timestamp_pb2.Timestamp: ... - @property - def time_received(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_received(self) -> _timestamp_pb2.Timestamp: ... - @property - def annotations(self) -> global___Annotations: + @_builtins.property + def annotations(self) -> Global___Annotations: ... - @property - def dataset_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def dataset_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, id: builtins.str=..., capture_metadata: global___CaptureMetadata | None=..., time_requested: google.protobuf.timestamp_pb2.Timestamp | None=..., time_received: google.protobuf.timestamp_pb2.Timestamp | None=..., file_name: builtins.str=..., file_ext: builtins.str=..., uri: builtins.str=..., annotations: global___Annotations | None=..., dataset_ids: collections.abc.Iterable[builtins.str] | None=..., binary_data_id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., capture_metadata: Global___CaptureMetadata | None=..., time_requested: _timestamp_pb2.Timestamp | None=..., time_received: _timestamp_pb2.Timestamp | None=..., file_name: _builtins.str=..., file_ext: _builtins.str=..., uri: _builtins.str=..., annotations: Global___Annotations | None=..., dataset_ids: _abc.Iterable[_builtins.str] | None=..., binary_data_id: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['annotations', b'annotations', 'capture_metadata', b'capture_metadata', 'time_received', b'time_received', 'time_requested', b'time_requested'] - def HasField(self, field_name: typing.Literal['annotations', b'annotations', 'capture_metadata', b'capture_metadata', 'time_received', b'time_received', 'time_requested', b'time_requested']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['annotations', b'annotations', 'binary_data_id', b'binary_data_id', 'capture_metadata', b'capture_metadata', 'dataset_ids', b'dataset_ids', 'file_ext', b'file_ext', 'file_name', b'file_name', 'id', b'id', 'time_received', b'time_received', 'time_requested', b'time_requested', 'uri', b'uri'] - def ClearField(self, field_name: typing.Literal['annotations', b'annotations', 'binary_data_id', b'binary_data_id', 'capture_metadata', b'capture_metadata', 'dataset_ids', b'dataset_ids', 'file_ext', b'file_ext', 'file_name', b'file_name', 'id', b'id', 'time_received', b'time_received', 'time_requested', b'time_requested', 'uri', b'uri']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BinaryMetadata = BinaryMetadata +Global___BinaryMetadata: _TypeAlias = BinaryMetadata -@typing.final -class DeleteTabularFilter(google.protobuf.message.Message): +@_typing.final +class DeleteTabularFilter(_message.Message): """TabularFilter filters tabular data. All fields are optional; omitted fields are treated as unconstrained.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_IDS_FIELD_NUMBER: builtins.int - ROBOT_ID_FIELD_NUMBER: builtins.int - PART_ID_FIELD_NUMBER: builtins.int - COMPONENT_TYPE_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - METHOD_FIELD_NUMBER: builtins.int - TAGS_FILTER_FIELD_NUMBER: builtins.int - robot_id: builtins.str - part_id: builtins.str - component_type: builtins.str - component_name: builtins.str - method: builtins.str + DESCRIPTOR: _descriptor.Descriptor + LOCATION_IDS_FIELD_NUMBER: _builtins.int + ROBOT_ID_FIELD_NUMBER: _builtins.int + PART_ID_FIELD_NUMBER: _builtins.int + COMPONENT_TYPE_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + METHOD_FIELD_NUMBER: _builtins.int + TAGS_FILTER_FIELD_NUMBER: _builtins.int + robot_id: _builtins.str + part_id: _builtins.str + component_type: _builtins.str + component_name: _builtins.str + method: _builtins.str - @property - def location_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def location_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def tags_filter(self) -> global___TagsFilter: + @_builtins.property + def tags_filter(self) -> Global___TagsFilter: ... - def __init__(self, *, location_ids: collections.abc.Iterable[builtins.str] | None=..., robot_id: builtins.str=..., part_id: builtins.str=..., component_type: builtins.str=..., component_name: builtins.str=..., method: builtins.str=..., tags_filter: global___TagsFilter | None=...) -> None: + def __init__(self, *, location_ids: _abc.Iterable[_builtins.str] | None=..., robot_id: _builtins.str=..., part_id: _builtins.str=..., component_type: _builtins.str=..., component_name: _builtins.str=..., method: _builtins.str=..., tags_filter: Global___TagsFilter | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['tags_filter', b'tags_filter'] - def HasField(self, field_name: typing.Literal['tags_filter', b'tags_filter']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['component_name', b'component_name', 'component_type', b'component_type', 'location_ids', b'location_ids', 'method', b'method', 'part_id', b'part_id', 'robot_id', b'robot_id', 'tags_filter', b'tags_filter'] - def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_type', b'component_type', 'location_ids', b'location_ids', 'method', b'method', 'part_id', b'part_id', 'robot_id', b'robot_id', 'tags_filter', b'tags_filter']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteTabularFilter = DeleteTabularFilter +Global___DeleteTabularFilter: _TypeAlias = DeleteTabularFilter -@typing.final -class DeleteTabularDataRequest(google.protobuf.message.Message): +@_typing.final +class DeleteTabularDataRequest(_message.Message): """DeleteTabularDataRequest deletes the data from the organization that is older than `delete_older_than_days` in UTC time. For example, if delete_older_than_days=1 and the request is made at 1AM EST on March 11 (March 11 5AM UTC), this deletes all data captured through March 10 11:59:59PM UTC. @@ -993,984 +1074,1084 @@ class DeleteTabularDataRequest(google.protobuf.message.Message): If delete_older_than_days is 0, all existing data is deleted. If no filter is provided, data will be deleted based on organization_id. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - DELETE_OLDER_THAN_DAYS_FIELD_NUMBER: builtins.int - FILTER_FIELD_NUMBER: builtins.int - organization_id: builtins.str - delete_older_than_days: builtins.int + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + DELETE_OLDER_THAN_DAYS_FIELD_NUMBER: _builtins.int + FILTER_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + delete_older_than_days: _builtins.int - @property - def filter(self) -> global___DeleteTabularFilter: + @_builtins.property + def filter(self) -> Global___DeleteTabularFilter: ... - def __init__(self, *, organization_id: builtins.str=..., delete_older_than_days: builtins.int=..., filter: global___DeleteTabularFilter | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., delete_older_than_days: _builtins.int=..., filter: Global___DeleteTabularFilter | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_filter', b'_filter', 'filter', b'filter'] - def HasField(self, field_name: typing.Literal['_filter', b'_filter', 'filter', b'filter']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_filter', b'_filter', 'delete_older_than_days', b'delete_older_than_days', 'filter', b'filter', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['_filter', b'_filter', 'delete_older_than_days', b'delete_older_than_days', 'filter', b'filter', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__filter: _TypeAlias = _typing.Literal['filter'] + _WhichOneofArgType__filter: _TypeAlias = _typing.Literal['_filter', b'_filter'] - def WhichOneof(self, oneof_group: typing.Literal['_filter', b'_filter']) -> typing.Literal['filter'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__filter) -> _WhichOneofReturnType__filter | None: ... -global___DeleteTabularDataRequest = DeleteTabularDataRequest +Global___DeleteTabularDataRequest: _TypeAlias = DeleteTabularDataRequest -@typing.final -class DeleteTabularDataResponse(google.protobuf.message.Message): +@_typing.final +class DeleteTabularDataResponse(_message.Message): """DeleteBinaryDataResponse returns the number of tabular datapoints deleted.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DELETED_COUNT_FIELD_NUMBER: builtins.int - deleted_count: builtins.int + DESCRIPTOR: _descriptor.Descriptor + DELETED_COUNT_FIELD_NUMBER: _builtins.int + deleted_count: _builtins.int - def __init__(self, *, deleted_count: builtins.int=...) -> None: + def __init__(self, *, deleted_count: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['deleted_count', b'deleted_count'] - def ClearField(self, field_name: typing.Literal['deleted_count', b'deleted_count']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteTabularDataResponse = DeleteTabularDataResponse +Global___DeleteTabularDataResponse: _TypeAlias = DeleteTabularDataResponse -@typing.final -class DeleteBinaryDataByFilterRequest(google.protobuf.message.Message): +@_typing.final +class DeleteBinaryDataByFilterRequest(_message.Message): """DeleteBinaryDataByFilterRequest deletes the data and metadata of binary data when a filter is provided.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILTER_FIELD_NUMBER: builtins.int - INCLUDE_INTERNAL_DATA_FIELD_NUMBER: builtins.int - include_internal_data: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + FILTER_FIELD_NUMBER: _builtins.int + INCLUDE_INTERNAL_DATA_FIELD_NUMBER: _builtins.int + include_internal_data: _builtins.bool - @property - def filter(self) -> global___Filter: + @_builtins.property + def filter(self) -> Global___Filter: ... - def __init__(self, *, filter: global___Filter | None=..., include_internal_data: builtins.bool=...) -> None: + def __init__(self, *, filter: Global___Filter | None=..., include_internal_data: _builtins.bool=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter'] - def HasField(self, field_name: typing.Literal['filter', b'filter']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter', 'include_internal_data', b'include_internal_data'] - def ClearField(self, field_name: typing.Literal['filter', b'filter', 'include_internal_data', b'include_internal_data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteBinaryDataByFilterRequest = DeleteBinaryDataByFilterRequest +Global___DeleteBinaryDataByFilterRequest: _TypeAlias = DeleteBinaryDataByFilterRequest -@typing.final -class DeleteBinaryDataByFilterResponse(google.protobuf.message.Message): +@_typing.final +class DeleteBinaryDataByFilterResponse(_message.Message): """DeleteBinaryDataByFilterResponse returns the number of binary files deleted when a filter is provided.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DELETED_COUNT_FIELD_NUMBER: builtins.int - deleted_count: builtins.int + DESCRIPTOR: _descriptor.Descriptor + DELETED_COUNT_FIELD_NUMBER: _builtins.int + deleted_count: _builtins.int - def __init__(self, *, deleted_count: builtins.int=...) -> None: + def __init__(self, *, deleted_count: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['deleted_count', b'deleted_count'] - def ClearField(self, field_name: typing.Literal['deleted_count', b'deleted_count']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteBinaryDataByFilterResponse = DeleteBinaryDataByFilterResponse +Global___DeleteBinaryDataByFilterResponse: _TypeAlias = DeleteBinaryDataByFilterResponse -@typing.final -class DeleteBinaryDataByIDsRequest(google.protobuf.message.Message): +@_typing.final +class DeleteBinaryDataByIDsRequest(_message.Message): """DeleteBinaryDataByIDsRequest deletes the data and metadata of binary data when binary ids are provided.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BINARY_IDS_FIELD_NUMBER: builtins.int - BINARY_DATA_IDS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + BINARY_IDS_FIELD_NUMBER: _builtins.int + BINARY_DATA_IDS_FIELD_NUMBER: _builtins.int - @property - def binary_ids(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def binary_ids(self) -> _containers.RepeatedCompositeFieldContainer[Global___BinaryID]: ... - @property - def binary_data_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def binary_data_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, binary_ids: collections.abc.Iterable[global___BinaryID] | None=..., binary_data_ids: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, binary_ids: _abc.Iterable[Global___BinaryID] | None=..., binary_data_ids: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids'] - def ClearField(self, field_name: typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteBinaryDataByIDsRequest = DeleteBinaryDataByIDsRequest +Global___DeleteBinaryDataByIDsRequest: _TypeAlias = DeleteBinaryDataByIDsRequest -@typing.final -class DeleteBinaryDataByIDsResponse(google.protobuf.message.Message): +@_typing.final +class DeleteBinaryDataByIDsResponse(_message.Message): """DeleteBinaryDataByIDsResponse returns the number of binary files deleted when binary ids are provided.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DELETED_COUNT_FIELD_NUMBER: builtins.int - deleted_count: builtins.int + DESCRIPTOR: _descriptor.Descriptor + DELETED_COUNT_FIELD_NUMBER: _builtins.int + deleted_count: _builtins.int - def __init__(self, *, deleted_count: builtins.int=...) -> None: + def __init__(self, *, deleted_count: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['deleted_count', b'deleted_count'] - def ClearField(self, field_name: typing.Literal['deleted_count', b'deleted_count']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteBinaryDataByIDsResponse = DeleteBinaryDataByIDsResponse +Global___DeleteBinaryDataByIDsResponse: _TypeAlias = DeleteBinaryDataByIDsResponse -@typing.final -class AddTagsToBinaryDataByIDsRequest(google.protobuf.message.Message): +@_typing.final +class AddTagsToBinaryDataByIDsRequest(_message.Message): """AddTagsToBinaryDataByIDsRequest requests adding all specified tags to each of the files when binary ids are provided.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BINARY_IDS_FIELD_NUMBER: builtins.int - BINARY_DATA_IDS_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + BINARY_IDS_FIELD_NUMBER: _builtins.int + BINARY_DATA_IDS_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int - @property - def binary_ids(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def binary_ids(self) -> _containers.RepeatedCompositeFieldContainer[Global___BinaryID]: ... - @property - def binary_data_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def binary_data_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, binary_ids: collections.abc.Iterable[global___BinaryID] | None=..., binary_data_ids: collections.abc.Iterable[builtins.str] | None=..., tags: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, binary_ids: _abc.Iterable[Global___BinaryID] | None=..., binary_data_ids: _abc.Iterable[_builtins.str] | None=..., tags: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids', 'tags', b'tags'] - def ClearField(self, field_name: typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids', 'tags', b'tags']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AddTagsToBinaryDataByIDsRequest = AddTagsToBinaryDataByIDsRequest +Global___AddTagsToBinaryDataByIDsRequest: _TypeAlias = AddTagsToBinaryDataByIDsRequest -@typing.final -class AddTagsToBinaryDataByIDsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class AddTagsToBinaryDataByIDsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AddTagsToBinaryDataByIDsResponse = AddTagsToBinaryDataByIDsResponse +Global___AddTagsToBinaryDataByIDsResponse: _TypeAlias = AddTagsToBinaryDataByIDsResponse -@typing.final -class AddTagsToBinaryDataByFilterRequest(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class AddTagsToBinaryDataByFilterRequest(_message.Message): """AddTagsToBinaryDataByFilterRequest requests adding all specified tags to each of the files when a filter is provided.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILTER_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + FILTER_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int - @property - def filter(self) -> global___Filter: + @_builtins.property + def filter(self) -> Global___Filter: ... - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, filter: global___Filter | None=..., tags: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, filter: Global___Filter | None=..., tags: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter'] - def HasField(self, field_name: typing.Literal['filter', b'filter']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter', 'tags', b'tags'] - def ClearField(self, field_name: typing.Literal['filter', b'filter', 'tags', b'tags']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AddTagsToBinaryDataByFilterRequest = AddTagsToBinaryDataByFilterRequest +Global___AddTagsToBinaryDataByFilterRequest: _TypeAlias = AddTagsToBinaryDataByFilterRequest -@typing.final -class AddTagsToBinaryDataByFilterResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class AddTagsToBinaryDataByFilterResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AddTagsToBinaryDataByFilterResponse = AddTagsToBinaryDataByFilterResponse +Global___AddTagsToBinaryDataByFilterResponse: _TypeAlias = AddTagsToBinaryDataByFilterResponse -@typing.final -class RemoveTagsFromBinaryDataByIDsRequest(google.protobuf.message.Message): +@_typing.final +class RemoveTagsFromBinaryDataByIDsRequest(_message.Message): """RemoveTagsFromBinaryDataByIDsRequest requests removing the given tags value from each file when binary ids are provided.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BINARY_IDS_FIELD_NUMBER: builtins.int - BINARY_DATA_IDS_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + BINARY_IDS_FIELD_NUMBER: _builtins.int + BINARY_DATA_IDS_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int - @property - def binary_ids(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def binary_ids(self) -> _containers.RepeatedCompositeFieldContainer[Global___BinaryID]: ... - @property - def binary_data_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def binary_data_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, binary_ids: collections.abc.Iterable[global___BinaryID] | None=..., binary_data_ids: collections.abc.Iterable[builtins.str] | None=..., tags: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, binary_ids: _abc.Iterable[Global___BinaryID] | None=..., binary_data_ids: _abc.Iterable[_builtins.str] | None=..., tags: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids', 'tags', b'tags'] - def ClearField(self, field_name: typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids', 'tags', b'tags']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoveTagsFromBinaryDataByIDsRequest = RemoveTagsFromBinaryDataByIDsRequest +Global___RemoveTagsFromBinaryDataByIDsRequest: _TypeAlias = RemoveTagsFromBinaryDataByIDsRequest -@typing.final -class RemoveTagsFromBinaryDataByIDsResponse(google.protobuf.message.Message): +@_typing.final +class RemoveTagsFromBinaryDataByIDsResponse(_message.Message): """RemoveTagsFromBinaryDataByIDsResponse returns the number of binary files which had tags removed""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DELETED_COUNT_FIELD_NUMBER: builtins.int - deleted_count: builtins.int + DESCRIPTOR: _descriptor.Descriptor + DELETED_COUNT_FIELD_NUMBER: _builtins.int + deleted_count: _builtins.int - def __init__(self, *, deleted_count: builtins.int=...) -> None: + def __init__(self, *, deleted_count: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['deleted_count', b'deleted_count'] - def ClearField(self, field_name: typing.Literal['deleted_count', b'deleted_count']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoveTagsFromBinaryDataByIDsResponse = RemoveTagsFromBinaryDataByIDsResponse +Global___RemoveTagsFromBinaryDataByIDsResponse: _TypeAlias = RemoveTagsFromBinaryDataByIDsResponse -@typing.final -class RemoveTagsFromBinaryDataByFilterRequest(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class RemoveTagsFromBinaryDataByFilterRequest(_message.Message): """RemoveTagsFromBinaryDataByFilterRequest requests removing the given tags value from each file when a filter is provided.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILTER_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + FILTER_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int - @property - def filter(self) -> global___Filter: + @_builtins.property + def filter(self) -> Global___Filter: ... - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, filter: global___Filter | None=..., tags: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, filter: Global___Filter | None=..., tags: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter'] - def HasField(self, field_name: typing.Literal['filter', b'filter']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter', 'tags', b'tags'] - def ClearField(self, field_name: typing.Literal['filter', b'filter', 'tags', b'tags']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoveTagsFromBinaryDataByFilterRequest = RemoveTagsFromBinaryDataByFilterRequest +Global___RemoveTagsFromBinaryDataByFilterRequest: _TypeAlias = RemoveTagsFromBinaryDataByFilterRequest -@typing.final -class RemoveTagsFromBinaryDataByFilterResponse(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class RemoveTagsFromBinaryDataByFilterResponse(_message.Message): """RemoveTagsFromBinaryDataByFilterResponse returns the number of binary files which had tags removed.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DELETED_COUNT_FIELD_NUMBER: builtins.int - deleted_count: builtins.int + DESCRIPTOR: _descriptor.Descriptor + DELETED_COUNT_FIELD_NUMBER: _builtins.int + deleted_count: _builtins.int - def __init__(self, *, deleted_count: builtins.int=...) -> None: + def __init__(self, *, deleted_count: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['deleted_count', b'deleted_count'] - def ClearField(self, field_name: typing.Literal['deleted_count', b'deleted_count']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoveTagsFromBinaryDataByFilterResponse = RemoveTagsFromBinaryDataByFilterResponse +Global___RemoveTagsFromBinaryDataByFilterResponse: _TypeAlias = RemoveTagsFromBinaryDataByFilterResponse -@typing.final -class TagsByFilterRequest(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class TagsByFilterRequest(_message.Message): """TagsByFilterRequest requests the unique tags from data based on given filter.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILTER_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + FILTER_FIELD_NUMBER: _builtins.int - @property - def filter(self) -> global___Filter: + @_builtins.property + def filter(self) -> Global___Filter: ... - def __init__(self, *, filter: global___Filter | None=...) -> None: + def __init__(self, *, filter: Global___Filter | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter'] - def HasField(self, field_name: typing.Literal['filter', b'filter']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter'] - def ClearField(self, field_name: typing.Literal['filter', b'filter']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TagsByFilterRequest = TagsByFilterRequest +Global___TagsByFilterRequest: _TypeAlias = TagsByFilterRequest -@typing.final -class TagsByFilterResponse(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class TagsByFilterResponse(_message.Message): """TagsByFilterResponse returns the unique tags from data based on given filter.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TAGS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + TAGS_FIELD_NUMBER: _builtins.int - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, tags: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, tags: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['tags', b'tags'] - def ClearField(self, field_name: typing.Literal['tags', b'tags']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TagsByFilterResponse = TagsByFilterResponse +Global___TagsByFilterResponse: _TypeAlias = TagsByFilterResponse -@typing.final -class AddBoundingBoxToImageByIDRequest(google.protobuf.message.Message): +@_typing.final +class AddBoundingBoxToImageByIDRequest(_message.Message): """AddBoundingBoxToImageByIDRequest specifies the binary ID to which a bounding box with the associated label and position in normalized coordinates will be added. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BINARY_ID_FIELD_NUMBER: builtins.int - BINARY_DATA_ID_FIELD_NUMBER: builtins.int - LABEL_FIELD_NUMBER: builtins.int - X_MIN_NORMALIZED_FIELD_NUMBER: builtins.int - Y_MIN_NORMALIZED_FIELD_NUMBER: builtins.int - X_MAX_NORMALIZED_FIELD_NUMBER: builtins.int - Y_MAX_NORMALIZED_FIELD_NUMBER: builtins.int - CONFIDENCE_FIELD_NUMBER: builtins.int - binary_data_id: builtins.str - label: builtins.str - x_min_normalized: builtins.float - y_min_normalized: builtins.float - x_max_normalized: builtins.float - y_max_normalized: builtins.float - confidence: builtins.float + DESCRIPTOR: _descriptor.Descriptor + BINARY_ID_FIELD_NUMBER: _builtins.int + BINARY_DATA_ID_FIELD_NUMBER: _builtins.int + LABEL_FIELD_NUMBER: _builtins.int + X_MIN_NORMALIZED_FIELD_NUMBER: _builtins.int + Y_MIN_NORMALIZED_FIELD_NUMBER: _builtins.int + X_MAX_NORMALIZED_FIELD_NUMBER: _builtins.int + Y_MAX_NORMALIZED_FIELD_NUMBER: _builtins.int + CONFIDENCE_FIELD_NUMBER: _builtins.int + binary_data_id: _builtins.str + label: _builtins.str + x_min_normalized: _builtins.float + y_min_normalized: _builtins.float + x_max_normalized: _builtins.float + y_max_normalized: _builtins.float + confidence: _builtins.float - @property - def binary_id(self) -> global___BinaryID: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def binary_id(self) -> Global___BinaryID: ... - def __init__(self, *, binary_id: global___BinaryID | None=..., binary_data_id: builtins.str=..., label: builtins.str=..., x_min_normalized: builtins.float=..., y_min_normalized: builtins.float=..., x_max_normalized: builtins.float=..., y_max_normalized: builtins.float=..., confidence: builtins.float | None=...) -> None: + def __init__(self, *, binary_id: Global___BinaryID | None=..., binary_data_id: _builtins.str=..., label: _builtins.str=..., x_min_normalized: _builtins.float=..., y_min_normalized: _builtins.float=..., x_max_normalized: _builtins.float=..., y_max_normalized: _builtins.float=..., confidence: _builtins.float | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_confidence', b'_confidence', 'binary_id', b'binary_id', 'confidence', b'confidence'] - def HasField(self, field_name: typing.Literal['_confidence', b'_confidence', 'binary_id', b'binary_id', 'confidence', b'confidence']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_confidence', b'_confidence', 'binary_data_id', b'binary_data_id', 'binary_id', b'binary_id', 'confidence', b'confidence', 'label', b'label', 'x_max_normalized', b'x_max_normalized', 'x_min_normalized', b'x_min_normalized', 'y_max_normalized', b'y_max_normalized', 'y_min_normalized', b'y_min_normalized'] - def ClearField(self, field_name: typing.Literal['_confidence', b'_confidence', 'binary_data_id', b'binary_data_id', 'binary_id', b'binary_id', 'confidence', b'confidence', 'label', b'label', 'x_max_normalized', b'x_max_normalized', 'x_min_normalized', b'x_min_normalized', 'y_max_normalized', b'y_max_normalized', 'y_min_normalized', b'y_min_normalized']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__confidence: _TypeAlias = _typing.Literal['confidence'] + _WhichOneofArgType__confidence: _TypeAlias = _typing.Literal['_confidence', b'_confidence'] - def WhichOneof(self, oneof_group: typing.Literal['_confidence', b'_confidence']) -> typing.Literal['confidence'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__confidence) -> _WhichOneofReturnType__confidence | None: ... -global___AddBoundingBoxToImageByIDRequest = AddBoundingBoxToImageByIDRequest +Global___AddBoundingBoxToImageByIDRequest: _TypeAlias = AddBoundingBoxToImageByIDRequest -@typing.final -class AddBoundingBoxToImageByIDResponse(google.protobuf.message.Message): +@_typing.final +class AddBoundingBoxToImageByIDResponse(_message.Message): """AddBoundingBoxToImageByIDResponse returns the bounding box ID of the successfully added bounding box.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BBOX_ID_FIELD_NUMBER: builtins.int - bbox_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + BBOX_ID_FIELD_NUMBER: _builtins.int + bbox_id: _builtins.str - def __init__(self, *, bbox_id: builtins.str=...) -> None: + def __init__(self, *, bbox_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['bbox_id', b'bbox_id'] - def ClearField(self, field_name: typing.Literal['bbox_id', b'bbox_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AddBoundingBoxToImageByIDResponse = AddBoundingBoxToImageByIDResponse +Global___AddBoundingBoxToImageByIDResponse: _TypeAlias = AddBoundingBoxToImageByIDResponse -@typing.final -class RemoveBoundingBoxFromImageByIDRequest(google.protobuf.message.Message): +@_typing.final +class RemoveBoundingBoxFromImageByIDRequest(_message.Message): """RemoveBoundingBoxFromImageByIDRequest removes the bounding box with specified bounding box ID for the file represented by the binary ID.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BINARY_ID_FIELD_NUMBER: builtins.int - BINARY_DATA_ID_FIELD_NUMBER: builtins.int - BBOX_ID_FIELD_NUMBER: builtins.int - binary_data_id: builtins.str - bbox_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + BINARY_ID_FIELD_NUMBER: _builtins.int + BINARY_DATA_ID_FIELD_NUMBER: _builtins.int + BBOX_ID_FIELD_NUMBER: _builtins.int + binary_data_id: _builtins.str + bbox_id: _builtins.str - @property - def binary_id(self) -> global___BinaryID: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def binary_id(self) -> Global___BinaryID: ... - def __init__(self, *, binary_id: global___BinaryID | None=..., binary_data_id: builtins.str=..., bbox_id: builtins.str=...) -> None: + def __init__(self, *, binary_id: Global___BinaryID | None=..., binary_data_id: _builtins.str=..., bbox_id: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['binary_id', b'binary_id'] - def HasField(self, field_name: typing.Literal['binary_id', b'binary_id']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['bbox_id', b'bbox_id', 'binary_data_id', b'binary_data_id', 'binary_id', b'binary_id'] - def ClearField(self, field_name: typing.Literal['bbox_id', b'bbox_id', 'binary_data_id', b'binary_data_id', 'binary_id', b'binary_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoveBoundingBoxFromImageByIDRequest = RemoveBoundingBoxFromImageByIDRequest +Global___RemoveBoundingBoxFromImageByIDRequest: _TypeAlias = RemoveBoundingBoxFromImageByIDRequest -@typing.final -class RemoveBoundingBoxFromImageByIDResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class RemoveBoundingBoxFromImageByIDResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___RemoveBoundingBoxFromImageByIDResponse = RemoveBoundingBoxFromImageByIDResponse +Global___RemoveBoundingBoxFromImageByIDResponse: _TypeAlias = RemoveBoundingBoxFromImageByIDResponse -@typing.final -class UpdateBoundingBoxRequest(google.protobuf.message.Message): +@_typing.final +class UpdateBoundingBoxRequest(_message.Message): """UpdateBoundingBoxRequest updates the bounding box with specified bounding box ID for the file represented by the binary ID.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BINARY_ID_FIELD_NUMBER: builtins.int - BINARY_DATA_ID_FIELD_NUMBER: builtins.int - BBOX_ID_FIELD_NUMBER: builtins.int - LABEL_FIELD_NUMBER: builtins.int - X_MIN_NORMALIZED_FIELD_NUMBER: builtins.int - Y_MIN_NORMALIZED_FIELD_NUMBER: builtins.int - X_MAX_NORMALIZED_FIELD_NUMBER: builtins.int - Y_MAX_NORMALIZED_FIELD_NUMBER: builtins.int - CONFIDENCE_FIELD_NUMBER: builtins.int - binary_data_id: builtins.str - bbox_id: builtins.str - label: builtins.str - x_min_normalized: builtins.float - y_min_normalized: builtins.float - x_max_normalized: builtins.float - y_max_normalized: builtins.float - confidence: builtins.float + DESCRIPTOR: _descriptor.Descriptor + BINARY_ID_FIELD_NUMBER: _builtins.int + BINARY_DATA_ID_FIELD_NUMBER: _builtins.int + BBOX_ID_FIELD_NUMBER: _builtins.int + LABEL_FIELD_NUMBER: _builtins.int + X_MIN_NORMALIZED_FIELD_NUMBER: _builtins.int + Y_MIN_NORMALIZED_FIELD_NUMBER: _builtins.int + X_MAX_NORMALIZED_FIELD_NUMBER: _builtins.int + Y_MAX_NORMALIZED_FIELD_NUMBER: _builtins.int + CONFIDENCE_FIELD_NUMBER: _builtins.int + binary_data_id: _builtins.str + bbox_id: _builtins.str + label: _builtins.str + x_min_normalized: _builtins.float + y_min_normalized: _builtins.float + x_max_normalized: _builtins.float + y_max_normalized: _builtins.float + confidence: _builtins.float - @property - def binary_id(self) -> global___BinaryID: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def binary_id(self) -> Global___BinaryID: ... - def __init__(self, *, binary_id: global___BinaryID | None=..., binary_data_id: builtins.str=..., bbox_id: builtins.str=..., label: builtins.str | None=..., x_min_normalized: builtins.float | None=..., y_min_normalized: builtins.float | None=..., x_max_normalized: builtins.float | None=..., y_max_normalized: builtins.float | None=..., confidence: builtins.float | None=...) -> None: + def __init__(self, *, binary_id: Global___BinaryID | None=..., binary_data_id: _builtins.str=..., bbox_id: _builtins.str=..., label: _builtins.str | None=..., x_min_normalized: _builtins.float | None=..., y_min_normalized: _builtins.float | None=..., x_max_normalized: _builtins.float | None=..., y_max_normalized: _builtins.float | None=..., confidence: _builtins.float | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_confidence', b'_confidence', '_label', b'_label', '_x_max_normalized', b'_x_max_normalized', '_x_min_normalized', b'_x_min_normalized', '_y_max_normalized', b'_y_max_normalized', '_y_min_normalized', b'_y_min_normalized', 'binary_id', b'binary_id', 'confidence', b'confidence', 'label', b'label', 'x_max_normalized', b'x_max_normalized', 'x_min_normalized', b'x_min_normalized', 'y_max_normalized', b'y_max_normalized', 'y_min_normalized', b'y_min_normalized'] - def HasField(self, field_name: typing.Literal['_confidence', b'_confidence', '_label', b'_label', '_x_max_normalized', b'_x_max_normalized', '_x_min_normalized', b'_x_min_normalized', '_y_max_normalized', b'_y_max_normalized', '_y_min_normalized', b'_y_min_normalized', 'binary_id', b'binary_id', 'confidence', b'confidence', 'label', b'label', 'x_max_normalized', b'x_max_normalized', 'x_min_normalized', b'x_min_normalized', 'y_max_normalized', b'y_max_normalized', 'y_min_normalized', b'y_min_normalized']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_confidence', b'_confidence', '_label', b'_label', '_x_max_normalized', b'_x_max_normalized', '_x_min_normalized', b'_x_min_normalized', '_y_max_normalized', b'_y_max_normalized', '_y_min_normalized', b'_y_min_normalized', 'bbox_id', b'bbox_id', 'binary_data_id', b'binary_data_id', 'binary_id', b'binary_id', 'confidence', b'confidence', 'label', b'label', 'x_max_normalized', b'x_max_normalized', 'x_min_normalized', b'x_min_normalized', 'y_max_normalized', b'y_max_normalized', 'y_min_normalized', b'y_min_normalized'] - def ClearField(self, field_name: typing.Literal['_confidence', b'_confidence', '_label', b'_label', '_x_max_normalized', b'_x_max_normalized', '_x_min_normalized', b'_x_min_normalized', '_y_max_normalized', b'_y_max_normalized', '_y_min_normalized', b'_y_min_normalized', 'bbox_id', b'bbox_id', 'binary_data_id', b'binary_data_id', 'binary_id', b'binary_id', 'confidence', b'confidence', 'label', b'label', 'x_max_normalized', b'x_max_normalized', 'x_min_normalized', b'x_min_normalized', 'y_max_normalized', b'y_max_normalized', 'y_min_normalized', b'y_min_normalized']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__confidence: _TypeAlias = _typing.Literal['confidence'] + _WhichOneofArgType__confidence: _TypeAlias = _typing.Literal['_confidence', b'_confidence'] + _WhichOneofReturnType__label: _TypeAlias = _typing.Literal['label'] + _WhichOneofArgType__label: _TypeAlias = _typing.Literal['_label', b'_label'] + _WhichOneofReturnType__x_max_normalized: _TypeAlias = _typing.Literal['x_max_normalized'] + _WhichOneofArgType__x_max_normalized: _TypeAlias = _typing.Literal['_x_max_normalized', b'_x_max_normalized'] + _WhichOneofReturnType__x_min_normalized: _TypeAlias = _typing.Literal['x_min_normalized'] + _WhichOneofArgType__x_min_normalized: _TypeAlias = _typing.Literal['_x_min_normalized', b'_x_min_normalized'] + _WhichOneofReturnType__y_max_normalized: _TypeAlias = _typing.Literal['y_max_normalized'] + _WhichOneofArgType__y_max_normalized: _TypeAlias = _typing.Literal['_y_max_normalized', b'_y_max_normalized'] + _WhichOneofReturnType__y_min_normalized: _TypeAlias = _typing.Literal['y_min_normalized'] + _WhichOneofArgType__y_min_normalized: _TypeAlias = _typing.Literal['_y_min_normalized', b'_y_min_normalized'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_confidence', b'_confidence']) -> typing.Literal['confidence'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__confidence) -> _WhichOneofReturnType__confidence | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_label', b'_label']) -> typing.Literal['label'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__label) -> _WhichOneofReturnType__label | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_x_max_normalized', b'_x_max_normalized']) -> typing.Literal['x_max_normalized'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__x_max_normalized) -> _WhichOneofReturnType__x_max_normalized | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_x_min_normalized', b'_x_min_normalized']) -> typing.Literal['x_min_normalized'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__x_min_normalized) -> _WhichOneofReturnType__x_min_normalized | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_y_max_normalized', b'_y_max_normalized']) -> typing.Literal['y_max_normalized'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__y_max_normalized) -> _WhichOneofReturnType__y_max_normalized | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_y_min_normalized', b'_y_min_normalized']) -> typing.Literal['y_min_normalized'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__y_min_normalized) -> _WhichOneofReturnType__y_min_normalized | None: ... -global___UpdateBoundingBoxRequest = UpdateBoundingBoxRequest +Global___UpdateBoundingBoxRequest: _TypeAlias = UpdateBoundingBoxRequest -@typing.final -class UpdateBoundingBoxResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateBoundingBoxResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UpdateBoundingBoxResponse = UpdateBoundingBoxResponse +Global___UpdateBoundingBoxResponse: _TypeAlias = UpdateBoundingBoxResponse -@typing.final -class BoundingBoxLabelsByFilterRequest(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class BoundingBoxLabelsByFilterRequest(_message.Message): """BoundingBoxLabelsByFilterRequest requests all the labels of the bounding boxes from files from a given filter.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILTER_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + FILTER_FIELD_NUMBER: _builtins.int - @property - def filter(self) -> global___Filter: + @_builtins.property + def filter(self) -> Global___Filter: ... - def __init__(self, *, filter: global___Filter | None=...) -> None: + def __init__(self, *, filter: Global___Filter | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter'] - def HasField(self, field_name: typing.Literal['filter', b'filter']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['filter', b'filter'] - def ClearField(self, field_name: typing.Literal['filter', b'filter']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BoundingBoxLabelsByFilterRequest = BoundingBoxLabelsByFilterRequest +Global___BoundingBoxLabelsByFilterRequest: _TypeAlias = BoundingBoxLabelsByFilterRequest -@typing.final -class BoundingBoxLabelsByFilterResponse(google.protobuf.message.Message): +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class BoundingBoxLabelsByFilterResponse(_message.Message): """BoundingBoxLabelsByFilterRequest returns all the labels of the bounding boxes from files from a given filter.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LABELS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + LABELS_FIELD_NUMBER: _builtins.int - @property - def labels(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def labels(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, labels: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, labels: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['labels', b'labels'] - def ClearField(self, field_name: typing.Literal['labels', b'labels']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BoundingBoxLabelsByFilterResponse = BoundingBoxLabelsByFilterResponse +Global___BoundingBoxLabelsByFilterResponse: _TypeAlias = BoundingBoxLabelsByFilterResponse -@typing.final -class ConfigureDatabaseUserRequest(google.protobuf.message.Message): +@_typing.final +class ConfigureDatabaseUserRequest(_message.Message): """ConfigureDatabaseUserRequest accepts a Viam organization ID and a password for the database user being configured. Viam uses gRPC over TLS, so the entire request will be encrypted while in flight, including the password. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - PASSWORD_FIELD_NUMBER: builtins.int - organization_id: builtins.str - password: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + PASSWORD_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + password: _builtins.str - def __init__(self, *, organization_id: builtins.str=..., password: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., password: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id', 'password', b'password'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id', 'password', b'password']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ConfigureDatabaseUserRequest = ConfigureDatabaseUserRequest +Global___ConfigureDatabaseUserRequest: _TypeAlias = ConfigureDatabaseUserRequest -@typing.final -class ConfigureDatabaseUserResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ConfigureDatabaseUserResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ConfigureDatabaseUserResponse = ConfigureDatabaseUserResponse +Global___ConfigureDatabaseUserResponse: _TypeAlias = ConfigureDatabaseUserResponse -@typing.final -class GetDatabaseConnectionRequest(google.protobuf.message.Message): +@_typing.final +class GetDatabaseConnectionRequest(_message.Message): """GetDatabaseConnectionRequest requests the database connection hostname.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - organization_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str - def __init__(self, *, organization_id: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetDatabaseConnectionRequest = GetDatabaseConnectionRequest +Global___GetDatabaseConnectionRequest: _TypeAlias = GetDatabaseConnectionRequest -@typing.final -class GetDatabaseConnectionResponse(google.protobuf.message.Message): +@_typing.final +class GetDatabaseConnectionResponse(_message.Message): """GetDatabaseConnectionResponse returns the database connection hostname endpoint. It also returns a URI that can be used to connect to the database instance through MongoDB clients, as well as information on whether the Viam organization has a database user configured. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HOSTNAME_FIELD_NUMBER: builtins.int - MONGODB_URI_FIELD_NUMBER: builtins.int - HAS_DATABASE_USER_FIELD_NUMBER: builtins.int - hostname: builtins.str - mongodb_uri: builtins.str - has_database_user: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + HOSTNAME_FIELD_NUMBER: _builtins.int + MONGODB_URI_FIELD_NUMBER: _builtins.int + HAS_DATABASE_USER_FIELD_NUMBER: _builtins.int + hostname: _builtins.str + mongodb_uri: _builtins.str + has_database_user: _builtins.bool - def __init__(self, *, hostname: builtins.str=..., mongodb_uri: builtins.str=..., has_database_user: builtins.bool=...) -> None: + def __init__(self, *, hostname: _builtins.str=..., mongodb_uri: _builtins.str=..., has_database_user: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['has_database_user', b'has_database_user', 'hostname', b'hostname', 'mongodb_uri', b'mongodb_uri'] - def ClearField(self, field_name: typing.Literal['has_database_user', b'has_database_user', 'hostname', b'hostname', 'mongodb_uri', b'mongodb_uri']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetDatabaseConnectionResponse = GetDatabaseConnectionResponse +Global___GetDatabaseConnectionResponse: _TypeAlias = GetDatabaseConnectionResponse -@typing.final -class AddBinaryDataToDatasetByIDsRequest(google.protobuf.message.Message): +@_typing.final +class AddBinaryDataToDatasetByIDsRequest(_message.Message): """AddBinaryDataToDatasetByIDsRequest adds the binary data with the given binary IDs to a dataset with dataset_id.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BINARY_IDS_FIELD_NUMBER: builtins.int - BINARY_DATA_IDS_FIELD_NUMBER: builtins.int - DATASET_ID_FIELD_NUMBER: builtins.int - dataset_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + BINARY_IDS_FIELD_NUMBER: _builtins.int + BINARY_DATA_IDS_FIELD_NUMBER: _builtins.int + DATASET_ID_FIELD_NUMBER: _builtins.int + dataset_id: _builtins.str - @property - def binary_ids(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def binary_ids(self) -> _containers.RepeatedCompositeFieldContainer[Global___BinaryID]: ... - @property - def binary_data_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def binary_data_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, binary_ids: collections.abc.Iterable[global___BinaryID] | None=..., binary_data_ids: collections.abc.Iterable[builtins.str] | None=..., dataset_id: builtins.str=...) -> None: + def __init__(self, *, binary_ids: _abc.Iterable[Global___BinaryID] | None=..., binary_data_ids: _abc.Iterable[_builtins.str] | None=..., dataset_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids', 'dataset_id', b'dataset_id'] - def ClearField(self, field_name: typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids', 'dataset_id', b'dataset_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AddBinaryDataToDatasetByIDsRequest = AddBinaryDataToDatasetByIDsRequest +Global___AddBinaryDataToDatasetByIDsRequest: _TypeAlias = AddBinaryDataToDatasetByIDsRequest -@typing.final -class AddBinaryDataToDatasetByIDsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class AddBinaryDataToDatasetByIDsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AddBinaryDataToDatasetByIDsResponse = AddBinaryDataToDatasetByIDsResponse +Global___AddBinaryDataToDatasetByIDsResponse: _TypeAlias = AddBinaryDataToDatasetByIDsResponse -@typing.final -class RemoveBinaryDataFromDatasetByIDsRequest(google.protobuf.message.Message): +@_typing.final +class RemoveBinaryDataFromDatasetByIDsRequest(_message.Message): """RemoveBinaryDataFromDatasetByIDsRequest removes the specified binary IDs from a dataset with dataset_id.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BINARY_IDS_FIELD_NUMBER: builtins.int - BINARY_DATA_IDS_FIELD_NUMBER: builtins.int - DATASET_ID_FIELD_NUMBER: builtins.int - dataset_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + BINARY_IDS_FIELD_NUMBER: _builtins.int + BINARY_DATA_IDS_FIELD_NUMBER: _builtins.int + DATASET_ID_FIELD_NUMBER: _builtins.int + dataset_id: _builtins.str - @property - def binary_ids(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___BinaryID]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def binary_ids(self) -> _containers.RepeatedCompositeFieldContainer[Global___BinaryID]: ... - @property - def binary_data_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def binary_data_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, binary_ids: collections.abc.Iterable[global___BinaryID] | None=..., binary_data_ids: collections.abc.Iterable[builtins.str] | None=..., dataset_id: builtins.str=...) -> None: + def __init__(self, *, binary_ids: _abc.Iterable[Global___BinaryID] | None=..., binary_data_ids: _abc.Iterable[_builtins.str] | None=..., dataset_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids', 'dataset_id', b'dataset_id'] - def ClearField(self, field_name: typing.Literal['binary_data_ids', b'binary_data_ids', 'binary_ids', b'binary_ids', 'dataset_id', b'dataset_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoveBinaryDataFromDatasetByIDsRequest = RemoveBinaryDataFromDatasetByIDsRequest +Global___RemoveBinaryDataFromDatasetByIDsRequest: _TypeAlias = RemoveBinaryDataFromDatasetByIDsRequest -@typing.final -class RemoveBinaryDataFromDatasetByIDsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class RemoveBinaryDataFromDatasetByIDsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___RemoveBinaryDataFromDatasetByIDsResponse = RemoveBinaryDataFromDatasetByIDsResponse +Global___RemoveBinaryDataFromDatasetByIDsResponse: _TypeAlias = RemoveBinaryDataFromDatasetByIDsResponse -@typing.final -class CreateIndexRequest(google.protobuf.message.Message): +@_typing.final +class CreateIndexRequest(_message.Message): """CreateIndexRequest starts a custom index build""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - COLLECTION_TYPE_FIELD_NUMBER: builtins.int - PIPELINE_NAME_FIELD_NUMBER: builtins.int - INDEX_SPEC_FIELD_NUMBER: builtins.int - organization_id: builtins.str - collection_type: global___IndexableCollection.ValueType - pipeline_name: builtins.str - - @property - def index_spec(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + COLLECTION_TYPE_FIELD_NUMBER: _builtins.int + PIPELINE_NAME_FIELD_NUMBER: _builtins.int + INDEX_SPEC_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + collection_type: Global___IndexableCollection.ValueType + pipeline_name: _builtins.str + + @_builtins.property + def index_spec(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: """index_spec accepts a MongoDB index specification defined in JSON format""" - def __init__(self, *, organization_id: builtins.str=..., collection_type: global___IndexableCollection.ValueType=..., pipeline_name: builtins.str | None=..., index_spec: collections.abc.Iterable[builtins.bytes] | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., collection_type: Global___IndexableCollection.ValueType=..., pipeline_name: _builtins.str | None=..., index_spec: _abc.Iterable[_builtins.bytes] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name', 'pipeline_name', b'pipeline_name'] - def HasField(self, field_name: typing.Literal['_pipeline_name', b'_pipeline_name', 'pipeline_name', b'pipeline_name']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name', 'collection_type', b'collection_type', 'index_spec', b'index_spec', 'organization_id', b'organization_id', 'pipeline_name', b'pipeline_name'] - def ClearField(self, field_name: typing.Literal['_pipeline_name', b'_pipeline_name', 'collection_type', b'collection_type', 'index_spec', b'index_spec', 'organization_id', b'organization_id', 'pipeline_name', b'pipeline_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__pipeline_name: _TypeAlias = _typing.Literal['pipeline_name'] + _WhichOneofArgType__pipeline_name: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name'] - def WhichOneof(self, oneof_group: typing.Literal['_pipeline_name', b'_pipeline_name']) -> typing.Literal['pipeline_name'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__pipeline_name) -> _WhichOneofReturnType__pipeline_name | None: ... -global___CreateIndexRequest = CreateIndexRequest +Global___CreateIndexRequest: _TypeAlias = CreateIndexRequest -@typing.final -class CreateIndexResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class CreateIndexResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___CreateIndexResponse = CreateIndexResponse +Global___CreateIndexResponse: _TypeAlias = CreateIndexResponse -@typing.final -class DeleteIndexRequest(google.protobuf.message.Message): +@_typing.final +class DeleteIndexRequest(_message.Message): """DeleteIndexRequest drops the specified custom index from a collection""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - COLLECTION_TYPE_FIELD_NUMBER: builtins.int - PIPELINE_NAME_FIELD_NUMBER: builtins.int - INDEX_NAME_FIELD_NUMBER: builtins.int - organization_id: builtins.str - collection_type: global___IndexableCollection.ValueType - pipeline_name: builtins.str - index_name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + COLLECTION_TYPE_FIELD_NUMBER: _builtins.int + PIPELINE_NAME_FIELD_NUMBER: _builtins.int + INDEX_NAME_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + collection_type: Global___IndexableCollection.ValueType + pipeline_name: _builtins.str + index_name: _builtins.str - def __init__(self, *, organization_id: builtins.str=..., collection_type: global___IndexableCollection.ValueType=..., pipeline_name: builtins.str | None=..., index_name: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., collection_type: Global___IndexableCollection.ValueType=..., pipeline_name: _builtins.str | None=..., index_name: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name', 'pipeline_name', b'pipeline_name'] - def HasField(self, field_name: typing.Literal['_pipeline_name', b'_pipeline_name', 'pipeline_name', b'pipeline_name']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name', 'collection_type', b'collection_type', 'index_name', b'index_name', 'organization_id', b'organization_id', 'pipeline_name', b'pipeline_name'] - def ClearField(self, field_name: typing.Literal['_pipeline_name', b'_pipeline_name', 'collection_type', b'collection_type', 'index_name', b'index_name', 'organization_id', b'organization_id', 'pipeline_name', b'pipeline_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__pipeline_name: _TypeAlias = _typing.Literal['pipeline_name'] + _WhichOneofArgType__pipeline_name: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name'] - def WhichOneof(self, oneof_group: typing.Literal['_pipeline_name', b'_pipeline_name']) -> typing.Literal['pipeline_name'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__pipeline_name) -> _WhichOneofReturnType__pipeline_name | None: ... -global___DeleteIndexRequest = DeleteIndexRequest +Global___DeleteIndexRequest: _TypeAlias = DeleteIndexRequest -@typing.final -class DeleteIndexResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteIndexResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteIndexResponse = DeleteIndexResponse +Global___DeleteIndexResponse: _TypeAlias = DeleteIndexResponse -@typing.final -class ListIndexesRequest(google.protobuf.message.Message): +@_typing.final +class ListIndexesRequest(_message.Message): """ListIndexesRequest returns all the indexes for a given collection""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - COLLECTION_TYPE_FIELD_NUMBER: builtins.int - PIPELINE_NAME_FIELD_NUMBER: builtins.int - organization_id: builtins.str - collection_type: global___IndexableCollection.ValueType - pipeline_name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + COLLECTION_TYPE_FIELD_NUMBER: _builtins.int + PIPELINE_NAME_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + collection_type: Global___IndexableCollection.ValueType + pipeline_name: _builtins.str - def __init__(self, *, organization_id: builtins.str=..., collection_type: global___IndexableCollection.ValueType=..., pipeline_name: builtins.str | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., collection_type: Global___IndexableCollection.ValueType=..., pipeline_name: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name', 'pipeline_name', b'pipeline_name'] - def HasField(self, field_name: typing.Literal['_pipeline_name', b'_pipeline_name', 'pipeline_name', b'pipeline_name']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name', 'collection_type', b'collection_type', 'organization_id', b'organization_id', 'pipeline_name', b'pipeline_name'] - def ClearField(self, field_name: typing.Literal['_pipeline_name', b'_pipeline_name', 'collection_type', b'collection_type', 'organization_id', b'organization_id', 'pipeline_name', b'pipeline_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__pipeline_name: _TypeAlias = _typing.Literal['pipeline_name'] + _WhichOneofArgType__pipeline_name: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name'] - def WhichOneof(self, oneof_group: typing.Literal['_pipeline_name', b'_pipeline_name']) -> typing.Literal['pipeline_name'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__pipeline_name) -> _WhichOneofReturnType__pipeline_name | None: ... -global___ListIndexesRequest = ListIndexesRequest +Global___ListIndexesRequest: _TypeAlias = ListIndexesRequest -@typing.final -class ListIndexesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INDEXES_FIELD_NUMBER: builtins.int +@_typing.final +class ListIndexesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + INDEXES_FIELD_NUMBER: _builtins.int - @property - def indexes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Index]: + @_builtins.property + def indexes(self) -> _containers.RepeatedCompositeFieldContainer[Global___Index]: ... - def __init__(self, *, indexes: collections.abc.Iterable[global___Index] | None=...) -> None: + def __init__(self, *, indexes: _abc.Iterable[Global___Index] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['indexes', b'indexes'] - def ClearField(self, field_name: typing.Literal['indexes', b'indexes']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListIndexesResponse = ListIndexesResponse +Global___ListIndexesResponse: _TypeAlias = ListIndexesResponse -@typing.final -class Index(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COLLECTION_TYPE_FIELD_NUMBER: builtins.int - PIPELINE_NAME_FIELD_NUMBER: builtins.int - INDEX_NAME_FIELD_NUMBER: builtins.int - INDEX_SPEC_FIELD_NUMBER: builtins.int - CREATED_BY_FIELD_NUMBER: builtins.int - collection_type: global___IndexableCollection.ValueType - pipeline_name: builtins.str - index_name: builtins.str - created_by: global___IndexCreator.ValueType +@_typing.final +class Index(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + COLLECTION_TYPE_FIELD_NUMBER: _builtins.int + PIPELINE_NAME_FIELD_NUMBER: _builtins.int + INDEX_NAME_FIELD_NUMBER: _builtins.int + INDEX_SPEC_FIELD_NUMBER: _builtins.int + CREATED_BY_FIELD_NUMBER: _builtins.int + collection_type: Global___IndexableCollection.ValueType + pipeline_name: _builtins.str + index_name: _builtins.str + created_by: Global___IndexCreator.ValueType - @property - def index_spec(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + @_builtins.property + def index_spec(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: """index_spec defines a MongoDB index in JSON format""" - def __init__(self, *, collection_type: global___IndexableCollection.ValueType=..., pipeline_name: builtins.str | None=..., index_name: builtins.str=..., index_spec: collections.abc.Iterable[builtins.bytes] | None=..., created_by: global___IndexCreator.ValueType=...) -> None: + def __init__(self, *, collection_type: Global___IndexableCollection.ValueType=..., pipeline_name: _builtins.str | None=..., index_name: _builtins.str=..., index_spec: _abc.Iterable[_builtins.bytes] | None=..., created_by: Global___IndexCreator.ValueType=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name', 'pipeline_name', b'pipeline_name'] - def HasField(self, field_name: typing.Literal['_pipeline_name', b'_pipeline_name', 'pipeline_name', b'pipeline_name']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name', 'collection_type', b'collection_type', 'created_by', b'created_by', 'index_name', b'index_name', 'index_spec', b'index_spec', 'pipeline_name', b'pipeline_name'] - def ClearField(self, field_name: typing.Literal['_pipeline_name', b'_pipeline_name', 'collection_type', b'collection_type', 'created_by', b'created_by', 'index_name', b'index_name', 'index_spec', b'index_spec', 'pipeline_name', b'pipeline_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__pipeline_name: _TypeAlias = _typing.Literal['pipeline_name'] + _WhichOneofArgType__pipeline_name: _TypeAlias = _typing.Literal['_pipeline_name', b'_pipeline_name'] - def WhichOneof(self, oneof_group: typing.Literal['_pipeline_name', b'_pipeline_name']) -> typing.Literal['pipeline_name'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__pipeline_name) -> _WhichOneofReturnType__pipeline_name | None: ... -global___Index = Index +Global___Index: _TypeAlias = Index -@typing.final -class CreateSavedQueryRequest(google.protobuf.message.Message): +@_typing.final +class CreateSavedQueryRequest(_message.Message): """CreateSavedQueryRequest saves a mql query.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - MQL_BINARY_FIELD_NUMBER: builtins.int - organization_id: builtins.str - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + MQL_BINARY_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + name: _builtins.str - @property - def mql_binary(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + @_builtins.property + def mql_binary(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... - def __init__(self, *, organization_id: builtins.str=..., name: builtins.str=..., mql_binary: collections.abc.Iterable[builtins.bytes] | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., name: _builtins.str=..., mql_binary: _abc.Iterable[_builtins.bytes] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['mql_binary', b'mql_binary', 'name', b'name', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['mql_binary', b'mql_binary', 'name', b'name', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateSavedQueryRequest = CreateSavedQueryRequest +Global___CreateSavedQueryRequest: _TypeAlias = CreateSavedQueryRequest -@typing.final -class CreateSavedQueryResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class CreateSavedQueryResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateSavedQueryResponse = CreateSavedQueryResponse +Global___CreateSavedQueryResponse: _TypeAlias = CreateSavedQueryResponse -@typing.final -class Query(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - MQL_BINARY_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - UPDATED_AT_FIELD_NUMBER: builtins.int - id: builtins.str - organization_id: builtins.str - name: builtins.str +@_typing.final +class Query(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + MQL_BINARY_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + UPDATED_AT_FIELD_NUMBER: _builtins.int + id: _builtins.str + organization_id: _builtins.str + name: _builtins.str - @property - def mql_binary(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + @_builtins.property + def mql_binary(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: ... - @property - def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def updated_at(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, id: builtins.str=..., organization_id: builtins.str=..., name: builtins.str=..., mql_binary: collections.abc.Iterable[builtins.bytes] | None=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., updated_at: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., organization_id: _builtins.str=..., name: _builtins.str=..., mql_binary: _abc.Iterable[_builtins.bytes] | None=..., created_on: _timestamp_pb2.Timestamp | None=..., updated_at: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'updated_at', b'updated_at'] - def HasField(self, field_name: typing.Literal['created_on', b'created_on', 'updated_at', b'updated_at']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'id', b'id', 'mql_binary', b'mql_binary', 'name', b'name', 'organization_id', b'organization_id', 'updated_at', b'updated_at'] - def ClearField(self, field_name: typing.Literal['created_on', b'created_on', 'id', b'id', 'mql_binary', b'mql_binary', 'name', b'name', 'organization_id', b'organization_id', 'updated_at', b'updated_at']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Query = Query +Global___Query: _TypeAlias = Query -@typing.final -class DeleteSavedQueryRequest(google.protobuf.message.Message): +@_typing.final +class DeleteSavedQueryRequest(_message.Message): """DeleteSavedQuery deletes a saved query based on the given id.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteSavedQueryRequest = DeleteSavedQueryRequest +Global___DeleteSavedQueryRequest: _TypeAlias = DeleteSavedQueryRequest -@typing.final -class DeleteSavedQueryResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteSavedQueryResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteSavedQueryResponse = DeleteSavedQueryResponse +Global___DeleteSavedQueryResponse: _TypeAlias = DeleteSavedQueryResponse -@typing.final -class GetSavedQueryRequest(google.protobuf.message.Message): +@_typing.final +class GetSavedQueryRequest(_message.Message): """GetSavedQuery retrieves a saved query by id.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetSavedQueryRequest = GetSavedQueryRequest +Global___GetSavedQueryRequest: _TypeAlias = GetSavedQueryRequest -@typing.final -class GetSavedQueryResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SAVED_QUERY_FIELD_NUMBER: builtins.int +@_typing.final +class GetSavedQueryResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SAVED_QUERY_FIELD_NUMBER: _builtins.int - @property - def saved_query(self) -> global___Query: + @_builtins.property + def saved_query(self) -> Global___Query: ... - def __init__(self, *, saved_query: global___Query | None=...) -> None: + def __init__(self, *, saved_query: Global___Query | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['saved_query', b'saved_query'] - def HasField(self, field_name: typing.Literal['saved_query', b'saved_query']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['saved_query', b'saved_query'] - def ClearField(self, field_name: typing.Literal['saved_query', b'saved_query']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetSavedQueryResponse = GetSavedQueryResponse +Global___GetSavedQueryResponse: _TypeAlias = GetSavedQueryResponse -@typing.final -class UpdateSavedQueryRequest(google.protobuf.message.Message): +@_typing.final +class UpdateSavedQueryRequest(_message.Message): """UpdateSavedQuery updates the saved query with the given id.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - MQL_BINARY_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + MQL_BINARY_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str - @property - def mql_binary(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + @_builtins.property + def mql_binary(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... - def __init__(self, *, id: builtins.str=..., name: builtins.str=..., mql_binary: collections.abc.Iterable[builtins.bytes] | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=..., mql_binary: _abc.Iterable[_builtins.bytes] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'mql_binary', b'mql_binary', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'mql_binary', b'mql_binary', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateSavedQueryRequest = UpdateSavedQueryRequest +Global___UpdateSavedQueryRequest: _TypeAlias = UpdateSavedQueryRequest -@typing.final -class UpdateSavedQueryResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateSavedQueryResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UpdateSavedQueryResponse = UpdateSavedQueryResponse +Global___UpdateSavedQueryResponse: _TypeAlias = UpdateSavedQueryResponse -@typing.final -class ListSavedQueriesRequest(google.protobuf.message.Message): +@_typing.final +class ListSavedQueriesRequest(_message.Message): """ListSavedQueries lists saved queries for a given organization.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - LIMIT_FIELD_NUMBER: builtins.int - organization_id: builtins.str - limit: builtins.int + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + LIMIT_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + limit: _builtins.int - def __init__(self, *, organization_id: builtins.str=..., limit: builtins.int=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., limit: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['limit', b'limit', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['limit', b'limit', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListSavedQueriesRequest = ListSavedQueriesRequest +Global___ListSavedQueriesRequest: _TypeAlias = ListSavedQueriesRequest -@typing.final -class ListSavedQueriesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - QUERIES_FIELD_NUMBER: builtins.int +@_typing.final +class ListSavedQueriesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + QUERIES_FIELD_NUMBER: _builtins.int - @property - def queries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Query]: + @_builtins.property + def queries(self) -> _containers.RepeatedCompositeFieldContainer[Global___Query]: ... - def __init__(self, *, queries: collections.abc.Iterable[global___Query] | None=...) -> None: + def __init__(self, *, queries: _abc.Iterable[Global___Query] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['queries', b'queries'] - def ClearField(self, field_name: typing.Literal['queries', b'queries']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListSavedQueriesResponse = ListSavedQueriesResponse +Global___ListSavedQueriesResponse: _TypeAlias = ListSavedQueriesResponse -@typing.final -class CreateBinaryDataSignedURLRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BINARY_DATA_ID_FIELD_NUMBER: builtins.int - EXPIRATION_MINUTES_FIELD_NUMBER: builtins.int - binary_data_id: builtins.str +@_typing.final +class CreateBinaryDataSignedURLRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + BINARY_DATA_ID_FIELD_NUMBER: _builtins.int + EXPIRATION_MINUTES_FIELD_NUMBER: _builtins.int + binary_data_id: _builtins.str 'The binary data ID of the file to create a signed URL for.' - expiration_minutes: builtins.int + expiration_minutes: _builtins.int 'Expiration time in minutes. Defaults to 15 minutes if not specified.\n Maximum allowed is 10080 minutes (7 days).\n ' - def __init__(self, *, binary_data_id: builtins.str=..., expiration_minutes: builtins.int | None=...) -> None: + def __init__(self, *, binary_data_id: _builtins.str=..., expiration_minutes: _builtins.int | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_expiration_minutes', b'_expiration_minutes', 'expiration_minutes', b'expiration_minutes'] - def HasField(self, field_name: typing.Literal['_expiration_minutes', b'_expiration_minutes', 'expiration_minutes', b'expiration_minutes']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_expiration_minutes', b'_expiration_minutes', 'binary_data_id', b'binary_data_id', 'expiration_minutes', b'expiration_minutes'] - def ClearField(self, field_name: typing.Literal['_expiration_minutes', b'_expiration_minutes', 'binary_data_id', b'binary_data_id', 'expiration_minutes', b'expiration_minutes']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__expiration_minutes: _TypeAlias = _typing.Literal['expiration_minutes'] + _WhichOneofArgType__expiration_minutes: _TypeAlias = _typing.Literal['_expiration_minutes', b'_expiration_minutes'] - def WhichOneof(self, oneof_group: typing.Literal['_expiration_minutes', b'_expiration_minutes']) -> typing.Literal['expiration_minutes'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__expiration_minutes) -> _WhichOneofReturnType__expiration_minutes | None: ... -global___CreateBinaryDataSignedURLRequest = CreateBinaryDataSignedURLRequest +Global___CreateBinaryDataSignedURLRequest: _TypeAlias = CreateBinaryDataSignedURLRequest -@typing.final -class CreateBinaryDataSignedURLResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SIGNED_URL_FIELD_NUMBER: builtins.int - EXPIRES_AT_FIELD_NUMBER: builtins.int - signed_url: builtins.str +@_typing.final +class CreateBinaryDataSignedURLResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SIGNED_URL_FIELD_NUMBER: _builtins.int + EXPIRES_AT_FIELD_NUMBER: _builtins.int + signed_url: _builtins.str 'The signed URL for the binary data file.' - @property - def expires_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def expires_at(self) -> _timestamp_pb2.Timestamp: """Expiration time of the signed URL token.""" - def __init__(self, *, signed_url: builtins.str=..., expires_at: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, signed_url: _builtins.str=..., expires_at: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['expires_at', b'expires_at'] - def HasField(self, field_name: typing.Literal['expires_at', b'expires_at']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['expires_at', b'expires_at', 'signed_url', b'signed_url'] - def ClearField(self, field_name: typing.Literal['expires_at', b'expires_at', 'signed_url', b'signed_url']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateBinaryDataSignedURLResponse = CreateBinaryDataSignedURLResponse \ No newline at end of file +Global___CreateBinaryDataSignedURLResponse: _TypeAlias = CreateBinaryDataSignedURLResponse \ No newline at end of file diff --git a/src/viam/gen/app/datapipelines/v1/data_pipelines_pb2.py b/src/viam/gen/app/datapipelines/v1/data_pipelines_pb2.py index a0a8af47c3..9eeab1e27c 100644 --- a/src/viam/gen/app/datapipelines/v1/data_pipelines_pb2.py +++ b/src/viam/gen/app/datapipelines/v1/data_pipelines_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/datapipelines/v1/data_pipelines.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/datapipelines/v1/data_pipelines.proto') _sym_db = _symbol_database.Default() from ....app.data.v1 import data_pb2 as app_dot_data_dot_v1_dot_data__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 diff --git a/src/viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi b/src/viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi index 526ba9c407..296a25aa35 100644 --- a/src/viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi +++ b/src/viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi @@ -2,28 +2,28 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -from .... import app -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.timestamp_pb2 +from app.data.v1 import data_pb2 as _data_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _DataPipelineRunStatus: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _DataPipelineRunStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DataPipelineRunStatus.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _DataPipelineRunStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_DataPipelineRunStatus.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor DATA_PIPELINE_RUN_STATUS_UNSPECIFIED: _DataPipelineRunStatus.ValueType DATA_PIPELINE_RUN_STATUS_SCHEDULED: _DataPipelineRunStatus.ValueType DATA_PIPELINE_RUN_STATUS_STARTED: _DataPipelineRunStatus.ValueType @@ -37,351 +37,375 @@ DATA_PIPELINE_RUN_STATUS_SCHEDULED: DataPipelineRunStatus.ValueType DATA_PIPELINE_RUN_STATUS_STARTED: DataPipelineRunStatus.ValueType DATA_PIPELINE_RUN_STATUS_COMPLETED: DataPipelineRunStatus.ValueType DATA_PIPELINE_RUN_STATUS_FAILED: DataPipelineRunStatus.ValueType -global___DataPipelineRunStatus = DataPipelineRunStatus - -@typing.final -class DataPipeline(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - MQL_BINARY_FIELD_NUMBER: builtins.int - SCHEDULE_FIELD_NUMBER: builtins.int - ENABLED_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - UPDATED_AT_FIELD_NUMBER: builtins.int - DATA_SOURCE_TYPE_FIELD_NUMBER: builtins.int - id: builtins.str - organization_id: builtins.str +Global___DataPipelineRunStatus: _TypeAlias = DataPipelineRunStatus + +@_typing.final +class DataPipeline(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + MQL_BINARY_FIELD_NUMBER: _builtins.int + SCHEDULE_FIELD_NUMBER: _builtins.int + ENABLED_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + UPDATED_AT_FIELD_NUMBER: _builtins.int + DATA_SOURCE_TYPE_FIELD_NUMBER: _builtins.int + id: _builtins.str + organization_id: _builtins.str 'The associated Viam organization ID.' - name: builtins.str + name: _builtins.str 'A unique identifier at the org level.' - schedule: builtins.str + schedule: _builtins.str 'A cron expression representing the expected execution schedule in UTC (note this also\n defines the input time window; an hourly schedule would process 1 hour of data at a time).\n ' - enabled: builtins.bool + enabled: _builtins.bool 'Whether or not the pipeline is enabled.' - data_source_type: app.data.v1.data_pb2.TabularDataSourceType.ValueType + data_source_type: _data_pb2.TabularDataSourceType.ValueType 'The type of data source for the pipeline. If not specified, default is standard data storage.' - @property - def mql_binary(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + @_builtins.property + def mql_binary(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: """A MongoDB aggregation pipeline as a list of BSON documents, where each document is one stage in the pipeline. """ - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: """The time the pipeline was created.""" - @property - def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def updated_at(self) -> _timestamp_pb2.Timestamp: """The time the pipeline was last updated.""" - def __init__(self, *, id: builtins.str=..., organization_id: builtins.str=..., name: builtins.str=..., mql_binary: collections.abc.Iterable[builtins.bytes] | None=..., schedule: builtins.str=..., enabled: builtins.bool=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., updated_at: google.protobuf.timestamp_pb2.Timestamp | None=..., data_source_type: app.data.v1.data_pb2.TabularDataSourceType.ValueType | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., organization_id: _builtins.str=..., name: _builtins.str=..., mql_binary: _abc.Iterable[_builtins.bytes] | None=..., schedule: _builtins.str=..., enabled: _builtins.bool=..., created_on: _timestamp_pb2.Timestamp | None=..., updated_at: _timestamp_pb2.Timestamp | None=..., data_source_type: _data_pb2.TabularDataSourceType.ValueType | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_data_source_type', b'_data_source_type', 'created_on', b'created_on', 'data_source_type', b'data_source_type', 'updated_at', b'updated_at'] - def HasField(self, field_name: typing.Literal['_data_source_type', b'_data_source_type', 'created_on', b'created_on', 'data_source_type', b'data_source_type', 'updated_at', b'updated_at']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_data_source_type', b'_data_source_type', 'created_on', b'created_on', 'data_source_type', b'data_source_type', 'enabled', b'enabled', 'id', b'id', 'mql_binary', b'mql_binary', 'name', b'name', 'organization_id', b'organization_id', 'schedule', b'schedule', 'updated_at', b'updated_at'] - def ClearField(self, field_name: typing.Literal['_data_source_type', b'_data_source_type', 'created_on', b'created_on', 'data_source_type', b'data_source_type', 'enabled', b'enabled', 'id', b'id', 'mql_binary', b'mql_binary', 'name', b'name', 'organization_id', b'organization_id', 'schedule', b'schedule', 'updated_at', b'updated_at']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__data_source_type: _TypeAlias = _typing.Literal['data_source_type'] + _WhichOneofArgType__data_source_type: _TypeAlias = _typing.Literal['_data_source_type', b'_data_source_type'] - def WhichOneof(self, oneof_group: typing.Literal['_data_source_type', b'_data_source_type']) -> typing.Literal['data_source_type'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__data_source_type) -> _WhichOneofReturnType__data_source_type | None: ... -global___DataPipeline = DataPipeline +Global___DataPipeline: _TypeAlias = DataPipeline -@typing.final -class GetDataPipelineRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class GetDataPipelineRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str 'The ID of the data pipeline to retrieve.' - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetDataPipelineRequest = GetDataPipelineRequest +Global___GetDataPipelineRequest: _TypeAlias = GetDataPipelineRequest -@typing.final -class GetDataPipelineResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_PIPELINE_FIELD_NUMBER: builtins.int +@_typing.final +class GetDataPipelineResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_PIPELINE_FIELD_NUMBER: _builtins.int - @property - def data_pipeline(self) -> global___DataPipeline: + @_builtins.property + def data_pipeline(self) -> Global___DataPipeline: ... - def __init__(self, *, data_pipeline: global___DataPipeline | None=...) -> None: + def __init__(self, *, data_pipeline: Global___DataPipeline | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data_pipeline', b'data_pipeline'] - def HasField(self, field_name: typing.Literal['data_pipeline', b'data_pipeline']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data_pipeline', b'data_pipeline'] - def ClearField(self, field_name: typing.Literal['data_pipeline', b'data_pipeline']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetDataPipelineResponse = GetDataPipelineResponse +Global___GetDataPipelineResponse: _TypeAlias = GetDataPipelineResponse -@typing.final -class ListDataPipelinesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class ListDataPipelinesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str 'The associated Viam organization ID.' - def __init__(self, *, organization_id: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListDataPipelinesRequest = ListDataPipelinesRequest +Global___ListDataPipelinesRequest: _TypeAlias = ListDataPipelinesRequest -@typing.final -class ListDataPipelinesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_PIPELINES_FIELD_NUMBER: builtins.int +@_typing.final +class ListDataPipelinesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_PIPELINES_FIELD_NUMBER: _builtins.int - @property - def data_pipelines(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DataPipeline]: + @_builtins.property + def data_pipelines(self) -> _containers.RepeatedCompositeFieldContainer[Global___DataPipeline]: ... - def __init__(self, *, data_pipelines: collections.abc.Iterable[global___DataPipeline] | None=...) -> None: + def __init__(self, *, data_pipelines: _abc.Iterable[Global___DataPipeline] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data_pipelines', b'data_pipelines'] - def ClearField(self, field_name: typing.Literal['data_pipelines', b'data_pipelines']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListDataPipelinesResponse = ListDataPipelinesResponse +Global___ListDataPipelinesResponse: _TypeAlias = ListDataPipelinesResponse -@typing.final -class CreateDataPipelineRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - MQL_BINARY_FIELD_NUMBER: builtins.int - SCHEDULE_FIELD_NUMBER: builtins.int - ENABLE_BACKFILL_FIELD_NUMBER: builtins.int - DATA_SOURCE_TYPE_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class CreateDataPipelineRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + MQL_BINARY_FIELD_NUMBER: _builtins.int + SCHEDULE_FIELD_NUMBER: _builtins.int + ENABLE_BACKFILL_FIELD_NUMBER: _builtins.int + DATA_SOURCE_TYPE_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str 'The associated Viam organization ID.' - name: builtins.str + name: _builtins.str 'A unique identifier at the org level.' - schedule: builtins.str + schedule: _builtins.str 'A cron expression representing the expected execution schedule in UTC (note this also\n defines the input time window; an hourly schedule would process 1 hour of data at a time).\n ' - enable_backfill: builtins.bool + enable_backfill: _builtins.bool "When true, pipeline runs will be scheduled for the organization's past data." - data_source_type: app.data.v1.data_pb2.TabularDataSourceType.ValueType + data_source_type: _data_pb2.TabularDataSourceType.ValueType 'The type of data source for the pipeline. If not specified, default is standard data storage.' - @property - def mql_binary(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + @_builtins.property + def mql_binary(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: """A MongoDB aggregation pipeline as a list of BSON documents, where each document is one stage in the pipeline. """ - def __init__(self, *, organization_id: builtins.str=..., name: builtins.str=..., mql_binary: collections.abc.Iterable[builtins.bytes] | None=..., schedule: builtins.str=..., enable_backfill: builtins.bool | None=..., data_source_type: app.data.v1.data_pb2.TabularDataSourceType.ValueType | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., name: _builtins.str=..., mql_binary: _abc.Iterable[_builtins.bytes] | None=..., schedule: _builtins.str=..., enable_backfill: _builtins.bool | None=..., data_source_type: _data_pb2.TabularDataSourceType.ValueType | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_data_source_type', b'_data_source_type', '_enable_backfill', b'_enable_backfill', 'data_source_type', b'data_source_type', 'enable_backfill', b'enable_backfill'] - def HasField(self, field_name: typing.Literal['_data_source_type', b'_data_source_type', '_enable_backfill', b'_enable_backfill', 'data_source_type', b'data_source_type', 'enable_backfill', b'enable_backfill']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_data_source_type', b'_data_source_type', '_enable_backfill', b'_enable_backfill', 'data_source_type', b'data_source_type', 'enable_backfill', b'enable_backfill', 'mql_binary', b'mql_binary', 'name', b'name', 'organization_id', b'organization_id', 'schedule', b'schedule'] - def ClearField(self, field_name: typing.Literal['_data_source_type', b'_data_source_type', '_enable_backfill', b'_enable_backfill', 'data_source_type', b'data_source_type', 'enable_backfill', b'enable_backfill', 'mql_binary', b'mql_binary', 'name', b'name', 'organization_id', b'organization_id', 'schedule', b'schedule']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__data_source_type: _TypeAlias = _typing.Literal['data_source_type'] + _WhichOneofArgType__data_source_type: _TypeAlias = _typing.Literal['_data_source_type', b'_data_source_type'] + _WhichOneofReturnType__enable_backfill: _TypeAlias = _typing.Literal['enable_backfill'] + _WhichOneofArgType__enable_backfill: _TypeAlias = _typing.Literal['_enable_backfill', b'_enable_backfill'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_data_source_type', b'_data_source_type']) -> typing.Literal['data_source_type'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__data_source_type) -> _WhichOneofReturnType__data_source_type | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_enable_backfill', b'_enable_backfill']) -> typing.Literal['enable_backfill'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__enable_backfill) -> _WhichOneofReturnType__enable_backfill | None: ... -global___CreateDataPipelineRequest = CreateDataPipelineRequest +Global___CreateDataPipelineRequest: _TypeAlias = CreateDataPipelineRequest -@typing.final -class CreateDataPipelineResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class CreateDataPipelineResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str 'The ID of the newly created data pipeline.' - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateDataPipelineResponse = CreateDataPipelineResponse +Global___CreateDataPipelineResponse: _TypeAlias = CreateDataPipelineResponse -@typing.final -class RenameDataPipelineRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class RenameDataPipelineRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + id: _builtins.str 'The ID of the data pipeline to rename.' - name: builtins.str + name: _builtins.str 'A unique identifier at the organization level.' - def __init__(self, *, id: builtins.str=..., name: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RenameDataPipelineRequest = RenameDataPipelineRequest +Global___RenameDataPipelineRequest: _TypeAlias = RenameDataPipelineRequest -@typing.final -class RenameDataPipelineResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class RenameDataPipelineResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___RenameDataPipelineResponse = RenameDataPipelineResponse +Global___RenameDataPipelineResponse: _TypeAlias = RenameDataPipelineResponse -@typing.final -class DeleteDataPipelineRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class DeleteDataPipelineRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str 'The ID of the data pipeline to delete.' - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteDataPipelineRequest = DeleteDataPipelineRequest +Global___DeleteDataPipelineRequest: _TypeAlias = DeleteDataPipelineRequest -@typing.final -class DeleteDataPipelineResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteDataPipelineResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteDataPipelineResponse = DeleteDataPipelineResponse +Global___DeleteDataPipelineResponse: _TypeAlias = DeleteDataPipelineResponse -@typing.final -class EnableDataPipelineRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class EnableDataPipelineRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str 'The ID of the data pipeline to enable.' - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EnableDataPipelineRequest = EnableDataPipelineRequest +Global___EnableDataPipelineRequest: _TypeAlias = EnableDataPipelineRequest -@typing.final -class EnableDataPipelineResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class EnableDataPipelineResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___EnableDataPipelineResponse = EnableDataPipelineResponse +Global___EnableDataPipelineResponse: _TypeAlias = EnableDataPipelineResponse -@typing.final -class DisableDataPipelineRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class DisableDataPipelineRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str 'The ID of the data pipeline to disable.' - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DisableDataPipelineRequest = DisableDataPipelineRequest +Global___DisableDataPipelineRequest: _TypeAlias = DisableDataPipelineRequest -@typing.final -class DisableDataPipelineResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DisableDataPipelineResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DisableDataPipelineResponse = DisableDataPipelineResponse +Global___DisableDataPipelineResponse: _TypeAlias = DisableDataPipelineResponse -@typing.final -class ListDataPipelineRunsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - PAGE_SIZE_FIELD_NUMBER: builtins.int - PAGE_TOKEN_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class ListDataPipelineRunsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + PAGE_SIZE_FIELD_NUMBER: _builtins.int + PAGE_TOKEN_FIELD_NUMBER: _builtins.int + id: _builtins.str 'The ID of the data pipeline to list runs for.' - page_size: builtins.int + page_size: _builtins.int 'pagination fields' - page_token: builtins.str + page_token: _builtins.str - def __init__(self, *, id: builtins.str=..., page_size: builtins.int=..., page_token: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., page_size: _builtins.int=..., page_token: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'page_size', b'page_size', 'page_token', b'page_token'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'page_size', b'page_size', 'page_token', b'page_token']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListDataPipelineRunsRequest = ListDataPipelineRunsRequest +Global___ListDataPipelineRunsRequest: _TypeAlias = ListDataPipelineRunsRequest -@typing.final -class ListDataPipelineRunsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PIPELINE_ID_FIELD_NUMBER: builtins.int - RUNS_FIELD_NUMBER: builtins.int - NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int - pipeline_id: builtins.str +@_typing.final +class ListDataPipelineRunsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PIPELINE_ID_FIELD_NUMBER: _builtins.int + RUNS_FIELD_NUMBER: _builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: _builtins.int + pipeline_id: _builtins.str 'The ID of the data pipeline the runs are for.' - next_page_token: builtins.str + next_page_token: _builtins.str 'A token to retrieve the next page of results.' - @property - def runs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DataPipelineRun]: + @_builtins.property + def runs(self) -> _containers.RepeatedCompositeFieldContainer[Global___DataPipelineRun]: """The runs that were run.""" - def __init__(self, *, pipeline_id: builtins.str=..., runs: collections.abc.Iterable[global___DataPipelineRun] | None=..., next_page_token: builtins.str=...) -> None: + def __init__(self, *, pipeline_id: _builtins.str=..., runs: _abc.Iterable[Global___DataPipelineRun] | None=..., next_page_token: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['next_page_token', b'next_page_token', 'pipeline_id', b'pipeline_id', 'runs', b'runs'] - def ClearField(self, field_name: typing.Literal['next_page_token', b'next_page_token', 'pipeline_id', b'pipeline_id', 'runs', b'runs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListDataPipelineRunsResponse = ListDataPipelineRunsResponse +Global___ListDataPipelineRunsResponse: _TypeAlias = ListDataPipelineRunsResponse -@typing.final -class DataPipelineRun(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - START_TIME_FIELD_NUMBER: builtins.int - END_TIME_FIELD_NUMBER: builtins.int - DATA_START_TIME_FIELD_NUMBER: builtins.int - DATA_END_TIME_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - ERROR_MESSAGE_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class DataPipelineRun(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + START_TIME_FIELD_NUMBER: _builtins.int + END_TIME_FIELD_NUMBER: _builtins.int + DATA_START_TIME_FIELD_NUMBER: _builtins.int + DATA_END_TIME_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + ERROR_MESSAGE_FIELD_NUMBER: _builtins.int + id: _builtins.str 'The ID of the run.' - status: global___DataPipelineRunStatus.ValueType + status: Global___DataPipelineRunStatus.ValueType 'The status of the run.' - error_message: builtins.str + error_message: _builtins.str 'The error message if the run failed.' - @property - def start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def start_time(self) -> _timestamp_pb2.Timestamp: """The time the run started.""" - @property - def end_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def end_time(self) -> _timestamp_pb2.Timestamp: """The time the run ended.""" - @property - def data_start_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def data_start_time(self) -> _timestamp_pb2.Timestamp: """The start time of the data that was processed in the run.""" - @property - def data_end_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def data_end_time(self) -> _timestamp_pb2.Timestamp: """The end time of the data that was processed in the run.""" - def __init__(self, *, id: builtins.str=..., start_time: google.protobuf.timestamp_pb2.Timestamp | None=..., end_time: google.protobuf.timestamp_pb2.Timestamp | None=..., data_start_time: google.protobuf.timestamp_pb2.Timestamp | None=..., data_end_time: google.protobuf.timestamp_pb2.Timestamp | None=..., status: global___DataPipelineRunStatus.ValueType=..., error_message: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., start_time: _timestamp_pb2.Timestamp | None=..., end_time: _timestamp_pb2.Timestamp | None=..., data_start_time: _timestamp_pb2.Timestamp | None=..., data_end_time: _timestamp_pb2.Timestamp | None=..., status: Global___DataPipelineRunStatus.ValueType=..., error_message: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data_end_time', b'data_end_time', 'data_start_time', b'data_start_time', 'end_time', b'end_time', 'start_time', b'start_time'] - def HasField(self, field_name: typing.Literal['data_end_time', b'data_end_time', 'data_start_time', b'data_start_time', 'end_time', b'end_time', 'start_time', b'start_time']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data_end_time', b'data_end_time', 'data_start_time', b'data_start_time', 'end_time', b'end_time', 'error_message', b'error_message', 'id', b'id', 'start_time', b'start_time', 'status', b'status'] - def ClearField(self, field_name: typing.Literal['data_end_time', b'data_end_time', 'data_start_time', b'data_start_time', 'end_time', b'end_time', 'error_message', b'error_message', 'id', b'id', 'start_time', b'start_time', 'status', b'status']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DataPipelineRun = DataPipelineRun \ No newline at end of file +Global___DataPipelineRun: _TypeAlias = DataPipelineRun \ No newline at end of file diff --git a/src/viam/gen/app/dataset/v1/dataset_pb2.py b/src/viam/gen/app/dataset/v1/dataset_pb2.py index 3b0f67f09d..69449e1e1e 100644 --- a/src/viam/gen/app/dataset/v1/dataset_pb2.py +++ b/src/viam/gen/app/dataset/v1/dataset_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/dataset/v1/dataset.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/dataset/v1/dataset.proto') _sym_db = _symbol_database.Default() from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1capp/dataset/v1/dataset.proto\x12\x13viam.app.dataset.v1\x1a\x1fgoogle/protobuf/timestamp.proto"\x95\x01\n\x07Dataset\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\'\n\x0forganization_id\x18\x03 \x01(\tR\x0eorganizationId\x12=\n\x0ctime_created\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0btimeCreated"S\n\x14CreateDatasetRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\'\n\x0forganization_id\x18\x02 \x01(\tR\x0eorganizationId"\'\n\x15CreateDatasetResponse\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"&\n\x14DeleteDatasetRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id"\x17\n\x15DeleteDatasetResponse":\n\x14RenameDatasetRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name"\x17\n\x15RenameDatasetResponse"N\n#ListDatasetsByOrganizationIDRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId"`\n$ListDatasetsByOrganizationIDResponse\x128\n\x08datasets\x18\x01 \x03(\x0b2\x1c.viam.app.dataset.v1.DatasetR\x08datasets",\n\x18ListDatasetsByIDsRequest\x12\x10\n\x03ids\x18\x01 \x03(\tR\x03ids"U\n\x19ListDatasetsByIDsResponse\x128\n\x08datasets\x18\x01 \x03(\x0b2\x1c.viam.app.dataset.v1.DatasetR\x08datasets"t\n\x14MergeDatasetsRequest\x12\x1f\n\x0bdataset_ids\x18\x01 \x03(\tR\ndatasetIds\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\'\n\x0forganization_id\x18\x03 \x01(\tR\x0eorganizationId"6\n\x15MergeDatasetsResponse\x12\x1d\n\ndataset_id\x18\x01 \x01(\tR\tdatasetId2\xba\x05\n\x0eDatasetService\x12f\n\rCreateDataset\x12).viam.app.dataset.v1.CreateDatasetRequest\x1a*.viam.app.dataset.v1.CreateDatasetResponse\x12f\n\rDeleteDataset\x12).viam.app.dataset.v1.DeleteDatasetRequest\x1a*.viam.app.dataset.v1.DeleteDatasetResponse\x12f\n\rRenameDataset\x12).viam.app.dataset.v1.RenameDatasetRequest\x1a*.viam.app.dataset.v1.RenameDatasetResponse\x12\x93\x01\n\x1cListDatasetsByOrganizationID\x128.viam.app.dataset.v1.ListDatasetsByOrganizationIDRequest\x1a9.viam.app.dataset.v1.ListDatasetsByOrganizationIDResponse\x12r\n\x11ListDatasetsByIDs\x12-.viam.app.dataset.v1.ListDatasetsByIDsRequest\x1a..viam.app.dataset.v1.ListDatasetsByIDsResponse\x12f\n\rMergeDatasets\x12).viam.app.dataset.v1.MergeDatasetsRequest\x1a*.viam.app.dataset.v1.MergeDatasetsResponseB Z\x1ego.viam.com/api/app/dataset/v1b\x06proto3') diff --git a/src/viam/gen/app/dataset/v1/dataset_pb2.pyi b/src/viam/gen/app/dataset/v1/dataset_pb2.pyi index 2fd5e06124..b2b05793cd 100644 --- a/src/viam/gen/app/dataset/v1/dataset_pb2.pyi +++ b/src/viam/gen/app/dataset/v1/dataset_pb2.pyi @@ -2,213 +2,230 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Dataset(google.protobuf.message.Message): +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class Dataset(_message.Message): """Dataset stores the metadata of a dataset.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - TIME_CREATED_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str - organization_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + TIME_CREATED_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str + organization_id: _builtins.str - @property - def time_created(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_created(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, id: builtins.str=..., name: builtins.str=..., organization_id: builtins.str=..., time_created: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=..., organization_id: _builtins.str=..., time_created: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['time_created', b'time_created'] - def HasField(self, field_name: typing.Literal['time_created', b'time_created']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'name', b'name', 'organization_id', b'organization_id', 'time_created', b'time_created'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'name', b'name', 'organization_id', b'organization_id', 'time_created', b'time_created']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Dataset = Dataset +Global___Dataset: _TypeAlias = Dataset -@typing.final -class CreateDatasetRequest(google.protobuf.message.Message): +@_typing.final +class CreateDatasetRequest(_message.Message): """CreateDatasetRequest defines the name and organization ID of a dataset.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - name: builtins.str - organization_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + name: _builtins.str + organization_id: _builtins.str - def __init__(self, *, name: builtins.str=..., organization_id: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=..., organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['name', b'name', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateDatasetRequest = CreateDatasetRequest +Global___CreateDatasetRequest: _TypeAlias = CreateDatasetRequest -@typing.final -class CreateDatasetResponse(google.protobuf.message.Message): +@_typing.final +class CreateDatasetResponse(_message.Message): """CreateDatasetResponse returns the dataset ID of the created dataset.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateDatasetResponse = CreateDatasetResponse +Global___CreateDatasetResponse: _TypeAlias = CreateDatasetResponse -@typing.final -class DeleteDatasetRequest(google.protobuf.message.Message): +@_typing.final +class DeleteDatasetRequest(_message.Message): """DeleteDatasetRequest deletes the dataset specified by the dataset ID.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteDatasetRequest = DeleteDatasetRequest +Global___DeleteDatasetRequest: _TypeAlias = DeleteDatasetRequest -@typing.final -class DeleteDatasetResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteDatasetResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteDatasetResponse = DeleteDatasetResponse +Global___DeleteDatasetResponse: _TypeAlias = DeleteDatasetResponse -@typing.final -class RenameDatasetRequest(google.protobuf.message.Message): +@_typing.final +class RenameDatasetRequest(_message.Message): """RenameDatasetRequest applies the new name to the dataset specified by the dataset ID.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str - def __init__(self, *, id: builtins.str=..., name: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RenameDatasetRequest = RenameDatasetRequest +Global___RenameDatasetRequest: _TypeAlias = RenameDatasetRequest -@typing.final -class RenameDatasetResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class RenameDatasetResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___RenameDatasetResponse = RenameDatasetResponse +Global___RenameDatasetResponse: _TypeAlias = RenameDatasetResponse -@typing.final -class ListDatasetsByOrganizationIDRequest(google.protobuf.message.Message): +@_typing.final +class ListDatasetsByOrganizationIDRequest(_message.Message): """ListDatasetsByOrganizationIDRequest requests all of the datasets for an organization.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - organization_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str - def __init__(self, *, organization_id: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListDatasetsByOrganizationIDRequest = ListDatasetsByOrganizationIDRequest +Global___ListDatasetsByOrganizationIDRequest: _TypeAlias = ListDatasetsByOrganizationIDRequest -@typing.final -class ListDatasetsByOrganizationIDResponse(google.protobuf.message.Message): +@_typing.final +class ListDatasetsByOrganizationIDResponse(_message.Message): """ListDatasetsByOrganizationIDResponse returns all the dataset metadata for the organization.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATASETS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + DATASETS_FIELD_NUMBER: _builtins.int - @property - def datasets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Dataset]: + @_builtins.property + def datasets(self) -> _containers.RepeatedCompositeFieldContainer[Global___Dataset]: ... - def __init__(self, *, datasets: collections.abc.Iterable[global___Dataset] | None=...) -> None: + def __init__(self, *, datasets: _abc.Iterable[Global___Dataset] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['datasets', b'datasets'] - def ClearField(self, field_name: typing.Literal['datasets', b'datasets']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListDatasetsByOrganizationIDResponse = ListDatasetsByOrganizationIDResponse +Global___ListDatasetsByOrganizationIDResponse: _TypeAlias = ListDatasetsByOrganizationIDResponse -@typing.final -class ListDatasetsByIDsRequest(google.protobuf.message.Message): +@_typing.final +class ListDatasetsByIDsRequest(_message.Message): """ListDatasetsByIDsRequest requests all of the datasets by their dataset IDs.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IDS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + IDS_FIELD_NUMBER: _builtins.int - @property - def ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, ids: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, ids: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['ids', b'ids'] - def ClearField(self, field_name: typing.Literal['ids', b'ids']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListDatasetsByIDsRequest = ListDatasetsByIDsRequest +Global___ListDatasetsByIDsRequest: _TypeAlias = ListDatasetsByIDsRequest -@typing.final -class ListDatasetsByIDsResponse(google.protobuf.message.Message): +@_typing.final +class ListDatasetsByIDsResponse(_message.Message): """ListDatasetsByIDsResponse returns all the dataset metadata for the associated dataset IDs.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATASETS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + DATASETS_FIELD_NUMBER: _builtins.int - @property - def datasets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Dataset]: + @_builtins.property + def datasets(self) -> _containers.RepeatedCompositeFieldContainer[Global___Dataset]: ... - def __init__(self, *, datasets: collections.abc.Iterable[global___Dataset] | None=...) -> None: + def __init__(self, *, datasets: _abc.Iterable[Global___Dataset] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['datasets', b'datasets'] - def ClearField(self, field_name: typing.Literal['datasets', b'datasets']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListDatasetsByIDsResponse = ListDatasetsByIDsResponse +Global___ListDatasetsByIDsResponse: _TypeAlias = ListDatasetsByIDsResponse -@typing.final -class MergeDatasetsRequest(google.protobuf.message.Message): +@_typing.final +class MergeDatasetsRequest(_message.Message): """MergeDatasetsRequest merges multiple datasets specified by their dataset IDs into a new dataset.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATASET_IDS_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - name: builtins.str - organization_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + DATASET_IDS_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + name: _builtins.str + organization_id: _builtins.str - @property - def dataset_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def dataset_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, dataset_ids: collections.abc.Iterable[builtins.str] | None=..., name: builtins.str=..., organization_id: builtins.str=...) -> None: + def __init__(self, *, dataset_ids: _abc.Iterable[_builtins.str] | None=..., name: _builtins.str=..., organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['dataset_ids', b'dataset_ids', 'name', b'name', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['dataset_ids', b'dataset_ids', 'name', b'name', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MergeDatasetsRequest = MergeDatasetsRequest +Global___MergeDatasetsRequest: _TypeAlias = MergeDatasetsRequest -@typing.final -class MergeDatasetsResponse(google.protobuf.message.Message): +@_typing.final +class MergeDatasetsResponse(_message.Message): """MergeDatasetsResponse returns the dataset ID of the newly created merged dataset.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATASET_ID_FIELD_NUMBER: builtins.int - dataset_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + DATASET_ID_FIELD_NUMBER: _builtins.int + dataset_id: _builtins.str - def __init__(self, *, dataset_id: builtins.str=...) -> None: + def __init__(self, *, dataset_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['dataset_id', b'dataset_id'] - def ClearField(self, field_name: typing.Literal['dataset_id', b'dataset_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MergeDatasetsResponse = MergeDatasetsResponse \ No newline at end of file +Global___MergeDatasetsResponse: _TypeAlias = MergeDatasetsResponse \ No newline at end of file diff --git a/src/viam/gen/app/datasync/v1/data_sync_pb2.py b/src/viam/gen/app/datasync/v1/data_sync_pb2.py index 0fd2816e45..b775973978 100644 --- a/src/viam/gen/app/datasync/v1/data_sync_pb2.py +++ b/src/viam/gen/app/datasync/v1/data_sync_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/datasync/v1/data_sync.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/datasync/v1/data_sync.proto') _sym_db = _symbol_database.Default() from ....app.data.v1 import data_pb2 as app_dot_data_dot_v1_dot_data__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/app/datasync/v1/data_sync_pb2.pyi b/src/viam/gen/app/datasync/v1/data_sync_pb2.pyi index eb644f6bdb..4fa1770232 100644 --- a/src/viam/gen/app/datasync/v1/data_sync_pb2.pyi +++ b/src/viam/gen/app/datasync/v1/data_sync_pb2.pyi @@ -2,30 +2,34 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -from .... import app -import builtins -import collections.abc -import google.protobuf.any_pb2 -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 +from app.data.v1 import data_pb2 as _data_pb2 +from collections import abc as _abc +from google.protobuf import any_pb2 as _any_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated +else: + from typing_extensions import deprecated as _deprecated +DESCRIPTOR: _descriptor.FileDescriptor class _MimeType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _MimeTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MimeType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _MimeTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_MimeType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor MIME_TYPE_UNSPECIFIED: _MimeType.ValueType MIME_TYPE_IMAGE_JPEG: _MimeType.ValueType MIME_TYPE_IMAGE_PNG: _MimeType.ValueType @@ -39,14 +43,14 @@ MIME_TYPE_IMAGE_JPEG: MimeType.ValueType MIME_TYPE_IMAGE_PNG: MimeType.ValueType MIME_TYPE_APPLICATION_PCD: MimeType.ValueType MIME_TYPE_VIDEO_MP4: MimeType.ValueType -global___MimeType = MimeType +Global___MimeType: _TypeAlias = MimeType class _DataType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _DataTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DataType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _DataTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_DataType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor DATA_TYPE_UNSPECIFIED: _DataType.ValueType DATA_TYPE_BINARY_SENSOR: _DataType.ValueType DATA_TYPE_TABULAR_SENSOR: _DataType.ValueType @@ -58,392 +62,450 @@ DATA_TYPE_UNSPECIFIED: DataType.ValueType DATA_TYPE_BINARY_SENSOR: DataType.ValueType DATA_TYPE_TABULAR_SENSOR: DataType.ValueType DATA_TYPE_FILE: DataType.ValueType -global___DataType = DataType +Global___DataType: _TypeAlias = DataType -@typing.final -class DataCaptureUploadRequest(google.protobuf.message.Message): +@_typing.final +class DataCaptureUploadRequest(_message.Message): """DataCaptureUploadRequest requests to upload the contents and metadata for tabular data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_FIELD_NUMBER: builtins.int - SENSOR_CONTENTS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + METADATA_FIELD_NUMBER: _builtins.int + SENSOR_CONTENTS_FIELD_NUMBER: _builtins.int - @property - def metadata(self) -> global___UploadMetadata: + @_builtins.property + def metadata(self) -> Global___UploadMetadata: ... - @property - def sensor_contents(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SensorData]: + @_builtins.property + def sensor_contents(self) -> _containers.RepeatedCompositeFieldContainer[Global___SensorData]: ... - def __init__(self, *, metadata: global___UploadMetadata | None=..., sensor_contents: collections.abc.Iterable[global___SensorData] | None=...) -> None: + def __init__(self, *, metadata: Global___UploadMetadata | None=..., sensor_contents: _abc.Iterable[Global___SensorData] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata'] - def HasField(self, field_name: typing.Literal['metadata', b'metadata']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata', 'sensor_contents', b'sensor_contents'] - def ClearField(self, field_name: typing.Literal['metadata', b'metadata', 'sensor_contents', b'sensor_contents']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DataCaptureUploadRequest = DataCaptureUploadRequest +Global___DataCaptureUploadRequest: _TypeAlias = DataCaptureUploadRequest -@typing.final -class DataCaptureUploadResponse(google.protobuf.message.Message): +@_typing.final +class DataCaptureUploadResponse(_message.Message): """DataCaptureUploadResponse returns the file id of the uploaded contents and metadata for tabular data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILE_ID_FIELD_NUMBER: builtins.int - BINARY_DATA_ID_FIELD_NUMBER: builtins.int - file_id: builtins.str - binary_data_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + FILE_ID_FIELD_NUMBER: _builtins.int + BINARY_DATA_ID_FIELD_NUMBER: _builtins.int + file_id: _builtins.str + binary_data_id: _builtins.str - def __init__(self, *, file_id: builtins.str=..., binary_data_id: builtins.str=...) -> None: + def __init__(self, *, file_id: _builtins.str=..., binary_data_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data_id', b'binary_data_id', 'file_id', b'file_id'] - def ClearField(self, field_name: typing.Literal['binary_data_id', b'binary_data_id', 'file_id', b'file_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DataCaptureUploadResponse = DataCaptureUploadResponse +Global___DataCaptureUploadResponse: _TypeAlias = DataCaptureUploadResponse -@typing.final -class FileUploadRequest(google.protobuf.message.Message): +@_typing.final +class FileUploadRequest(_message.Message): """FileUploadRequest requests to upload the contents and metadata for binary (image + file) data. The first packet must be the UploadMetadata associated with the binary data. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_FIELD_NUMBER: builtins.int - FILE_CONTENTS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + METADATA_FIELD_NUMBER: _builtins.int + FILE_CONTENTS_FIELD_NUMBER: _builtins.int - @property - def metadata(self) -> global___UploadMetadata: + @_builtins.property + def metadata(self) -> Global___UploadMetadata: ... - @property - def file_contents(self) -> global___FileData: + @_builtins.property + def file_contents(self) -> Global___FileData: ... - def __init__(self, *, metadata: global___UploadMetadata | None=..., file_contents: global___FileData | None=...) -> None: + def __init__(self, *, metadata: Global___UploadMetadata | None=..., file_contents: Global___FileData | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['file_contents', b'file_contents', 'metadata', b'metadata', 'upload_packet', b'upload_packet'] - def HasField(self, field_name: typing.Literal['file_contents', b'file_contents', 'metadata', b'metadata', 'upload_packet', b'upload_packet']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['file_contents', b'file_contents', 'metadata', b'metadata', 'upload_packet', b'upload_packet'] - def ClearField(self, field_name: typing.Literal['file_contents', b'file_contents', 'metadata', b'metadata', 'upload_packet', b'upload_packet']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_upload_packet: _TypeAlias = _typing.Literal['metadata', 'file_contents'] + _WhichOneofArgType_upload_packet: _TypeAlias = _typing.Literal['upload_packet', b'upload_packet'] - def WhichOneof(self, oneof_group: typing.Literal['upload_packet', b'upload_packet']) -> typing.Literal['metadata', 'file_contents'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_upload_packet) -> _WhichOneofReturnType_upload_packet | None: ... -global___FileUploadRequest = FileUploadRequest +Global___FileUploadRequest: _TypeAlias = FileUploadRequest -@typing.final -class FileUploadResponse(google.protobuf.message.Message): +@_typing.final +class FileUploadResponse(_message.Message): """FileUploadResponse returns the file id of the uploaded contents and metadata for binary (image + file) data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILE_ID_FIELD_NUMBER: builtins.int - BINARY_DATA_ID_FIELD_NUMBER: builtins.int - file_id: builtins.str - binary_data_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + FILE_ID_FIELD_NUMBER: _builtins.int + BINARY_DATA_ID_FIELD_NUMBER: _builtins.int + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def file_id(self) -> _builtins.str: + ... - def __init__(self, *, file_id: builtins.str=..., binary_data_id: builtins.str=...) -> None: + @file_id.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def file_id(self, value: _builtins.str) -> None: ... + binary_data_id: _builtins.str - def ClearField(self, field_name: typing.Literal['binary_data_id', b'binary_data_id', 'file_id', b'file_id']) -> None: + def __init__(self, *, file_id: _builtins.str=..., binary_data_id: _builtins.str=...) -> None: ... -global___FileUploadResponse = FileUploadResponse + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data_id', b'binary_data_id', 'file_id', b'file_id'] -@typing.final -class StreamingDataCaptureUploadRequest(google.protobuf.message.Message): + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___FileUploadResponse: _TypeAlias = FileUploadResponse + +@_typing.final +class StreamingDataCaptureUploadRequest(_message.Message): """StreamingDataCaptureUploadRequest requests to upload the contents and metadata for streaming binary (image + file) data. The first packet must be the DataCaptureUploadMetadata associated with the data. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_FIELD_NUMBER: builtins.int - DATA_FIELD_NUMBER: builtins.int - data: builtins.bytes + DESCRIPTOR: _descriptor.Descriptor + METADATA_FIELD_NUMBER: _builtins.int + DATA_FIELD_NUMBER: _builtins.int + data: _builtins.bytes - @property - def metadata(self) -> global___DataCaptureUploadMetadata: + @_builtins.property + def metadata(self) -> Global___DataCaptureUploadMetadata: ... - def __init__(self, *, metadata: global___DataCaptureUploadMetadata | None=..., data: builtins.bytes=...) -> None: + def __init__(self, *, metadata: Global___DataCaptureUploadMetadata | None=..., data: _builtins.bytes=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data', b'data', 'metadata', b'metadata', 'upload_packet', b'upload_packet'] - def HasField(self, field_name: typing.Literal['data', b'data', 'metadata', b'metadata', 'upload_packet', b'upload_packet']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data', 'metadata', b'metadata', 'upload_packet', b'upload_packet'] - def ClearField(self, field_name: typing.Literal['data', b'data', 'metadata', b'metadata', 'upload_packet', b'upload_packet']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_upload_packet: _TypeAlias = _typing.Literal['metadata', 'data'] + _WhichOneofArgType_upload_packet: _TypeAlias = _typing.Literal['upload_packet', b'upload_packet'] - def WhichOneof(self, oneof_group: typing.Literal['upload_packet', b'upload_packet']) -> typing.Literal['metadata', 'data'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_upload_packet) -> _WhichOneofReturnType_upload_packet | None: ... -global___StreamingDataCaptureUploadRequest = StreamingDataCaptureUploadRequest +Global___StreamingDataCaptureUploadRequest: _TypeAlias = StreamingDataCaptureUploadRequest -@typing.final -class StreamingDataCaptureUploadResponse(google.protobuf.message.Message): +@_typing.final +class StreamingDataCaptureUploadResponse(_message.Message): """StreamingDataCaptureUploadResponse returns the file id of the uploaded contents and metadata for streaming binary (image + file) data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILE_ID_FIELD_NUMBER: builtins.int - BINARY_DATA_ID_FIELD_NUMBER: builtins.int - file_id: builtins.str - binary_data_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + FILE_ID_FIELD_NUMBER: _builtins.int + BINARY_DATA_ID_FIELD_NUMBER: _builtins.int + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def file_id(self) -> _builtins.str: + ... - def __init__(self, *, file_id: builtins.str=..., binary_data_id: builtins.str=...) -> None: + @file_id.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def file_id(self, value: _builtins.str) -> None: ... + binary_data_id: _builtins.str - def ClearField(self, field_name: typing.Literal['binary_data_id', b'binary_data_id', 'file_id', b'file_id']) -> None: + def __init__(self, *, file_id: _builtins.str=..., binary_data_id: _builtins.str=...) -> None: ... -global___StreamingDataCaptureUploadResponse = StreamingDataCaptureUploadResponse + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data_id', b'binary_data_id', 'file_id', b'file_id'] -@typing.final -class SensorMetadata(google.protobuf.message.Message): + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___StreamingDataCaptureUploadResponse: _TypeAlias = StreamingDataCaptureUploadResponse + +@_typing.final +class SensorMetadata(_message.Message): """SensorMetadata contains the time the sensor data was requested and was received. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TIME_REQUESTED_FIELD_NUMBER: builtins.int - TIME_RECEIVED_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - ANNOTATIONS_FIELD_NUMBER: builtins.int - mime_type: global___MimeType.ValueType + DESCRIPTOR: _descriptor.Descriptor + TIME_REQUESTED_FIELD_NUMBER: _builtins.int + TIME_RECEIVED_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + ANNOTATIONS_FIELD_NUMBER: _builtins.int + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def mime_type(self) -> Global___MimeType.ValueType: + ... + + @mime_type.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def mime_type(self, value: Global___MimeType.ValueType) -> None: + ... - @property - def time_requested(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_requested(self) -> _timestamp_pb2.Timestamp: ... - @property - def time_received(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time_received(self) -> _timestamp_pb2.Timestamp: ... - @property - def annotations(self) -> app.data.v1.data_pb2.Annotations: + @_builtins.property + def annotations(self) -> _data_pb2.Annotations: ... - def __init__(self, *, time_requested: google.protobuf.timestamp_pb2.Timestamp | None=..., time_received: google.protobuf.timestamp_pb2.Timestamp | None=..., mime_type: global___MimeType.ValueType=..., annotations: app.data.v1.data_pb2.Annotations | None=...) -> None: + def __init__(self, *, time_requested: _timestamp_pb2.Timestamp | None=..., time_received: _timestamp_pb2.Timestamp | None=..., mime_type: Global___MimeType.ValueType=..., annotations: _data_pb2.Annotations | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['annotations', b'annotations', 'time_received', b'time_received', 'time_requested', b'time_requested'] - def HasField(self, field_name: typing.Literal['annotations', b'annotations', 'time_received', b'time_received', 'time_requested', b'time_requested']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['annotations', b'annotations', 'mime_type', b'mime_type', 'time_received', b'time_received', 'time_requested', b'time_requested'] - def ClearField(self, field_name: typing.Literal['annotations', b'annotations', 'mime_type', b'mime_type', 'time_received', b'time_received', 'time_requested', b'time_requested']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SensorMetadata = SensorMetadata +Global___SensorMetadata: _TypeAlias = SensorMetadata -@typing.final -class SensorData(google.protobuf.message.Message): +@_typing.final +class SensorData(_message.Message): """SensorData contains the contents and metadata for tabular data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_FIELD_NUMBER: builtins.int - STRUCT_FIELD_NUMBER: builtins.int - BINARY_FIELD_NUMBER: builtins.int - binary: builtins.bytes + DESCRIPTOR: _descriptor.Descriptor + METADATA_FIELD_NUMBER: _builtins.int + STRUCT_FIELD_NUMBER: _builtins.int + BINARY_FIELD_NUMBER: _builtins.int + binary: _builtins.bytes - @property - def metadata(self) -> global___SensorMetadata: + @_builtins.property + def metadata(self) -> Global___SensorMetadata: ... - @property - def struct(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def struct(self) -> _struct_pb2.Struct: ... - def __init__(self, *, metadata: global___SensorMetadata | None=..., struct: google.protobuf.struct_pb2.Struct | None=..., binary: builtins.bytes=...) -> None: + def __init__(self, *, metadata: Global___SensorMetadata | None=..., struct: _struct_pb2.Struct | None=..., binary: _builtins.bytes=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['binary', b'binary', 'data', b'data', 'metadata', b'metadata', 'struct', b'struct'] - def HasField(self, field_name: typing.Literal['binary', b'binary', 'data', b'data', 'metadata', b'metadata', 'struct', b'struct']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary', b'binary', 'data', b'data', 'metadata', b'metadata', 'struct', b'struct'] - def ClearField(self, field_name: typing.Literal['binary', b'binary', 'data', b'data', 'metadata', b'metadata', 'struct', b'struct']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_data: _TypeAlias = _typing.Literal['struct', 'binary'] + _WhichOneofArgType_data: _TypeAlias = _typing.Literal['data', b'data'] - def WhichOneof(self, oneof_group: typing.Literal['data', b'data']) -> typing.Literal['struct', 'binary'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_data) -> _WhichOneofReturnType_data | None: ... -global___SensorData = SensorData +Global___SensorData: _TypeAlias = SensorData -@typing.final -class FileData(google.protobuf.message.Message): +@_typing.final +class FileData(_message.Message): """FileData contains the contents of binary (image + file) data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int - data: builtins.bytes + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int + data: _builtins.bytes - def __init__(self, *, data: builtins.bytes=...) -> None: + def __init__(self, *, data: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FileData = FileData +Global___FileData: _TypeAlias = FileData -@typing.final -class UploadMetadata(google.protobuf.message.Message): +@_typing.final +class UploadMetadata(_message.Message): """UploadMetadata contains the metadata for binary (image + file) data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class MethodParametersEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class MethodParametersEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> google.protobuf.any_pb2.Any: + @_builtins.property + def value(self) -> _any_pb2.Any: ... - def __init__(self, *, key: builtins.str=..., value: google.protobuf.any_pb2.Any | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _any_pb2.Any | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - PART_ID_FIELD_NUMBER: builtins.int - COMPONENT_TYPE_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - METHOD_NAME_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - METHOD_PARAMETERS_FIELD_NUMBER: builtins.int - FILE_NAME_FIELD_NUMBER: builtins.int - FILE_EXTENSION_FIELD_NUMBER: builtins.int - FILE_CREATE_TIME_FIELD_NUMBER: builtins.int - FILE_MODIFY_TIME_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - DATASET_IDS_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - part_id: builtins.str - component_type: builtins.str - component_name: builtins.str - method_name: builtins.str - type: global___DataType.ValueType - file_name: builtins.str - file_extension: builtins.str - mime_type: builtins.str + PART_ID_FIELD_NUMBER: _builtins.int + COMPONENT_TYPE_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + METHOD_NAME_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + METHOD_PARAMETERS_FIELD_NUMBER: _builtins.int + FILE_NAME_FIELD_NUMBER: _builtins.int + FILE_EXTENSION_FIELD_NUMBER: _builtins.int + FILE_CREATE_TIME_FIELD_NUMBER: _builtins.int + FILE_MODIFY_TIME_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + DATASET_IDS_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + part_id: _builtins.str + component_type: _builtins.str + component_name: _builtins.str + method_name: _builtins.str + type: Global___DataType.ValueType + file_name: _builtins.str + file_extension: _builtins.str + mime_type: _builtins.str - @property - def method_parameters(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.any_pb2.Any]: + @_builtins.property + def method_parameters(self) -> _containers.MessageMap[_builtins.str, _any_pb2.Any]: ... - @property - def file_create_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def file_create_time(self) -> _timestamp_pb2.Timestamp: ... - @property - def file_modify_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def file_modify_time(self) -> _timestamp_pb2.Timestamp: ... - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def dataset_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def dataset_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, part_id: builtins.str=..., component_type: builtins.str=..., component_name: builtins.str=..., method_name: builtins.str=..., type: global___DataType.ValueType=..., method_parameters: collections.abc.Mapping[builtins.str, google.protobuf.any_pb2.Any] | None=..., file_name: builtins.str=..., file_extension: builtins.str=..., file_create_time: google.protobuf.timestamp_pb2.Timestamp | None=..., file_modify_time: google.protobuf.timestamp_pb2.Timestamp | None=..., tags: collections.abc.Iterable[builtins.str] | None=..., dataset_ids: collections.abc.Iterable[builtins.str] | None=..., mime_type: builtins.str=...) -> None: + def __init__(self, *, part_id: _builtins.str=..., component_type: _builtins.str=..., component_name: _builtins.str=..., method_name: _builtins.str=..., type: Global___DataType.ValueType=..., method_parameters: _abc.Mapping[_builtins.str, _any_pb2.Any] | None=..., file_name: _builtins.str=..., file_extension: _builtins.str=..., file_create_time: _timestamp_pb2.Timestamp | None=..., file_modify_time: _timestamp_pb2.Timestamp | None=..., tags: _abc.Iterable[_builtins.str] | None=..., dataset_ids: _abc.Iterable[_builtins.str] | None=..., mime_type: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['file_create_time', b'file_create_time', 'file_modify_time', b'file_modify_time'] - def HasField(self, field_name: typing.Literal['file_create_time', b'file_create_time', 'file_modify_time', b'file_modify_time']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['component_name', b'component_name', 'component_type', b'component_type', 'dataset_ids', b'dataset_ids', 'file_create_time', b'file_create_time', 'file_extension', b'file_extension', 'file_modify_time', b'file_modify_time', 'file_name', b'file_name', 'method_name', b'method_name', 'method_parameters', b'method_parameters', 'mime_type', b'mime_type', 'part_id', b'part_id', 'tags', b'tags', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_type', b'component_type', 'dataset_ids', b'dataset_ids', 'file_create_time', b'file_create_time', 'file_extension', b'file_extension', 'file_modify_time', b'file_modify_time', 'file_name', b'file_name', 'method_name', b'method_name', 'method_parameters', b'method_parameters', 'mime_type', b'mime_type', 'part_id', b'part_id', 'tags', b'tags', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UploadMetadata = UploadMetadata +Global___UploadMetadata: _TypeAlias = UploadMetadata -@typing.final -class CaptureInterval(google.protobuf.message.Message): +@_typing.final +class CaptureInterval(_message.Message): """CaptureInterval specifies the start and end times of the data capture.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - START_FIELD_NUMBER: builtins.int - END_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + START_FIELD_NUMBER: _builtins.int + END_FIELD_NUMBER: _builtins.int - @property - def start(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def start(self) -> _timestamp_pb2.Timestamp: ... - @property - def end(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def end(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, start: google.protobuf.timestamp_pb2.Timestamp | None=..., end: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, start: _timestamp_pb2.Timestamp | None=..., end: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['end', b'end', 'start', b'start'] - def HasField(self, field_name: typing.Literal['end', b'end', 'start', b'start']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['end', b'end', 'start', b'start'] - def ClearField(self, field_name: typing.Literal['end', b'end', 'start', b'start']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CaptureInterval = CaptureInterval +Global___CaptureInterval: _TypeAlias = CaptureInterval -@typing.final -class DataCaptureMetadata(google.protobuf.message.Message): +@_typing.final +class DataCaptureMetadata(_message.Message): """DataCaptureMetadata contains the metadata for data captured by collectors.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class MethodParametersEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class MethodParametersEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> google.protobuf.any_pb2.Any: + @_builtins.property + def value(self) -> _any_pb2.Any: ... - def __init__(self, *, key: builtins.str=..., value: google.protobuf.any_pb2.Any | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _any_pb2.Any | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - COMPONENT_TYPE_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - METHOD_NAME_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - METHOD_PARAMETERS_FIELD_NUMBER: builtins.int - FILE_EXTENSION_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - component_type: builtins.str - component_name: builtins.str - method_name: builtins.str - type: global___DataType.ValueType - file_extension: builtins.str - mime_type: builtins.str + COMPONENT_TYPE_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + METHOD_NAME_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + METHOD_PARAMETERS_FIELD_NUMBER: _builtins.int + FILE_EXTENSION_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + component_type: _builtins.str + component_name: _builtins.str + method_name: _builtins.str + type: Global___DataType.ValueType + file_extension: _builtins.str + mime_type: _builtins.str - @property - def method_parameters(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.any_pb2.Any]: + @_builtins.property + def method_parameters(self) -> _containers.MessageMap[_builtins.str, _any_pb2.Any]: ... - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, component_type: builtins.str=..., component_name: builtins.str=..., method_name: builtins.str=..., type: global___DataType.ValueType=..., method_parameters: collections.abc.Mapping[builtins.str, google.protobuf.any_pb2.Any] | None=..., file_extension: builtins.str=..., tags: collections.abc.Iterable[builtins.str] | None=..., mime_type: builtins.str=...) -> None: + def __init__(self, *, component_type: _builtins.str=..., component_name: _builtins.str=..., method_name: _builtins.str=..., type: Global___DataType.ValueType=..., method_parameters: _abc.Mapping[_builtins.str, _any_pb2.Any] | None=..., file_extension: _builtins.str=..., tags: _abc.Iterable[_builtins.str] | None=..., mime_type: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['component_name', b'component_name', 'component_type', b'component_type', 'file_extension', b'file_extension', 'method_name', b'method_name', 'method_parameters', b'method_parameters', 'mime_type', b'mime_type', 'tags', b'tags', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_type', b'component_type', 'file_extension', b'file_extension', 'method_name', b'method_name', 'method_parameters', b'method_parameters', 'mime_type', b'mime_type', 'tags', b'tags', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DataCaptureMetadata = DataCaptureMetadata +Global___DataCaptureMetadata: _TypeAlias = DataCaptureMetadata -@typing.final -class DataCaptureUploadMetadata(google.protobuf.message.Message): +@_typing.final +class DataCaptureUploadMetadata(_message.Message): """DataCaptureUploadMetadata contains the metadata for streaming binary (image + file) data.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - UPLOAD_METADATA_FIELD_NUMBER: builtins.int - SENSOR_METADATA_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + UPLOAD_METADATA_FIELD_NUMBER: _builtins.int + SENSOR_METADATA_FIELD_NUMBER: _builtins.int - @property - def upload_metadata(self) -> global___UploadMetadata: + @_builtins.property + def upload_metadata(self) -> Global___UploadMetadata: ... - @property - def sensor_metadata(self) -> global___SensorMetadata: + @_builtins.property + def sensor_metadata(self) -> Global___SensorMetadata: ... - def __init__(self, *, upload_metadata: global___UploadMetadata | None=..., sensor_metadata: global___SensorMetadata | None=...) -> None: + def __init__(self, *, upload_metadata: Global___UploadMetadata | None=..., sensor_metadata: Global___SensorMetadata | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['sensor_metadata', b'sensor_metadata', 'upload_metadata', b'upload_metadata'] - def HasField(self, field_name: typing.Literal['sensor_metadata', b'sensor_metadata', 'upload_metadata', b'upload_metadata']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['sensor_metadata', b'sensor_metadata', 'upload_metadata', b'upload_metadata'] - def ClearField(self, field_name: typing.Literal['sensor_metadata', b'sensor_metadata', 'upload_metadata', b'upload_metadata']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DataCaptureUploadMetadata = DataCaptureUploadMetadata \ No newline at end of file +Global___DataCaptureUploadMetadata: _TypeAlias = DataCaptureUploadMetadata \ No newline at end of file diff --git a/src/viam/gen/app/mlinference/v1/ml_inference_pb2.py b/src/viam/gen/app/mlinference/v1/ml_inference_pb2.py index e1f8780c9c..9f8ac30412 100644 --- a/src/viam/gen/app/mlinference/v1/ml_inference_pb2.py +++ b/src/viam/gen/app/mlinference/v1/ml_inference_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/mlinference/v1/ml_inference.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/mlinference/v1/ml_inference.proto') _sym_db = _symbol_database.Default() from ....app.data.v1 import data_pb2 as app_dot_data_dot_v1_dot_data__pb2 from ....service.mlmodel.v1 import mlmodel_pb2 as service_dot_mlmodel_dot_v1_dot_mlmodel__pb2 diff --git a/src/viam/gen/app/mlinference/v1/ml_inference_pb2.pyi b/src/viam/gen/app/mlinference/v1/ml_inference_pb2.pyi index b154ca9d26..211919d55c 100644 --- a/src/viam/gen/app/mlinference/v1/ml_inference_pb2.pyi +++ b/src/viam/gen/app/mlinference/v1/ml_inference_pb2.pyi @@ -2,62 +2,71 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -from .... import app -import builtins -import google.protobuf.descriptor -import google.protobuf.message -from .... import service -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class GetInferenceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - REGISTRY_ITEM_ID_FIELD_NUMBER: builtins.int - REGISTRY_ITEM_VERSION_FIELD_NUMBER: builtins.int - BINARY_ID_FIELD_NUMBER: builtins.int - BINARY_DATA_ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - registry_item_id: builtins.str +from app.data.v1 import data_pb2 as _data_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from service.mlmodel.v1 import mlmodel_pb2 as _mlmodel_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class GetInferenceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + REGISTRY_ITEM_ID_FIELD_NUMBER: _builtins.int + REGISTRY_ITEM_VERSION_FIELD_NUMBER: _builtins.int + BINARY_ID_FIELD_NUMBER: _builtins.int + BINARY_DATA_ID_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + registry_item_id: _builtins.str 'The model framework and model type are inferred from the ML model registry item;\n For valid model types (classification, detections) we will return the formatted\n labels or annotations from the associated inference outputs.\n ' - registry_item_version: builtins.str - binary_data_id: builtins.str - organization_id: builtins.str + registry_item_version: _builtins.str + binary_data_id: _builtins.str + organization_id: _builtins.str - @property - def binary_id(self) -> app.data.v1.data_pb2.BinaryID: + @_builtins.property + def binary_id(self) -> _data_pb2.BinaryID: ... - def __init__(self, *, registry_item_id: builtins.str=..., registry_item_version: builtins.str=..., binary_id: app.data.v1.data_pb2.BinaryID | None=..., binary_data_id: builtins.str=..., organization_id: builtins.str=...) -> None: + def __init__(self, *, registry_item_id: _builtins.str=..., registry_item_version: _builtins.str=..., binary_id: _data_pb2.BinaryID | None=..., binary_data_id: _builtins.str=..., organization_id: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['binary_id', b'binary_id'] - def HasField(self, field_name: typing.Literal['binary_id', b'binary_id']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data_id', b'binary_data_id', 'binary_id', b'binary_id', 'organization_id', b'organization_id', 'registry_item_id', b'registry_item_id', 'registry_item_version', b'registry_item_version'] - def ClearField(self, field_name: typing.Literal['binary_data_id', b'binary_data_id', 'binary_id', b'binary_id', 'organization_id', b'organization_id', 'registry_item_id', b'registry_item_id', 'registry_item_version', b'registry_item_version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetInferenceRequest = GetInferenceRequest +Global___GetInferenceRequest: _TypeAlias = GetInferenceRequest -@typing.final -class GetInferenceResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OUTPUT_TENSORS_FIELD_NUMBER: builtins.int - ANNOTATIONS_FIELD_NUMBER: builtins.int +@_typing.final +class GetInferenceResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + OUTPUT_TENSORS_FIELD_NUMBER: _builtins.int + ANNOTATIONS_FIELD_NUMBER: _builtins.int - @property - def output_tensors(self) -> service.mlmodel.v1.mlmodel_pb2.FlatTensors: + @_builtins.property + def output_tensors(self) -> _mlmodel_pb2.FlatTensors: ... - @property - def annotations(self) -> app.data.v1.data_pb2.Annotations: + @_builtins.property + def annotations(self) -> _data_pb2.Annotations: ... - def __init__(self, *, output_tensors: service.mlmodel.v1.mlmodel_pb2.FlatTensors | None=..., annotations: app.data.v1.data_pb2.Annotations | None=...) -> None: + def __init__(self, *, output_tensors: _mlmodel_pb2.FlatTensors | None=..., annotations: _data_pb2.Annotations | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['annotations', b'annotations', 'output_tensors', b'output_tensors'] - def HasField(self, field_name: typing.Literal['annotations', b'annotations', 'output_tensors', b'output_tensors']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['annotations', b'annotations', 'output_tensors', b'output_tensors'] - def ClearField(self, field_name: typing.Literal['annotations', b'annotations', 'output_tensors', b'output_tensors']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetInferenceResponse = GetInferenceResponse \ No newline at end of file +Global___GetInferenceResponse: _TypeAlias = GetInferenceResponse \ No newline at end of file diff --git a/src/viam/gen/app/mltraining/v1/ml_training_pb2.py b/src/viam/gen/app/mltraining/v1/ml_training_pb2.py index ba4c8bf010..54f0a3c0d7 100644 --- a/src/viam/gen/app/mltraining/v1/ml_training_pb2.py +++ b/src/viam/gen/app/mltraining/v1/ml_training_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/mltraining/v1/ml_training.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/mltraining/v1/ml_training.proto') _sym_db = _symbol_database.Default() from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 diff --git a/src/viam/gen/app/mltraining/v1/ml_training_pb2.pyi b/src/viam/gen/app/mltraining/v1/ml_training_pb2.pyi index 52560b424c..8b7e3b2e9a 100644 --- a/src/viam/gen/app/mltraining/v1/ml_training_pb2.pyi +++ b/src/viam/gen/app/mltraining/v1/ml_training_pb2.pyi @@ -2,28 +2,28 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.timestamp_pb2 -import google.rpc.status_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.rpc import status_pb2 as _status_pb2 +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _ModelType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _ModelTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ModelType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _ModelTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_ModelType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor MODEL_TYPE_UNSPECIFIED: _ModelType.ValueType MODEL_TYPE_SINGLE_LABEL_CLASSIFICATION: _ModelType.ValueType MODEL_TYPE_MULTI_LABEL_CLASSIFICATION: _ModelType.ValueType @@ -35,14 +35,14 @@ MODEL_TYPE_UNSPECIFIED: ModelType.ValueType MODEL_TYPE_SINGLE_LABEL_CLASSIFICATION: ModelType.ValueType MODEL_TYPE_MULTI_LABEL_CLASSIFICATION: ModelType.ValueType MODEL_TYPE_OBJECT_DETECTION: ModelType.ValueType -global___ModelType = ModelType +Global___ModelType: _TypeAlias = ModelType class _ModelFramework: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _ModelFrameworkEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ModelFramework.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _ModelFrameworkEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_ModelFramework.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor MODEL_FRAMEWORK_UNSPECIFIED: _ModelFramework.ValueType MODEL_FRAMEWORK_TFLITE: _ModelFramework.ValueType MODEL_FRAMEWORK_TENSORFLOW: _ModelFramework.ValueType @@ -56,14 +56,14 @@ MODEL_FRAMEWORK_TFLITE: ModelFramework.ValueType MODEL_FRAMEWORK_TENSORFLOW: ModelFramework.ValueType MODEL_FRAMEWORK_PYTORCH: ModelFramework.ValueType MODEL_FRAMEWORK_ONNX: ModelFramework.ValueType -global___ModelFramework = ModelFramework +Global___ModelFramework: _TypeAlias = ModelFramework class _TrainingStatus: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _TrainingStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TrainingStatus.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _TrainingStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_TrainingStatus.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor TRAINING_STATUS_UNSPECIFIED: _TrainingStatus.ValueType TRAINING_STATUS_PENDING: _TrainingStatus.ValueType TRAINING_STATUS_IN_PROGRESS: _TrainingStatus.ValueType @@ -81,397 +81,421 @@ TRAINING_STATUS_COMPLETED: TrainingStatus.ValueType TRAINING_STATUS_FAILED: TrainingStatus.ValueType TRAINING_STATUS_CANCELED: TrainingStatus.ValueType TRAINING_STATUS_CANCELING: TrainingStatus.ValueType -global___TrainingStatus = TrainingStatus +Global___TrainingStatus: _TypeAlias = TrainingStatus -@typing.final -class SubmitTrainingJobRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATASET_ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - MODEL_NAME_FIELD_NUMBER: builtins.int - MODEL_VERSION_FIELD_NUMBER: builtins.int - MODEL_TYPE_FIELD_NUMBER: builtins.int - MODEL_FRAMEWORK_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - dataset_id: builtins.str - organization_id: builtins.str - model_name: builtins.str - model_version: builtins.str - model_type: global___ModelType.ValueType - model_framework: global___ModelFramework.ValueType +@_typing.final +class SubmitTrainingJobRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATASET_ID_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + MODEL_NAME_FIELD_NUMBER: _builtins.int + MODEL_VERSION_FIELD_NUMBER: _builtins.int + MODEL_TYPE_FIELD_NUMBER: _builtins.int + MODEL_FRAMEWORK_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + dataset_id: _builtins.str + organization_id: _builtins.str + model_name: _builtins.str + model_version: _builtins.str + model_type: Global___ModelType.ValueType + model_framework: Global___ModelFramework.ValueType - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, dataset_id: builtins.str=..., organization_id: builtins.str=..., model_name: builtins.str=..., model_version: builtins.str=..., model_type: global___ModelType.ValueType=..., model_framework: global___ModelFramework.ValueType=..., tags: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, dataset_id: _builtins.str=..., organization_id: _builtins.str=..., model_name: _builtins.str=..., model_version: _builtins.str=..., model_type: Global___ModelType.ValueType=..., model_framework: Global___ModelFramework.ValueType=..., tags: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['dataset_id', b'dataset_id', 'model_framework', b'model_framework', 'model_name', b'model_name', 'model_type', b'model_type', 'model_version', b'model_version', 'organization_id', b'organization_id', 'tags', b'tags'] - def ClearField(self, field_name: typing.Literal['dataset_id', b'dataset_id', 'model_framework', b'model_framework', 'model_name', b'model_name', 'model_type', b'model_type', 'model_version', b'model_version', 'organization_id', b'organization_id', 'tags', b'tags']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SubmitTrainingJobRequest = SubmitTrainingJobRequest +Global___SubmitTrainingJobRequest: _TypeAlias = SubmitTrainingJobRequest -@typing.final -class SubmitTrainingJobResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class SubmitTrainingJobResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SubmitTrainingJobResponse = SubmitTrainingJobResponse +Global___SubmitTrainingJobResponse: _TypeAlias = SubmitTrainingJobResponse -@typing.final -class SubmitCustomTrainingJobRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SubmitCustomTrainingJobRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class ArgumentsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + @_typing.final + class ArgumentsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str - def __init__(self, *, key: builtins.str=..., value: builtins.str=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - DATASET_ID_FIELD_NUMBER: builtins.int - REGISTRY_ITEM_ID_FIELD_NUMBER: builtins.int - REGISTRY_ITEM_VERSION_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - MODEL_NAME_FIELD_NUMBER: builtins.int - MODEL_VERSION_FIELD_NUMBER: builtins.int - ARGUMENTS_FIELD_NUMBER: builtins.int - CONTAINER_VERSION_FIELD_NUMBER: builtins.int - dataset_id: builtins.str - registry_item_id: builtins.str - registry_item_version: builtins.str - organization_id: builtins.str - model_name: builtins.str - model_version: builtins.str - container_version: builtins.str + DATASET_ID_FIELD_NUMBER: _builtins.int + REGISTRY_ITEM_ID_FIELD_NUMBER: _builtins.int + REGISTRY_ITEM_VERSION_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + MODEL_NAME_FIELD_NUMBER: _builtins.int + MODEL_VERSION_FIELD_NUMBER: _builtins.int + ARGUMENTS_FIELD_NUMBER: _builtins.int + CONTAINER_VERSION_FIELD_NUMBER: _builtins.int + dataset_id: _builtins.str + registry_item_id: _builtins.str + registry_item_version: _builtins.str + organization_id: _builtins.str + model_name: _builtins.str + model_version: _builtins.str + container_version: _builtins.str - @property - def arguments(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + @_builtins.property + def arguments(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - def __init__(self, *, dataset_id: builtins.str=..., registry_item_id: builtins.str=..., registry_item_version: builtins.str=..., organization_id: builtins.str=..., model_name: builtins.str=..., model_version: builtins.str=..., arguments: collections.abc.Mapping[builtins.str, builtins.str] | None=..., container_version: builtins.str=...) -> None: + def __init__(self, *, dataset_id: _builtins.str=..., registry_item_id: _builtins.str=..., registry_item_version: _builtins.str=..., organization_id: _builtins.str=..., model_name: _builtins.str=..., model_version: _builtins.str=..., arguments: _abc.Mapping[_builtins.str, _builtins.str] | None=..., container_version: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['arguments', b'arguments', 'container_version', b'container_version', 'dataset_id', b'dataset_id', 'model_name', b'model_name', 'model_version', b'model_version', 'organization_id', b'organization_id', 'registry_item_id', b'registry_item_id', 'registry_item_version', b'registry_item_version'] - def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'container_version', b'container_version', 'dataset_id', b'dataset_id', 'model_name', b'model_name', 'model_version', b'model_version', 'organization_id', b'organization_id', 'registry_item_id', b'registry_item_id', 'registry_item_version', b'registry_item_version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SubmitCustomTrainingJobRequest = SubmitCustomTrainingJobRequest +Global___SubmitCustomTrainingJobRequest: _TypeAlias = SubmitCustomTrainingJobRequest -@typing.final -class SubmitCustomTrainingJobResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class SubmitCustomTrainingJobResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SubmitCustomTrainingJobResponse = SubmitCustomTrainingJobResponse +Global___SubmitCustomTrainingJobResponse: _TypeAlias = SubmitCustomTrainingJobResponse -@typing.final -class GetTrainingJobRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class GetTrainingJobRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetTrainingJobRequest = GetTrainingJobRequest +Global___GetTrainingJobRequest: _TypeAlias = GetTrainingJobRequest -@typing.final -class GetTrainingJobResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_FIELD_NUMBER: builtins.int +@_typing.final +class GetTrainingJobResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + METADATA_FIELD_NUMBER: _builtins.int - @property - def metadata(self) -> global___TrainingJobMetadata: + @_builtins.property + def metadata(self) -> Global___TrainingJobMetadata: ... - def __init__(self, *, metadata: global___TrainingJobMetadata | None=...) -> None: + def __init__(self, *, metadata: Global___TrainingJobMetadata | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata'] - def HasField(self, field_name: typing.Literal['metadata', b'metadata']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata'] - def ClearField(self, field_name: typing.Literal['metadata', b'metadata']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetTrainingJobResponse = GetTrainingJobResponse +Global___GetTrainingJobResponse: _TypeAlias = GetTrainingJobResponse -@typing.final -class ListTrainingJobsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - organization_id: builtins.str - status: global___TrainingStatus.ValueType +@_typing.final +class ListTrainingJobsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + status: Global___TrainingStatus.ValueType - def __init__(self, *, organization_id: builtins.str=..., status: global___TrainingStatus.ValueType=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., status: Global___TrainingStatus.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id', 'status', b'status'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id', 'status', b'status']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListTrainingJobsRequest = ListTrainingJobsRequest +Global___ListTrainingJobsRequest: _TypeAlias = ListTrainingJobsRequest -@typing.final -class ListTrainingJobsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - JOBS_FIELD_NUMBER: builtins.int +@_typing.final +class ListTrainingJobsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + JOBS_FIELD_NUMBER: _builtins.int - @property - def jobs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TrainingJobMetadata]: + @_builtins.property + def jobs(self) -> _containers.RepeatedCompositeFieldContainer[Global___TrainingJobMetadata]: ... - def __init__(self, *, jobs: collections.abc.Iterable[global___TrainingJobMetadata] | None=...) -> None: + def __init__(self, *, jobs: _abc.Iterable[Global___TrainingJobMetadata] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['jobs', b'jobs'] - def ClearField(self, field_name: typing.Literal['jobs', b'jobs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListTrainingJobsResponse = ListTrainingJobsResponse +Global___ListTrainingJobsResponse: _TypeAlias = ListTrainingJobsResponse -@typing.final -class TrainingJobMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class TrainingJobMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class ArgumentsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + @_typing.final + class ArgumentsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str - def __init__(self, *, key: builtins.str=..., value: builtins.str=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - ID_FIELD_NUMBER: builtins.int - DATASET_ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - MODEL_NAME_FIELD_NUMBER: builtins.int - MODEL_VERSION_FIELD_NUMBER: builtins.int - MODEL_TYPE_FIELD_NUMBER: builtins.int - MODEL_FRAMEWORK_FIELD_NUMBER: builtins.int - IS_CUSTOM_JOB_FIELD_NUMBER: builtins.int - REGISTRY_ITEM_ID_FIELD_NUMBER: builtins.int - REGISTRY_ITEM_VERSION_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - ERROR_STATUS_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - LAST_MODIFIED_FIELD_NUMBER: builtins.int - TRAINING_STARTED_FIELD_NUMBER: builtins.int - TRAINING_ENDED_FIELD_NUMBER: builtins.int - SYNCED_MODEL_ID_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - ARGUMENTS_FIELD_NUMBER: builtins.int - CONTAINER_VERSION_FIELD_NUMBER: builtins.int - id: builtins.str - dataset_id: builtins.str - organization_id: builtins.str - model_name: builtins.str - model_version: builtins.str - model_type: global___ModelType.ValueType - model_framework: global___ModelFramework.ValueType - is_custom_job: builtins.bool - registry_item_id: builtins.str - registry_item_version: builtins.str - status: global___TrainingStatus.ValueType - synced_model_id: builtins.str - container_version: builtins.str + ID_FIELD_NUMBER: _builtins.int + DATASET_ID_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + MODEL_NAME_FIELD_NUMBER: _builtins.int + MODEL_VERSION_FIELD_NUMBER: _builtins.int + MODEL_TYPE_FIELD_NUMBER: _builtins.int + MODEL_FRAMEWORK_FIELD_NUMBER: _builtins.int + IS_CUSTOM_JOB_FIELD_NUMBER: _builtins.int + REGISTRY_ITEM_ID_FIELD_NUMBER: _builtins.int + REGISTRY_ITEM_VERSION_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + ERROR_STATUS_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + LAST_MODIFIED_FIELD_NUMBER: _builtins.int + TRAINING_STARTED_FIELD_NUMBER: _builtins.int + TRAINING_ENDED_FIELD_NUMBER: _builtins.int + SYNCED_MODEL_ID_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + ARGUMENTS_FIELD_NUMBER: _builtins.int + CONTAINER_VERSION_FIELD_NUMBER: _builtins.int + id: _builtins.str + dataset_id: _builtins.str + organization_id: _builtins.str + model_name: _builtins.str + model_version: _builtins.str + model_type: Global___ModelType.ValueType + model_framework: Global___ModelFramework.ValueType + is_custom_job: _builtins.bool + registry_item_id: _builtins.str + registry_item_version: _builtins.str + status: Global___TrainingStatus.ValueType + synced_model_id: _builtins.str + container_version: _builtins.str - @property - def error_status(self) -> google.rpc.status_pb2.Status: + @_builtins.property + def error_status(self) -> _status_pb2.Status: ... - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: ... - @property - def last_modified(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_modified(self) -> _timestamp_pb2.Timestamp: ... - @property - def training_started(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def training_started(self) -> _timestamp_pb2.Timestamp: ... - @property - def training_ended(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def training_ended(self) -> _timestamp_pb2.Timestamp: ... - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def arguments(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + @_builtins.property + def arguments(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - def __init__(self, *, id: builtins.str=..., dataset_id: builtins.str=..., organization_id: builtins.str=..., model_name: builtins.str=..., model_version: builtins.str=..., model_type: global___ModelType.ValueType=..., model_framework: global___ModelFramework.ValueType=..., is_custom_job: builtins.bool=..., registry_item_id: builtins.str=..., registry_item_version: builtins.str=..., status: global___TrainingStatus.ValueType=..., error_status: google.rpc.status_pb2.Status | None=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., last_modified: google.protobuf.timestamp_pb2.Timestamp | None=..., training_started: google.protobuf.timestamp_pb2.Timestamp | None=..., training_ended: google.protobuf.timestamp_pb2.Timestamp | None=..., synced_model_id: builtins.str=..., tags: collections.abc.Iterable[builtins.str] | None=..., arguments: collections.abc.Mapping[builtins.str, builtins.str] | None=..., container_version: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., dataset_id: _builtins.str=..., organization_id: _builtins.str=..., model_name: _builtins.str=..., model_version: _builtins.str=..., model_type: Global___ModelType.ValueType=..., model_framework: Global___ModelFramework.ValueType=..., is_custom_job: _builtins.bool=..., registry_item_id: _builtins.str=..., registry_item_version: _builtins.str=..., status: Global___TrainingStatus.ValueType=..., error_status: _status_pb2.Status | None=..., created_on: _timestamp_pb2.Timestamp | None=..., last_modified: _timestamp_pb2.Timestamp | None=..., training_started: _timestamp_pb2.Timestamp | None=..., training_ended: _timestamp_pb2.Timestamp | None=..., synced_model_id: _builtins.str=..., tags: _abc.Iterable[_builtins.str] | None=..., arguments: _abc.Mapping[_builtins.str, _builtins.str] | None=..., container_version: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'error_status', b'error_status', 'last_modified', b'last_modified', 'training_ended', b'training_ended', 'training_started', b'training_started'] - def HasField(self, field_name: typing.Literal['created_on', b'created_on', 'error_status', b'error_status', 'last_modified', b'last_modified', 'training_ended', b'training_ended', 'training_started', b'training_started']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['arguments', b'arguments', 'container_version', b'container_version', 'created_on', b'created_on', 'dataset_id', b'dataset_id', 'error_status', b'error_status', 'id', b'id', 'is_custom_job', b'is_custom_job', 'last_modified', b'last_modified', 'model_framework', b'model_framework', 'model_name', b'model_name', 'model_type', b'model_type', 'model_version', b'model_version', 'organization_id', b'organization_id', 'registry_item_id', b'registry_item_id', 'registry_item_version', b'registry_item_version', 'status', b'status', 'synced_model_id', b'synced_model_id', 'tags', b'tags', 'training_ended', b'training_ended', 'training_started', b'training_started'] - def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'container_version', b'container_version', 'created_on', b'created_on', 'dataset_id', b'dataset_id', 'error_status', b'error_status', 'id', b'id', 'is_custom_job', b'is_custom_job', 'last_modified', b'last_modified', 'model_framework', b'model_framework', 'model_name', b'model_name', 'model_type', b'model_type', 'model_version', b'model_version', 'organization_id', b'organization_id', 'registry_item_id', b'registry_item_id', 'registry_item_version', b'registry_item_version', 'status', b'status', 'synced_model_id', b'synced_model_id', 'tags', b'tags', 'training_ended', b'training_ended', 'training_started', b'training_started']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TrainingJobMetadata = TrainingJobMetadata +Global___TrainingJobMetadata: _TypeAlias = TrainingJobMetadata -@typing.final -class CancelTrainingJobRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class CancelTrainingJobRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CancelTrainingJobRequest = CancelTrainingJobRequest +Global___CancelTrainingJobRequest: _TypeAlias = CancelTrainingJobRequest -@typing.final -class CancelTrainingJobResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class CancelTrainingJobResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___CancelTrainingJobResponse = CancelTrainingJobResponse +Global___CancelTrainingJobResponse: _TypeAlias = CancelTrainingJobResponse -@typing.final -class DeleteCompletedTrainingJobRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class DeleteCompletedTrainingJobRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteCompletedTrainingJobRequest = DeleteCompletedTrainingJobRequest +Global___DeleteCompletedTrainingJobRequest: _TypeAlias = DeleteCompletedTrainingJobRequest -@typing.final -class DeleteCompletedTrainingJobResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteCompletedTrainingJobResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteCompletedTrainingJobResponse = DeleteCompletedTrainingJobResponse +Global___DeleteCompletedTrainingJobResponse: _TypeAlias = DeleteCompletedTrainingJobResponse -@typing.final -class TrainingJobLogEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LEVEL_FIELD_NUMBER: builtins.int - TIME_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - level: builtins.str - message: builtins.str +@_typing.final +class TrainingJobLogEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LEVEL_FIELD_NUMBER: _builtins.int + TIME_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + level: _builtins.str + message: _builtins.str - @property - def time(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, level: builtins.str=..., time: google.protobuf.timestamp_pb2.Timestamp | None=..., message: builtins.str=...) -> None: + def __init__(self, *, level: _builtins.str=..., time: _timestamp_pb2.Timestamp | None=..., message: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['time', b'time'] - def HasField(self, field_name: typing.Literal['time', b'time']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['level', b'level', 'message', b'message', 'time', b'time'] - def ClearField(self, field_name: typing.Literal['level', b'level', 'message', b'message', 'time', b'time']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TrainingJobLogEntry = TrainingJobLogEntry +Global___TrainingJobLogEntry: _TypeAlias = TrainingJobLogEntry -@typing.final -class GetTrainingJobLogsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - PAGE_TOKEN_FIELD_NUMBER: builtins.int - id: builtins.str - page_token: builtins.str +@_typing.final +class GetTrainingJobLogsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + PAGE_TOKEN_FIELD_NUMBER: _builtins.int + id: _builtins.str + page_token: _builtins.str - def __init__(self, *, id: builtins.str=..., page_token: builtins.str | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., page_token: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_page_token', b'_page_token', 'page_token', b'page_token'] - def HasField(self, field_name: typing.Literal['_page_token', b'_page_token', 'page_token', b'page_token']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_page_token', b'_page_token', 'id', b'id', 'page_token', b'page_token'] - def ClearField(self, field_name: typing.Literal['_page_token', b'_page_token', 'id', b'id', 'page_token', b'page_token']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__page_token: _TypeAlias = _typing.Literal['page_token'] + _WhichOneofArgType__page_token: _TypeAlias = _typing.Literal['_page_token', b'_page_token'] - def WhichOneof(self, oneof_group: typing.Literal['_page_token', b'_page_token']) -> typing.Literal['page_token'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__page_token) -> _WhichOneofReturnType__page_token | None: ... -global___GetTrainingJobLogsRequest = GetTrainingJobLogsRequest +Global___GetTrainingJobLogsRequest: _TypeAlias = GetTrainingJobLogsRequest -@typing.final -class GetTrainingJobLogsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOGS_FIELD_NUMBER: builtins.int - NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int - next_page_token: builtins.str +@_typing.final +class GetTrainingJobLogsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOGS_FIELD_NUMBER: _builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: _builtins.int + next_page_token: _builtins.str - @property - def logs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TrainingJobLogEntry]: + @_builtins.property + def logs(self) -> _containers.RepeatedCompositeFieldContainer[Global___TrainingJobLogEntry]: ... - def __init__(self, *, logs: collections.abc.Iterable[global___TrainingJobLogEntry] | None=..., next_page_token: builtins.str=...) -> None: + def __init__(self, *, logs: _abc.Iterable[Global___TrainingJobLogEntry] | None=..., next_page_token: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['logs', b'logs', 'next_page_token', b'next_page_token'] - def ClearField(self, field_name: typing.Literal['logs', b'logs', 'next_page_token', b'next_page_token']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetTrainingJobLogsResponse = GetTrainingJobLogsResponse +Global___GetTrainingJobLogsResponse: _TypeAlias = GetTrainingJobLogsResponse -@typing.final -class ListSupportedContainersRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListSupportedContainersRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ListSupportedContainersRequest = ListSupportedContainersRequest +Global___ListSupportedContainersRequest: _TypeAlias = ListSupportedContainersRequest -@typing.final -class ListSupportedContainersResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListSupportedContainersResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class ContainerMapEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class ContainerMapEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> global___Container: + @_builtins.property + def value(self) -> Global___Container: ... - def __init__(self, *, key: builtins.str=..., value: global___Container | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: Global___Container | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - CONTAINER_MAP_FIELD_NUMBER: builtins.int + CONTAINER_MAP_FIELD_NUMBER: _builtins.int - @property - def container_map(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Container]: + @_builtins.property + def container_map(self) -> _containers.MessageMap[_builtins.str, Global___Container]: """ex value: container_map: { "tf:2.15": Container { @@ -483,36 +507,39 @@ class ListSupportedContainersResponse(google.protobuf.message.Message): } """ - def __init__(self, *, container_map: collections.abc.Mapping[builtins.str, global___Container] | None=...) -> None: + def __init__(self, *, container_map: _abc.Mapping[_builtins.str, Global___Container] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['container_map', b'container_map'] - def ClearField(self, field_name: typing.Literal['container_map', b'container_map']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListSupportedContainersResponse = ListSupportedContainersResponse +Global___ListSupportedContainersResponse: _TypeAlias = ListSupportedContainersResponse -@typing.final -class Container(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - URI_FIELD_NUMBER: builtins.int - FRAMEWORK_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - EOL_FIELD_NUMBER: builtins.int - key: builtins.str - uri: builtins.str - framework: builtins.str - description: builtins.str +@_typing.final +class Container(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + URI_FIELD_NUMBER: _builtins.int + FRAMEWORK_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + EOL_FIELD_NUMBER: _builtins.int + key: _builtins.str + uri: _builtins.str + framework: _builtins.str + description: _builtins.str - @property - def eol(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def eol(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, key: builtins.str=..., uri: builtins.str=..., framework: builtins.str=..., description: builtins.str=..., eol: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., uri: _builtins.str=..., framework: _builtins.str=..., description: _builtins.str=..., eol: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['eol', b'eol'] - def HasField(self, field_name: typing.Literal['eol', b'eol']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['description', b'description', 'eol', b'eol', 'framework', b'framework', 'key', b'key', 'uri', b'uri'] - def ClearField(self, field_name: typing.Literal['description', b'description', 'eol', b'eol', 'framework', b'framework', 'key', b'key', 'uri', b'uri']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Container = Container \ No newline at end of file +Global___Container: _TypeAlias = Container \ No newline at end of file diff --git a/src/viam/gen/app/packages/v1/packages_pb2.py b/src/viam/gen/app/packages/v1/packages_pb2.py index 2db022d22b..9d7c43b2d0 100644 --- a/src/viam/gen/app/packages/v1/packages_pb2.py +++ b/src/viam/gen/app/packages/v1/packages_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/packages/v1/packages.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/packages/v1/packages.proto') _sym_db = _symbol_database.Default() from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 diff --git a/src/viam/gen/app/packages/v1/packages_pb2.pyi b/src/viam/gen/app/packages/v1/packages_pb2.pyi index 16bee16490..ad7c941926 100644 --- a/src/viam/gen/app/packages/v1/packages_pb2.pyi +++ b/src/viam/gen/app/packages/v1/packages_pb2.pyi @@ -2,28 +2,28 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _PackageType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _PackageTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PackageType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _PackageTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_PackageType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor PACKAGE_TYPE_UNSPECIFIED: _PackageType.ValueType PACKAGE_TYPE_ARCHIVE: _PackageType.ValueType PACKAGE_TYPE_ML_MODEL: _PackageType.ValueType @@ -39,273 +39,310 @@ PACKAGE_TYPE_ML_MODEL: PackageType.ValueType PACKAGE_TYPE_MODULE: PackageType.ValueType PACKAGE_TYPE_SLAM_MAP: PackageType.ValueType PACKAGE_TYPE_ML_TRAINING: PackageType.ValueType -global___PackageType = PackageType +Global___PackageType: _TypeAlias = PackageType -@typing.final -class FileInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - SIZE_FIELD_NUMBER: builtins.int - IS_DIRECTORY_FIELD_NUMBER: builtins.int - name: builtins.str - size: builtins.int - is_directory: builtins.bool +@_typing.final +class FileInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + SIZE_FIELD_NUMBER: _builtins.int + IS_DIRECTORY_FIELD_NUMBER: _builtins.int + name: _builtins.str + size: _builtins.int + is_directory: _builtins.bool - def __init__(self, *, name: builtins.str=..., size: builtins.int=..., is_directory: builtins.bool | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., size: _builtins.int=..., is_directory: _builtins.bool | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_is_directory', b'_is_directory', 'is_directory', b'is_directory'] - def HasField(self, field_name: typing.Literal['_is_directory', b'_is_directory', 'is_directory', b'is_directory']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_is_directory', b'_is_directory', 'is_directory', b'is_directory', 'name', b'name', 'size', b'size'] - def ClearField(self, field_name: typing.Literal['_is_directory', b'_is_directory', 'is_directory', b'is_directory', 'name', b'name', 'size', b'size']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__is_directory: _TypeAlias = _typing.Literal['is_directory'] + _WhichOneofArgType__is_directory: _TypeAlias = _typing.Literal['_is_directory', b'_is_directory'] - def WhichOneof(self, oneof_group: typing.Literal['_is_directory', b'_is_directory']) -> typing.Literal['is_directory'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__is_directory) -> _WhichOneofReturnType__is_directory | None: ... -global___FileInfo = FileInfo +Global___FileInfo: _TypeAlias = FileInfo -@typing.final -class PackageInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - PLATFORM_FIELD_NUMBER: builtins.int - FILES_FIELD_NUMBER: builtins.int - METADATA_FIELD_NUMBER: builtins.int - organization_id: builtins.str - name: builtins.str - version: builtins.str - type: global___PackageType.ValueType - platform: builtins.str +@_typing.final +class PackageInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + PLATFORM_FIELD_NUMBER: _builtins.int + FILES_FIELD_NUMBER: _builtins.int + METADATA_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + name: _builtins.str + version: _builtins.str + type: Global___PackageType.ValueType + platform: _builtins.str - @property - def files(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FileInfo]: + @_builtins.property + def files(self) -> _containers.RepeatedCompositeFieldContainer[Global___FileInfo]: ... - @property - def metadata(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def metadata(self) -> _struct_pb2.Struct: ... - def __init__(self, *, organization_id: builtins.str=..., name: builtins.str=..., version: builtins.str=..., type: global___PackageType.ValueType=..., platform: builtins.str | None=..., files: collections.abc.Iterable[global___FileInfo] | None=..., metadata: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., name: _builtins.str=..., version: _builtins.str=..., type: Global___PackageType.ValueType=..., platform: _builtins.str | None=..., files: _abc.Iterable[Global___FileInfo] | None=..., metadata: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_platform', b'_platform', 'metadata', b'metadata', 'platform', b'platform'] - def HasField(self, field_name: typing.Literal['_platform', b'_platform', 'metadata', b'metadata', 'platform', b'platform']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_platform', b'_platform', 'files', b'files', 'metadata', b'metadata', 'name', b'name', 'organization_id', b'organization_id', 'platform', b'platform', 'type', b'type', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['_platform', b'_platform', 'files', b'files', 'metadata', b'metadata', 'name', b'name', 'organization_id', b'organization_id', 'platform', b'platform', 'type', b'type', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__platform: _TypeAlias = _typing.Literal['platform'] + _WhichOneofArgType__platform: _TypeAlias = _typing.Literal['_platform', b'_platform'] - def WhichOneof(self, oneof_group: typing.Literal['_platform', b'_platform']) -> typing.Literal['platform'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__platform) -> _WhichOneofReturnType__platform | None: ... -global___PackageInfo = PackageInfo +Global___PackageInfo: _TypeAlias = PackageInfo -@typing.final -class CreatePackageRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INFO_FIELD_NUMBER: builtins.int - CONTENTS_FIELD_NUMBER: builtins.int - contents: builtins.bytes +@_typing.final +class CreatePackageRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + INFO_FIELD_NUMBER: _builtins.int + CONTENTS_FIELD_NUMBER: _builtins.int + contents: _builtins.bytes '.tar.gz file' - @property - def info(self) -> global___PackageInfo: + @_builtins.property + def info(self) -> Global___PackageInfo: ... - def __init__(self, *, info: global___PackageInfo | None=..., contents: builtins.bytes=...) -> None: + def __init__(self, *, info: Global___PackageInfo | None=..., contents: _builtins.bytes=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['contents', b'contents', 'info', b'info', 'package', b'package'] - def HasField(self, field_name: typing.Literal['contents', b'contents', 'info', b'info', 'package', b'package']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['contents', b'contents', 'info', b'info', 'package', b'package'] - def ClearField(self, field_name: typing.Literal['contents', b'contents', 'info', b'info', 'package', b'package']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_package: _TypeAlias = _typing.Literal['info', 'contents'] + _WhichOneofArgType_package: _TypeAlias = _typing.Literal['package', b'package'] - def WhichOneof(self, oneof_group: typing.Literal['package', b'package']) -> typing.Literal['info', 'contents'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_package) -> _WhichOneofReturnType_package | None: ... -global___CreatePackageRequest = CreatePackageRequest +Global___CreatePackageRequest: _TypeAlias = CreatePackageRequest -@typing.final -class CreatePackageResponse(google.protobuf.message.Message): +@_typing.final +class CreatePackageResponse(_message.Message): """Returns the package ID and version which are populated in GetPackageRequest and DeletePackageRequest to retrieve or delete this package. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - id: builtins.str - version: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + id: _builtins.str + version: _builtins.str - def __init__(self, *, id: builtins.str=..., version: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., version: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreatePackageResponse = CreatePackageResponse +Global___CreatePackageResponse: _TypeAlias = CreatePackageResponse -@typing.final -class DeletePackageRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - id: builtins.str - version: builtins.str - type: global___PackageType.ValueType +@_typing.final +class DeletePackageRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + id: _builtins.str + version: _builtins.str + type: Global___PackageType.ValueType - def __init__(self, *, id: builtins.str=..., version: builtins.str=..., type: global___PackageType.ValueType=...) -> None: + def __init__(self, *, id: _builtins.str=..., version: _builtins.str=..., type: Global___PackageType.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'type', b'type', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'type', b'type', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeletePackageRequest = DeletePackageRequest +Global___DeletePackageRequest: _TypeAlias = DeletePackageRequest -@typing.final -class DeletePackageResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeletePackageResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeletePackageResponse = DeletePackageResponse +Global___DeletePackageResponse: _TypeAlias = DeletePackageResponse -@typing.final -class Package(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INFO_FIELD_NUMBER: builtins.int - URL_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - CHECKSUM_FIELD_NUMBER: builtins.int - ID_FIELD_NUMBER: builtins.int - url: builtins.str - checksum: builtins.str - id: builtins.str +@_typing.final +class Package(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + INFO_FIELD_NUMBER: _builtins.int + URL_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + CHECKSUM_FIELD_NUMBER: _builtins.int + ID_FIELD_NUMBER: _builtins.int + url: _builtins.str + checksum: _builtins.str + id: _builtins.str - @property - def info(self) -> global___PackageInfo: + @_builtins.property + def info(self) -> Global___PackageInfo: ... - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, info: global___PackageInfo | None=..., url: builtins.str=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., checksum: builtins.str=..., id: builtins.str=...) -> None: + def __init__(self, *, info: Global___PackageInfo | None=..., url: _builtins.str=..., created_on: _timestamp_pb2.Timestamp | None=..., checksum: _builtins.str=..., id: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'info', b'info'] - def HasField(self, field_name: typing.Literal['created_on', b'created_on', 'info', b'info']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['checksum', b'checksum', 'created_on', b'created_on', 'id', b'id', 'info', b'info', 'url', b'url'] - def ClearField(self, field_name: typing.Literal['checksum', b'checksum', 'created_on', b'created_on', 'id', b'id', 'info', b'info', 'url', b'url']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Package = Package +Global___Package: _TypeAlias = Package -@typing.final -class GetPackageRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - INCLUDE_URL_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - PLATFORM_FIELD_NUMBER: builtins.int - id: builtins.str - version: builtins.str - include_url: builtins.bool - type: global___PackageType.ValueType - platform: builtins.str +@_typing.final +class GetPackageRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + INCLUDE_URL_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + PLATFORM_FIELD_NUMBER: _builtins.int + id: _builtins.str + version: _builtins.str + include_url: _builtins.bool + type: Global___PackageType.ValueType + platform: _builtins.str - def __init__(self, *, id: builtins.str=..., version: builtins.str=..., include_url: builtins.bool | None=..., type: global___PackageType.ValueType | None=..., platform: builtins.str | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., version: _builtins.str=..., include_url: _builtins.bool | None=..., type: Global___PackageType.ValueType | None=..., platform: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_include_url', b'_include_url', '_platform', b'_platform', '_type', b'_type', 'include_url', b'include_url', 'platform', b'platform', 'type', b'type'] - def HasField(self, field_name: typing.Literal['_include_url', b'_include_url', '_platform', b'_platform', '_type', b'_type', 'include_url', b'include_url', 'platform', b'platform', 'type', b'type']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_include_url', b'_include_url', '_platform', b'_platform', '_type', b'_type', 'id', b'id', 'include_url', b'include_url', 'platform', b'platform', 'type', b'type', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['_include_url', b'_include_url', '_platform', b'_platform', '_type', b'_type', 'id', b'id', 'include_url', b'include_url', 'platform', b'platform', 'type', b'type', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__include_url: _TypeAlias = _typing.Literal['include_url'] + _WhichOneofArgType__include_url: _TypeAlias = _typing.Literal['_include_url', b'_include_url'] + _WhichOneofReturnType__platform: _TypeAlias = _typing.Literal['platform'] + _WhichOneofArgType__platform: _TypeAlias = _typing.Literal['_platform', b'_platform'] + _WhichOneofReturnType__type: _TypeAlias = _typing.Literal['type'] + _WhichOneofArgType__type: _TypeAlias = _typing.Literal['_type', b'_type'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_include_url', b'_include_url']) -> typing.Literal['include_url'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__include_url) -> _WhichOneofReturnType__include_url | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_platform', b'_platform']) -> typing.Literal['platform'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__platform) -> _WhichOneofReturnType__platform | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_type', b'_type']) -> typing.Literal['type'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__type) -> _WhichOneofReturnType__type | None: ... -global___GetPackageRequest = GetPackageRequest +Global___GetPackageRequest: _TypeAlias = GetPackageRequest -@typing.final -class GetPackageResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PACKAGE_FIELD_NUMBER: builtins.int +@_typing.final +class GetPackageResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PACKAGE_FIELD_NUMBER: _builtins.int - @property - def package(self) -> global___Package: + @_builtins.property + def package(self) -> Global___Package: ... - def __init__(self, *, package: global___Package | None=...) -> None: + def __init__(self, *, package: Global___Package | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['package', b'package'] - def HasField(self, field_name: typing.Literal['package', b'package']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['package', b'package'] - def ClearField(self, field_name: typing.Literal['package', b'package']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPackageResponse = GetPackageResponse +Global___GetPackageResponse: _TypeAlias = GetPackageResponse -@typing.final -class ListPackagesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - INCLUDE_URL_FIELD_NUMBER: builtins.int - organization_id: builtins.str - name: builtins.str - version: builtins.str - type: global___PackageType.ValueType - include_url: builtins.bool +@_typing.final +class ListPackagesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + INCLUDE_URL_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + name: _builtins.str + version: _builtins.str + type: Global___PackageType.ValueType + include_url: _builtins.bool - def __init__(self, *, organization_id: builtins.str=..., name: builtins.str | None=..., version: builtins.str | None=..., type: global___PackageType.ValueType | None=..., include_url: builtins.bool | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., name: _builtins.str | None=..., version: _builtins.str | None=..., type: Global___PackageType.ValueType | None=..., include_url: _builtins.bool | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_include_url', b'_include_url', '_name', b'_name', '_type', b'_type', '_version', b'_version', 'include_url', b'include_url', 'name', b'name', 'type', b'type', 'version', b'version'] - def HasField(self, field_name: typing.Literal['_include_url', b'_include_url', '_name', b'_name', '_type', b'_type', '_version', b'_version', 'include_url', b'include_url', 'name', b'name', 'type', b'type', 'version', b'version']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_include_url', b'_include_url', '_name', b'_name', '_type', b'_type', '_version', b'_version', 'include_url', b'include_url', 'name', b'name', 'organization_id', b'organization_id', 'type', b'type', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['_include_url', b'_include_url', '_name', b'_name', '_type', b'_type', '_version', b'_version', 'include_url', b'include_url', 'name', b'name', 'organization_id', b'organization_id', 'type', b'type', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__include_url: _TypeAlias = _typing.Literal['include_url'] + _WhichOneofArgType__include_url: _TypeAlias = _typing.Literal['_include_url', b'_include_url'] + _WhichOneofReturnType__name: _TypeAlias = _typing.Literal['name'] + _WhichOneofArgType__name: _TypeAlias = _typing.Literal['_name', b'_name'] + _WhichOneofReturnType__type: _TypeAlias = _typing.Literal['type'] + _WhichOneofArgType__type: _TypeAlias = _typing.Literal['_type', b'_type'] + _WhichOneofReturnType__version: _TypeAlias = _typing.Literal['version'] + _WhichOneofArgType__version: _TypeAlias = _typing.Literal['_version', b'_version'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_include_url', b'_include_url']) -> typing.Literal['include_url'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__include_url) -> _WhichOneofReturnType__include_url | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_name', b'_name']) -> typing.Literal['name'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__name) -> _WhichOneofReturnType__name | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_type', b'_type']) -> typing.Literal['type'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__type) -> _WhichOneofReturnType__type | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_version', b'_version']) -> typing.Literal['version'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__version) -> _WhichOneofReturnType__version | None: ... -global___ListPackagesRequest = ListPackagesRequest +Global___ListPackagesRequest: _TypeAlias = ListPackagesRequest -@typing.final -class ListPackagesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PACKAGES_FIELD_NUMBER: builtins.int +@_typing.final +class ListPackagesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PACKAGES_FIELD_NUMBER: _builtins.int - @property - def packages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Package]: + @_builtins.property + def packages(self) -> _containers.RepeatedCompositeFieldContainer[Global___Package]: ... - def __init__(self, *, packages: collections.abc.Iterable[global___Package] | None=...) -> None: + def __init__(self, *, packages: _abc.Iterable[Global___Package] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['packages', b'packages'] - def ClearField(self, field_name: typing.Literal['packages', b'packages']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListPackagesResponse = ListPackagesResponse \ No newline at end of file +Global___ListPackagesResponse: _TypeAlias = ListPackagesResponse \ No newline at end of file diff --git a/src/viam/gen/app/v1/app_pb2.py b/src/viam/gen/app/v1/app_pb2.py index 14a81b3445..2a49d71a3f 100644 --- a/src/viam/gen/app/v1/app_pb2.py +++ b/src/viam/gen/app/v1/app_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/v1/app.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/v1/app.proto') _sym_db = _symbol_database.Default() from ...app.mltraining.v1 import ml_training_pb2 as app_dot_mltraining_dot_v1_dot_ml__training__pb2 from ...app.packages.v1 import packages_pb2 as app_dot_packages_dot_v1_dot_packages__pb2 diff --git a/src/viam/gen/app/v1/app_pb2.pyi b/src/viam/gen/app/v1/app_pb2.pyi index bc74550e7a..7375ce98de 100644 --- a/src/viam/gen/app/v1/app_pb2.pyi +++ b/src/viam/gen/app/v1/app_pb2.pyi @@ -2,30 +2,35 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -from ... import app -import builtins -import collections.abc -from ... import common -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 +from app.mltraining.v1 import ml_training_pb2 as _ml_training_pb2 +from app.packages.v1 import packages_pb2 as _packages_pb2 +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated +else: + from typing_extensions import deprecated as _deprecated +DESCRIPTOR: _descriptor.FileDescriptor class _OnlineState: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _OnlineStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OnlineState.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _OnlineStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_OnlineState.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor ONLINE_STATE_UNSPECIFIED: _OnlineState.ValueType ONLINE_STATE_ONLINE: _OnlineState.ValueType ONLINE_STATE_OFFLINE: _OnlineState.ValueType @@ -37,14 +42,14 @@ ONLINE_STATE_UNSPECIFIED: OnlineState.ValueType ONLINE_STATE_ONLINE: OnlineState.ValueType ONLINE_STATE_OFFLINE: OnlineState.ValueType ONLINE_STATE_AWAITING_SETUP: OnlineState.ValueType -global___OnlineState = OnlineState +Global___OnlineState: _TypeAlias = OnlineState class _AuthenticationType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _AuthenticationTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_AuthenticationType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _AuthenticationTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_AuthenticationType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor AUTHENTICATION_TYPE_UNSPECIFIED: _AuthenticationType.ValueType AUTHENTICATION_TYPE_WEB_OAUTH: _AuthenticationType.ValueType AUTHENTICATION_TYPE_API_KEY: _AuthenticationType.ValueType @@ -58,14 +63,14 @@ AUTHENTICATION_TYPE_WEB_OAUTH: AuthenticationType.ValueType AUTHENTICATION_TYPE_API_KEY: AuthenticationType.ValueType AUTHENTICATION_TYPE_ROBOT_PART_SECRET: AuthenticationType.ValueType AUTHENTICATION_TYPE_LOCATION_SECRET: AuthenticationType.ValueType -global___AuthenticationType = AuthenticationType +Global___AuthenticationType: _TypeAlias = AuthenticationType class _FragmentVisibility: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _FragmentVisibilityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FragmentVisibility.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _FragmentVisibilityEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_FragmentVisibility.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor FRAGMENT_VISIBILITY_UNSPECIFIED: _FragmentVisibility.ValueType FRAGMENT_VISIBILITY_PRIVATE: _FragmentVisibility.ValueType FRAGMENT_VISIBILITY_PUBLIC: _FragmentVisibility.ValueType @@ -77,14 +82,14 @@ FRAGMENT_VISIBILITY_UNSPECIFIED: FragmentVisibility.ValueType FRAGMENT_VISIBILITY_PRIVATE: FragmentVisibility.ValueType FRAGMENT_VISIBILITY_PUBLIC: FragmentVisibility.ValueType FRAGMENT_VISIBILITY_PUBLIC_UNLISTED: FragmentVisibility.ValueType -global___FragmentVisibility = FragmentVisibility +Global___FragmentVisibility: _TypeAlias = FragmentVisibility class _FragmentErrorType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _FragmentErrorTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FragmentErrorType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _FragmentErrorTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_FragmentErrorType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor FRAGMENT_ERROR_TYPE_UNSPECIFIED: _FragmentErrorType.ValueType FRAGMENT_ERROR_TYPE_NO_ACCESS: _FragmentErrorType.ValueType FRAGMENT_ERROR_TYPE_NESTING_LIMIT_EXCEEDED: _FragmentErrorType.ValueType @@ -98,14 +103,14 @@ FRAGMENT_ERROR_TYPE_NO_ACCESS: FragmentErrorType.ValueType FRAGMENT_ERROR_TYPE_NESTING_LIMIT_EXCEEDED: FragmentErrorType.ValueType FRAGMENT_ERROR_TYPE_CHILD_ID_INVALID: FragmentErrorType.ValueType FRAGMENT_ERROR_TYPE_CYCLE_DETECTED: FragmentErrorType.ValueType -global___FragmentErrorType = FragmentErrorType +Global___FragmentErrorType: _TypeAlias = FragmentErrorType class _ModuleSourceType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _ModuleSourceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ModuleSourceType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _ModuleSourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_ModuleSourceType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor MODULE_SOURCE_TYPE_UNSPECIFIED: _ModuleSourceType.ValueType MODULE_SOURCE_TYPE_EXTERNAL: _ModuleSourceType.ValueType 'Module source code is stored externally, such as in github.' @@ -119,14 +124,14 @@ MODULE_SOURCE_TYPE_EXTERNAL: ModuleSourceType.ValueType 'Module source code is stored externally, such as in github.' MODULE_SOURCE_TYPE_VIAM_HOSTED: ModuleSourceType.ValueType 'Module source code is versioned and managed within Viam.' -global___ModuleSourceType = ModuleSourceType +Global___ModuleSourceType: _TypeAlias = ModuleSourceType class _ModuleLanguage: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _ModuleLanguageEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ModuleLanguage.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _ModuleLanguageEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_ModuleLanguage.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor MODULE_LANGUAGE_UNSPECIFIED: _ModuleLanguage.ValueType MODULE_LANGUAGE_GOLANG: _ModuleLanguage.ValueType MODULE_LANGUAGE_PYTHON: _ModuleLanguage.ValueType @@ -138,14 +143,14 @@ MODULE_LANGUAGE_UNSPECIFIED: ModuleLanguage.ValueType MODULE_LANGUAGE_GOLANG: ModuleLanguage.ValueType MODULE_LANGUAGE_PYTHON: ModuleLanguage.ValueType MODULE_LANGUAGE_CPP: ModuleLanguage.ValueType -global___ModuleLanguage = ModuleLanguage +Global___ModuleLanguage: _TypeAlias = ModuleLanguage class _RegistryItemStatus: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _RegistryItemStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_RegistryItemStatus.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _RegistryItemStatusEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_RegistryItemStatus.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor REGISTRY_ITEM_STATUS_UNSPECIFIED: _RegistryItemStatus.ValueType REGISTRY_ITEM_STATUS_PUBLISHED: _RegistryItemStatus.ValueType REGISTRY_ITEM_STATUS_IN_DEVELOPMENT: _RegistryItemStatus.ValueType @@ -155,14 +160,14 @@ class RegistryItemStatus(_RegistryItemStatus, metaclass=_RegistryItemStatusEnumT REGISTRY_ITEM_STATUS_UNSPECIFIED: RegistryItemStatus.ValueType REGISTRY_ITEM_STATUS_PUBLISHED: RegistryItemStatus.ValueType REGISTRY_ITEM_STATUS_IN_DEVELOPMENT: RegistryItemStatus.ValueType -global___RegistryItemStatus = RegistryItemStatus +Global___RegistryItemStatus: _TypeAlias = RegistryItemStatus class _Visibility: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _VisibilityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Visibility.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _VisibilityEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_Visibility.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor VISIBILITY_UNSPECIFIED: _Visibility.ValueType VISIBILITY_PRIVATE: _Visibility.ValueType 'Private registry items are visible only within the owning org' @@ -180,14 +185,14 @@ VISIBILITY_PUBLIC: Visibility.ValueType 'Public registry items are visible to everyone' VISIBILITY_PUBLIC_UNLISTED: Visibility.ValueType "Public Unlisted registry items are usable in everyone's robot but are hidden from the registry page as if they are private" -global___Visibility = Visibility +Global___Visibility: _TypeAlias = Visibility class _AppType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _AppTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_AppType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _AppTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_AppType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor APP_TYPE_UNSPECIFIED: _AppType.ValueType APP_TYPE_SINGLE_MACHINE: _AppType.ValueType APP_TYPE_MULTI_MACHINE: _AppType.ValueType @@ -197,14 +202,14 @@ class AppType(_AppType, metaclass=_AppTypeEnumTypeWrapper): APP_TYPE_UNSPECIFIED: AppType.ValueType APP_TYPE_SINGLE_MACHINE: AppType.ValueType APP_TYPE_MULTI_MACHINE: AppType.ValueType -global___AppType = AppType +Global___AppType: _TypeAlias = AppType class _ClientAuthentication: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _ClientAuthenticationEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_ClientAuthentication.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _ClientAuthenticationEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_ClientAuthentication.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor CLIENT_AUTHENTICATION_UNSPECIFIED: _ClientAuthentication.ValueType CLIENT_AUTHENTICATION_REQUIRED: _ClientAuthentication.ValueType CLIENT_AUTHENTICATION_NOT_REQUIRED: _ClientAuthentication.ValueType @@ -216,14 +221,14 @@ CLIENT_AUTHENTICATION_UNSPECIFIED: ClientAuthentication.ValueType CLIENT_AUTHENTICATION_REQUIRED: ClientAuthentication.ValueType CLIENT_AUTHENTICATION_NOT_REQUIRED: ClientAuthentication.ValueType CLIENT_AUTHENTICATION_NOT_REQUIRED_WHEN_USING_PKCE: ClientAuthentication.ValueType -global___ClientAuthentication = ClientAuthentication +Global___ClientAuthentication: _TypeAlias = ClientAuthentication class _PKCE: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _PKCEEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PKCE.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _PKCEEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_PKCE.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor PKCE_UNSPECIFIED: _PKCE.ValueType PKCE_REQUIRED: _PKCE.ValueType PKCE_NOT_REQUIRED: _PKCE.ValueType @@ -235,14 +240,14 @@ PKCE_UNSPECIFIED: PKCE.ValueType PKCE_REQUIRED: PKCE.ValueType PKCE_NOT_REQUIRED: PKCE.ValueType PKCE_NOT_REQUIRED_WHEN_USING_CLIENT_AUTHENTICATION: PKCE.ValueType -global___PKCE = PKCE +Global___PKCE: _TypeAlias = PKCE class _URLValidation: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _URLValidationEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_URLValidation.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _URLValidationEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_URLValidation.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor URL_VALIDATION_UNSPECIFIED: _URLValidation.ValueType URL_VALIDATION_EXACT_MATCH: _URLValidation.ValueType URL_VALIDATION_ALLOW_WILDCARDS: _URLValidation.ValueType @@ -252,14 +257,14 @@ class URLValidation(_URLValidation, metaclass=_URLValidationEnumTypeWrapper): URL_VALIDATION_UNSPECIFIED: URLValidation.ValueType URL_VALIDATION_EXACT_MATCH: URLValidation.ValueType URL_VALIDATION_ALLOW_WILDCARDS: URLValidation.ValueType -global___URLValidation = URLValidation +Global___URLValidation: _TypeAlias = URLValidation class _EnabledGrant: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _EnabledGrantEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_EnabledGrant.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _EnabledGrantEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_EnabledGrant.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor ENABLED_GRANT_UNSPECIFIED: _EnabledGrant.ValueType ENABLED_GRANT_AUTHORIZATION_CODE: _EnabledGrant.ValueType ENABLED_GRANT_IMPLICIT: _EnabledGrant.ValueType @@ -275,1145 +280,1249 @@ ENABLED_GRANT_IMPLICIT: EnabledGrant.ValueType ENABLED_GRANT_PASSWORD: EnabledGrant.ValueType ENABLED_GRANT_REFRESH_TOKEN: EnabledGrant.ValueType ENABLED_GRANT_DEVICE_CODE: EnabledGrant.ValueType -global___EnabledGrant = EnabledGrant - -@typing.final -class Robot(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - LOCATION_FIELD_NUMBER: builtins.int - LAST_ACCESS_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - ONLINE_STATE_FIELD_NUMBER: builtins.int - SECONDS_SINCE_ONLINE_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str - location: builtins.str - online_state: global___OnlineState.ValueType - seconds_since_online: builtins.int - - @property - def last_access(self) -> google.protobuf.timestamp_pb2.Timestamp: - ... - - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: - ... - - def __init__(self, *, id: builtins.str=..., name: builtins.str=..., location: builtins.str=..., last_access: google.protobuf.timestamp_pb2.Timestamp | None=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., online_state: global___OnlineState.ValueType=..., seconds_since_online: builtins.int=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['created_on', b'created_on', 'last_access', b'last_access']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['created_on', b'created_on', 'id', b'id', 'last_access', b'last_access', 'location', b'location', 'name', b'name', 'online_state', b'online_state', 'seconds_since_online', b'seconds_since_online']) -> None: - ... -global___Robot = Robot - -@typing.final -class RobotPart(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - DNS_NAME_FIELD_NUMBER: builtins.int - SECRET_FIELD_NUMBER: builtins.int - ROBOT_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - ROBOT_CONFIG_FIELD_NUMBER: builtins.int - LAST_ACCESS_FIELD_NUMBER: builtins.int - USER_SUPPLIED_INFO_FIELD_NUMBER: builtins.int - MAIN_PART_FIELD_NUMBER: builtins.int - FQDN_FIELD_NUMBER: builtins.int - LOCAL_FQDN_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - SECRETS_FIELD_NUMBER: builtins.int - LAST_UPDATED_FIELD_NUMBER: builtins.int - ONLINE_STATE_FIELD_NUMBER: builtins.int - SECONDS_SINCE_ONLINE_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str - dns_name: builtins.str +Global___EnabledGrant: _TypeAlias = EnabledGrant + +@_typing.final +class Robot(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + LOCATION_FIELD_NUMBER: _builtins.int + LAST_ACCESS_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + ONLINE_STATE_FIELD_NUMBER: _builtins.int + SECONDS_SINCE_ONLINE_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str + location: _builtins.str + online_state: Global___OnlineState.ValueType + seconds_since_online: _builtins.int + + @_builtins.property + def last_access(self) -> _timestamp_pb2.Timestamp: + ... + + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: + ... + + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=..., location: _builtins.str=..., last_access: _timestamp_pb2.Timestamp | None=..., created_on: _timestamp_pb2.Timestamp | None=..., online_state: Global___OnlineState.ValueType=..., seconds_since_online: _builtins.int=...) -> None: + ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'last_access', b'last_access'] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'id', b'id', 'last_access', b'last_access', 'location', b'location', 'name', b'name', 'online_state', b'online_state', 'seconds_since_online', b'seconds_since_online'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___Robot: _TypeAlias = Robot + +@_typing.final +class RobotPart(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + DNS_NAME_FIELD_NUMBER: _builtins.int + SECRET_FIELD_NUMBER: _builtins.int + ROBOT_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + ROBOT_CONFIG_FIELD_NUMBER: _builtins.int + LAST_ACCESS_FIELD_NUMBER: _builtins.int + USER_SUPPLIED_INFO_FIELD_NUMBER: _builtins.int + MAIN_PART_FIELD_NUMBER: _builtins.int + FQDN_FIELD_NUMBER: _builtins.int + LOCAL_FQDN_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + SECRETS_FIELD_NUMBER: _builtins.int + LAST_UPDATED_FIELD_NUMBER: _builtins.int + ONLINE_STATE_FIELD_NUMBER: _builtins.int + SECONDS_SINCE_ONLINE_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str + dns_name: _builtins.str 'dns_name part name used for fqdn and local fqdn. Anytime the Name is updated this should be sanitized and updated as well.' - secret: builtins.str - robot: builtins.str - location_id: builtins.str + secret: _builtins.str + robot: _builtins.str + location_id: _builtins.str 'Store the location_id to allow for unique indexes across parts and locations. This filed MUST be updated each time the robots location\n changes.\n ' - main_part: builtins.bool - fqdn: builtins.str - local_fqdn: builtins.str - online_state: global___OnlineState.ValueType - seconds_since_online: builtins.int + main_part: _builtins.bool + fqdn: _builtins.str + local_fqdn: _builtins.str + online_state: Global___OnlineState.ValueType + seconds_since_online: _builtins.int - @property - def robot_config(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def robot_config(self) -> _struct_pb2.Struct: ... - @property - def last_access(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_access(self) -> _timestamp_pb2.Timestamp: ... - @property - def user_supplied_info(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def user_supplied_info(self) -> _struct_pb2.Struct: ... - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: ... - @property - def secrets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SharedSecret]: + @_builtins.property + def secrets(self) -> _containers.RepeatedCompositeFieldContainer[Global___SharedSecret]: """List of secrets allowed for authentication.""" - @property - def last_updated(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_updated(self) -> _timestamp_pb2.Timestamp: """latest timestamp when a robot part was updated""" - def __init__(self, *, id: builtins.str=..., name: builtins.str=..., dns_name: builtins.str=..., secret: builtins.str=..., robot: builtins.str=..., location_id: builtins.str=..., robot_config: google.protobuf.struct_pb2.Struct | None=..., last_access: google.protobuf.timestamp_pb2.Timestamp | None=..., user_supplied_info: google.protobuf.struct_pb2.Struct | None=..., main_part: builtins.bool=..., fqdn: builtins.str=..., local_fqdn: builtins.str=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., secrets: collections.abc.Iterable[global___SharedSecret] | None=..., last_updated: google.protobuf.timestamp_pb2.Timestamp | None=..., online_state: global___OnlineState.ValueType=..., seconds_since_online: builtins.int=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=..., dns_name: _builtins.str=..., secret: _builtins.str=..., robot: _builtins.str=..., location_id: _builtins.str=..., robot_config: _struct_pb2.Struct | None=..., last_access: _timestamp_pb2.Timestamp | None=..., user_supplied_info: _struct_pb2.Struct | None=..., main_part: _builtins.bool=..., fqdn: _builtins.str=..., local_fqdn: _builtins.str=..., created_on: _timestamp_pb2.Timestamp | None=..., secrets: _abc.Iterable[Global___SharedSecret] | None=..., last_updated: _timestamp_pb2.Timestamp | None=..., online_state: Global___OnlineState.ValueType=..., seconds_since_online: _builtins.int=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'last_access', b'last_access', 'last_updated', b'last_updated', 'robot_config', b'robot_config', 'user_supplied_info', b'user_supplied_info'] - def HasField(self, field_name: typing.Literal['created_on', b'created_on', 'last_access', b'last_access', 'last_updated', b'last_updated', 'robot_config', b'robot_config', 'user_supplied_info', b'user_supplied_info']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'dns_name', b'dns_name', 'fqdn', b'fqdn', 'id', b'id', 'last_access', b'last_access', 'last_updated', b'last_updated', 'local_fqdn', b'local_fqdn', 'location_id', b'location_id', 'main_part', b'main_part', 'name', b'name', 'online_state', b'online_state', 'robot', b'robot', 'robot_config', b'robot_config', 'seconds_since_online', b'seconds_since_online', 'secret', b'secret', 'secrets', b'secrets', 'user_supplied_info', b'user_supplied_info'] - def ClearField(self, field_name: typing.Literal['created_on', b'created_on', 'dns_name', b'dns_name', 'fqdn', b'fqdn', 'id', b'id', 'last_access', b'last_access', 'last_updated', b'last_updated', 'local_fqdn', b'local_fqdn', 'location_id', b'location_id', 'main_part', b'main_part', 'name', b'name', 'online_state', b'online_state', 'robot', b'robot', 'robot_config', b'robot_config', 'seconds_since_online', b'seconds_since_online', 'secret', b'secret', 'secrets', b'secrets', 'user_supplied_info', b'user_supplied_info']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RobotPart = RobotPart +Global___RobotPart: _TypeAlias = RobotPart -@typing.final -class RobotPartHistoryEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_FIELD_NUMBER: builtins.int - ROBOT_FIELD_NUMBER: builtins.int - WHEN_FIELD_NUMBER: builtins.int - OLD_FIELD_NUMBER: builtins.int - EDITED_BY_FIELD_NUMBER: builtins.int - part: builtins.str - robot: builtins.str +@_typing.final +class RobotPartHistoryEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_FIELD_NUMBER: _builtins.int + ROBOT_FIELD_NUMBER: _builtins.int + WHEN_FIELD_NUMBER: _builtins.int + OLD_FIELD_NUMBER: _builtins.int + EDITED_BY_FIELD_NUMBER: _builtins.int + part: _builtins.str + robot: _builtins.str - @property - def when(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def when(self) -> _timestamp_pb2.Timestamp: ... - @property - def old(self) -> global___RobotPart: + @_builtins.property + def old(self) -> Global___RobotPart: ... - @property - def edited_by(self) -> global___AuthenticatorInfo: + @_builtins.property + def edited_by(self) -> Global___AuthenticatorInfo: ... - def __init__(self, *, part: builtins.str=..., robot: builtins.str=..., when: google.protobuf.timestamp_pb2.Timestamp | None=..., old: global___RobotPart | None=..., edited_by: global___AuthenticatorInfo | None=...) -> None: + def __init__(self, *, part: _builtins.str=..., robot: _builtins.str=..., when: _timestamp_pb2.Timestamp | None=..., old: Global___RobotPart | None=..., edited_by: Global___AuthenticatorInfo | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['edited_by', b'edited_by', 'old', b'old', 'when', b'when'] - def HasField(self, field_name: typing.Literal['edited_by', b'edited_by', 'old', b'old', 'when', b'when']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['edited_by', b'edited_by', 'old', b'old', 'part', b'part', 'robot', b'robot', 'when', b'when'] - def ClearField(self, field_name: typing.Literal['edited_by', b'edited_by', 'old', b'old', 'part', b'part', 'robot', b'robot', 'when', b'when']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RobotPartHistoryEntry = RobotPartHistoryEntry +Global___RobotPartHistoryEntry: _TypeAlias = RobotPartHistoryEntry -@typing.final -class AuthenticatorInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - IS_DEACTIVATED_FIELD_NUMBER: builtins.int - type: global___AuthenticationType.ValueType - value: builtins.str - is_deactivated: builtins.bool +@_typing.final +class AuthenticatorInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TYPE_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + IS_DEACTIVATED_FIELD_NUMBER: _builtins.int + type: Global___AuthenticationType.ValueType + value: _builtins.str + is_deactivated: _builtins.bool - def __init__(self, *, type: global___AuthenticationType.ValueType=..., value: builtins.str=..., is_deactivated: builtins.bool=...) -> None: + def __init__(self, *, type: Global___AuthenticationType.ValueType=..., value: _builtins.str=..., is_deactivated: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_deactivated', b'is_deactivated', 'type', b'type', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['is_deactivated', b'is_deactivated', 'type', b'type', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AuthenticatorInfo = AuthenticatorInfo +Global___AuthenticatorInfo: _TypeAlias = AuthenticatorInfo -@typing.final -class ListOrganizationsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListOrganizationsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ListOrganizationsRequest = ListOrganizationsRequest - -@typing.final -class Organization(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int - DEFAULT_REGION_FIELD_NUMBER: builtins.int - CID_FIELD_NUMBER: builtins.int - DEFAULT_FRAGMENTS_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str - public_namespace: builtins.str - default_region: builtins.str +Global___ListOrganizationsRequest: _TypeAlias = ListOrganizationsRequest + +@_typing.final +class Organization(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + PUBLIC_NAMESPACE_FIELD_NUMBER: _builtins.int + DEFAULT_REGION_FIELD_NUMBER: _builtins.int + CID_FIELD_NUMBER: _builtins.int + DEFAULT_FRAGMENTS_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str + public_namespace: _builtins.str + default_region: _builtins.str 'GCS region of the organization. Locations created under this org will have their GCS region set to this by default and packages\n associated with this org will be stored in this region.\n ' - cid: builtins.str + cid: _builtins.str - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: ... - @property - def default_fragments(self) -> global___FragmentImportList: + @_builtins.property + def default_fragments(self) -> Global___FragmentImportList: ... - def __init__(self, *, id: builtins.str=..., name: builtins.str=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., public_namespace: builtins.str=..., default_region: builtins.str=..., cid: builtins.str | None=..., default_fragments: global___FragmentImportList | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=..., created_on: _timestamp_pb2.Timestamp | None=..., public_namespace: _builtins.str=..., default_region: _builtins.str=..., cid: _builtins.str | None=..., default_fragments: Global___FragmentImportList | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_cid', b'_cid', '_default_fragments', b'_default_fragments', 'cid', b'cid', 'created_on', b'created_on', 'default_fragments', b'default_fragments'] - def HasField(self, field_name: typing.Literal['_cid', b'_cid', '_default_fragments', b'_default_fragments', 'cid', b'cid', 'created_on', b'created_on', 'default_fragments', b'default_fragments']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_cid', b'_cid', '_default_fragments', b'_default_fragments', 'cid', b'cid', 'created_on', b'created_on', 'default_fragments', b'default_fragments', 'default_region', b'default_region', 'id', b'id', 'name', b'name', 'public_namespace', b'public_namespace'] - def ClearField(self, field_name: typing.Literal['_cid', b'_cid', '_default_fragments', b'_default_fragments', 'cid', b'cid', 'created_on', b'created_on', 'default_fragments', b'default_fragments', 'default_region', b'default_region', 'id', b'id', 'name', b'name', 'public_namespace', b'public_namespace']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__cid: _TypeAlias = _typing.Literal['cid'] + _WhichOneofArgType__cid: _TypeAlias = _typing.Literal['_cid', b'_cid'] + _WhichOneofReturnType__default_fragments: _TypeAlias = _typing.Literal['default_fragments'] + _WhichOneofArgType__default_fragments: _TypeAlias = _typing.Literal['_default_fragments', b'_default_fragments'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_cid', b'_cid']) -> typing.Literal['cid'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__cid) -> _WhichOneofReturnType__cid | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_default_fragments', b'_default_fragments']) -> typing.Literal['default_fragments'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__default_fragments) -> _WhichOneofReturnType__default_fragments | None: ... -global___Organization = Organization +Global___Organization: _TypeAlias = Organization -@typing.final -class OrganizationMember(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - USER_ID_FIELD_NUMBER: builtins.int - EMAILS_FIELD_NUMBER: builtins.int - DATE_ADDED_FIELD_NUMBER: builtins.int - LAST_LOGIN_FIELD_NUMBER: builtins.int - LAST_ACCESS_FIELD_NUMBER: builtins.int - user_id: builtins.str +@_typing.final +class OrganizationMember(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + USER_ID_FIELD_NUMBER: _builtins.int + EMAILS_FIELD_NUMBER: _builtins.int + DATE_ADDED_FIELD_NUMBER: _builtins.int + LAST_LOGIN_FIELD_NUMBER: _builtins.int + LAST_ACCESS_FIELD_NUMBER: _builtins.int + user_id: _builtins.str - @property - def emails(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def emails(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def date_added(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def date_added(self) -> _timestamp_pb2.Timestamp: ... - @property - def last_login(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_login(self) -> _timestamp_pb2.Timestamp: ... - @property - def last_access(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_access(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, user_id: builtins.str=..., emails: collections.abc.Iterable[builtins.str] | None=..., date_added: google.protobuf.timestamp_pb2.Timestamp | None=..., last_login: google.protobuf.timestamp_pb2.Timestamp | None=..., last_access: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, user_id: _builtins.str=..., emails: _abc.Iterable[_builtins.str] | None=..., date_added: _timestamp_pb2.Timestamp | None=..., last_login: _timestamp_pb2.Timestamp | None=..., last_access: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_last_access', b'_last_access', '_last_login', b'_last_login', 'date_added', b'date_added', 'last_access', b'last_access', 'last_login', b'last_login'] - def HasField(self, field_name: typing.Literal['_last_access', b'_last_access', '_last_login', b'_last_login', 'date_added', b'date_added', 'last_access', b'last_access', 'last_login', b'last_login']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_last_access', b'_last_access', '_last_login', b'_last_login', 'date_added', b'date_added', 'emails', b'emails', 'last_access', b'last_access', 'last_login', b'last_login', 'user_id', b'user_id'] - def ClearField(self, field_name: typing.Literal['_last_access', b'_last_access', '_last_login', b'_last_login', 'date_added', b'date_added', 'emails', b'emails', 'last_access', b'last_access', 'last_login', b'last_login', 'user_id', b'user_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__last_access: _TypeAlias = _typing.Literal['last_access'] + _WhichOneofArgType__last_access: _TypeAlias = _typing.Literal['_last_access', b'_last_access'] + _WhichOneofReturnType__last_login: _TypeAlias = _typing.Literal['last_login'] + _WhichOneofArgType__last_login: _TypeAlias = _typing.Literal['_last_login', b'_last_login'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_last_access', b'_last_access']) -> typing.Literal['last_access'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__last_access) -> _WhichOneofReturnType__last_access | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_last_login', b'_last_login']) -> typing.Literal['last_login'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__last_login) -> _WhichOneofReturnType__last_login | None: ... -global___OrganizationMember = OrganizationMember +Global___OrganizationMember: _TypeAlias = OrganizationMember -@typing.final -class ListOrganizationsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATIONS_FIELD_NUMBER: builtins.int +@_typing.final +class ListOrganizationsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATIONS_FIELD_NUMBER: _builtins.int - @property - def organizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Organization]: + @_builtins.property + def organizations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Organization]: ... - def __init__(self, *, organizations: collections.abc.Iterable[global___Organization] | None=...) -> None: + def __init__(self, *, organizations: _abc.Iterable[Global___Organization] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organizations', b'organizations'] - def ClearField(self, field_name: typing.Literal['organizations', b'organizations']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListOrganizationsResponse = ListOrganizationsResponse +Global___ListOrganizationsResponse: _TypeAlias = ListOrganizationsResponse -@typing.final -class OrganizationInvite(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - AUTHORIZATIONS_FIELD_NUMBER: builtins.int - organization_id: builtins.str - email: builtins.str +@_typing.final +class OrganizationInvite(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + EMAIL_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + AUTHORIZATIONS_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + email: _builtins.str - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: ... - @property - def authorizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Authorization]: + @_builtins.property + def authorizations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Authorization]: ... - def __init__(self, *, organization_id: builtins.str=..., email: builtins.str=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., authorizations: collections.abc.Iterable[global___Authorization] | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., email: _builtins.str=..., created_on: _timestamp_pb2.Timestamp | None=..., authorizations: _abc.Iterable[Global___Authorization] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on'] - def HasField(self, field_name: typing.Literal['created_on', b'created_on']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['authorizations', b'authorizations', 'created_on', b'created_on', 'email', b'email', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['authorizations', b'authorizations', 'created_on', b'created_on', 'email', b'email', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OrganizationInvite = OrganizationInvite +Global___OrganizationInvite: _TypeAlias = OrganizationInvite -@typing.final -class CreateOrganizationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class CreateOrganizationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateOrganizationRequest = CreateOrganizationRequest +Global___CreateOrganizationRequest: _TypeAlias = CreateOrganizationRequest -@typing.final -class CreateOrganizationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_FIELD_NUMBER: builtins.int +@_typing.final +class CreateOrganizationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_FIELD_NUMBER: _builtins.int - @property - def organization(self) -> global___Organization: + @_builtins.property + def organization(self) -> Global___Organization: ... - def __init__(self, *, organization: global___Organization | None=...) -> None: + def __init__(self, *, organization: Global___Organization | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['organization', b'organization'] - def HasField(self, field_name: typing.Literal['organization', b'organization']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization', b'organization'] - def ClearField(self, field_name: typing.Literal['organization', b'organization']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateOrganizationResponse = CreateOrganizationResponse +Global___CreateOrganizationResponse: _TypeAlias = CreateOrganizationResponse -@typing.final -class GetOrganizationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class GetOrganizationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str - def __init__(self, *, organization_id: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOrganizationRequest = GetOrganizationRequest +Global___GetOrganizationRequest: _TypeAlias = GetOrganizationRequest -@typing.final -class GetOrganizationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_FIELD_NUMBER: builtins.int +@_typing.final +class GetOrganizationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_FIELD_NUMBER: _builtins.int - @property - def organization(self) -> global___Organization: + @_builtins.property + def organization(self) -> Global___Organization: ... - def __init__(self, *, organization: global___Organization | None=...) -> None: + def __init__(self, *, organization: Global___Organization | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['organization', b'organization'] - def HasField(self, field_name: typing.Literal['organization', b'organization']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization', b'organization'] - def ClearField(self, field_name: typing.Literal['organization', b'organization']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOrganizationResponse = GetOrganizationResponse +Global___GetOrganizationResponse: _TypeAlias = GetOrganizationResponse -@typing.final -class GetOrganizationNamespaceAvailabilityRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - public_namespace: builtins.str - organization_id: builtins.str +@_typing.final +class GetOrganizationNamespaceAvailabilityRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PUBLIC_NAMESPACE_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + public_namespace: _builtins.str + organization_id: _builtins.str - def __init__(self, *, public_namespace: builtins.str=..., organization_id: builtins.str=...) -> None: + def __init__(self, *, public_namespace: _builtins.str=..., organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id', 'public_namespace', b'public_namespace'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id', 'public_namespace', b'public_namespace']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOrganizationNamespaceAvailabilityRequest = GetOrganizationNamespaceAvailabilityRequest +Global___GetOrganizationNamespaceAvailabilityRequest: _TypeAlias = GetOrganizationNamespaceAvailabilityRequest -@typing.final -class GetOrganizationNamespaceAvailabilityResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AVAILABLE_FIELD_NUMBER: builtins.int - available: builtins.bool +@_typing.final +class GetOrganizationNamespaceAvailabilityResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AVAILABLE_FIELD_NUMBER: _builtins.int + available: _builtins.bool - def __init__(self, *, available: builtins.bool=...) -> None: + def __init__(self, *, available: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['available', b'available'] - def ClearField(self, field_name: typing.Literal['available', b'available']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOrganizationNamespaceAvailabilityResponse = GetOrganizationNamespaceAvailabilityResponse +Global___GetOrganizationNamespaceAvailabilityResponse: _TypeAlias = GetOrganizationNamespaceAvailabilityResponse -@typing.final -class FragmentImportList(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENTS_FIELD_NUMBER: builtins.int +@_typing.final +class FragmentImportList(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENTS_FIELD_NUMBER: _builtins.int - @property - def fragments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FragmentImport]: + @_builtins.property + def fragments(self) -> _containers.RepeatedCompositeFieldContainer[Global___FragmentImport]: ... - def __init__(self, *, fragments: collections.abc.Iterable[global___FragmentImport] | None=...) -> None: + def __init__(self, *, fragments: _abc.Iterable[Global___FragmentImport] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragments', b'fragments'] - def ClearField(self, field_name: typing.Literal['fragments', b'fragments']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FragmentImportList = FragmentImportList +Global___FragmentImportList: _TypeAlias = FragmentImportList -@typing.final -class UpdateOrganizationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int - REGION_FIELD_NUMBER: builtins.int - CID_FIELD_NUMBER: builtins.int - DEFAULT_FRAGMENTS_FIELD_NUMBER: builtins.int - organization_id: builtins.str - name: builtins.str - public_namespace: builtins.str - region: builtins.str +@_typing.final +class UpdateOrganizationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + PUBLIC_NAMESPACE_FIELD_NUMBER: _builtins.int + REGION_FIELD_NUMBER: _builtins.int + CID_FIELD_NUMBER: _builtins.int + DEFAULT_FRAGMENTS_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + name: _builtins.str + public_namespace: _builtins.str + region: _builtins.str 'The new GCS region to associate the org with.' - cid: builtins.str + cid: _builtins.str - @property - def default_fragments(self) -> global___FragmentImportList: + @_builtins.property + def default_fragments(self) -> Global___FragmentImportList: ... - def __init__(self, *, organization_id: builtins.str=..., name: builtins.str | None=..., public_namespace: builtins.str | None=..., region: builtins.str | None=..., cid: builtins.str | None=..., default_fragments: global___FragmentImportList | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., name: _builtins.str | None=..., public_namespace: _builtins.str | None=..., region: _builtins.str | None=..., cid: _builtins.str | None=..., default_fragments: Global___FragmentImportList | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_cid', b'_cid', '_default_fragments', b'_default_fragments', '_name', b'_name', '_public_namespace', b'_public_namespace', '_region', b'_region', 'cid', b'cid', 'default_fragments', b'default_fragments', 'name', b'name', 'public_namespace', b'public_namespace', 'region', b'region'] - def HasField(self, field_name: typing.Literal['_cid', b'_cid', '_default_fragments', b'_default_fragments', '_name', b'_name', '_public_namespace', b'_public_namespace', '_region', b'_region', 'cid', b'cid', 'default_fragments', b'default_fragments', 'name', b'name', 'public_namespace', b'public_namespace', 'region', b'region']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_cid', b'_cid', '_default_fragments', b'_default_fragments', '_name', b'_name', '_public_namespace', b'_public_namespace', '_region', b'_region', 'cid', b'cid', 'default_fragments', b'default_fragments', 'name', b'name', 'organization_id', b'organization_id', 'public_namespace', b'public_namespace', 'region', b'region'] - def ClearField(self, field_name: typing.Literal['_cid', b'_cid', '_default_fragments', b'_default_fragments', '_name', b'_name', '_public_namespace', b'_public_namespace', '_region', b'_region', 'cid', b'cid', 'default_fragments', b'default_fragments', 'name', b'name', 'organization_id', b'organization_id', 'public_namespace', b'public_namespace', 'region', b'region']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__cid: _TypeAlias = _typing.Literal['cid'] + _WhichOneofArgType__cid: _TypeAlias = _typing.Literal['_cid', b'_cid'] + _WhichOneofReturnType__default_fragments: _TypeAlias = _typing.Literal['default_fragments'] + _WhichOneofArgType__default_fragments: _TypeAlias = _typing.Literal['_default_fragments', b'_default_fragments'] + _WhichOneofReturnType__name: _TypeAlias = _typing.Literal['name'] + _WhichOneofArgType__name: _TypeAlias = _typing.Literal['_name', b'_name'] + _WhichOneofReturnType__public_namespace: _TypeAlias = _typing.Literal['public_namespace'] + _WhichOneofArgType__public_namespace: _TypeAlias = _typing.Literal['_public_namespace', b'_public_namespace'] + _WhichOneofReturnType__region: _TypeAlias = _typing.Literal['region'] + _WhichOneofArgType__region: _TypeAlias = _typing.Literal['_region', b'_region'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_cid', b'_cid']) -> typing.Literal['cid'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__cid) -> _WhichOneofReturnType__cid | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_default_fragments', b'_default_fragments']) -> typing.Literal['default_fragments'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__default_fragments) -> _WhichOneofReturnType__default_fragments | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_name', b'_name']) -> typing.Literal['name'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__name) -> _WhichOneofReturnType__name | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_public_namespace', b'_public_namespace']) -> typing.Literal['public_namespace'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__public_namespace) -> _WhichOneofReturnType__public_namespace | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_region', b'_region']) -> typing.Literal['region'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__region) -> _WhichOneofReturnType__region | None: ... -global___UpdateOrganizationRequest = UpdateOrganizationRequest +Global___UpdateOrganizationRequest: _TypeAlias = UpdateOrganizationRequest -@typing.final -class UpdateOrganizationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_FIELD_NUMBER: builtins.int +@_typing.final +class UpdateOrganizationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_FIELD_NUMBER: _builtins.int - @property - def organization(self) -> global___Organization: + @_builtins.property + def organization(self) -> Global___Organization: ... - def __init__(self, *, organization: global___Organization | None=...) -> None: + def __init__(self, *, organization: Global___Organization | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['organization', b'organization'] - def HasField(self, field_name: typing.Literal['organization', b'organization']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization', b'organization'] - def ClearField(self, field_name: typing.Literal['organization', b'organization']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateOrganizationResponse = UpdateOrganizationResponse +Global___UpdateOrganizationResponse: _TypeAlias = UpdateOrganizationResponse -@typing.final -class UpdateOrganizationNamespaceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - NEW_PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int - organization_id: builtins.str - new_public_namespace: builtins.str +@_typing.final +class UpdateOrganizationNamespaceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + NEW_PUBLIC_NAMESPACE_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + new_public_namespace: _builtins.str - def __init__(self, *, organization_id: builtins.str=..., new_public_namespace: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., new_public_namespace: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['new_public_namespace', b'new_public_namespace', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['new_public_namespace', b'new_public_namespace', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateOrganizationNamespaceRequest = UpdateOrganizationNamespaceRequest +Global___UpdateOrganizationNamespaceRequest: _TypeAlias = UpdateOrganizationNamespaceRequest -@typing.final -class UpdateOrganizationNamespaceResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_FIELD_NUMBER: builtins.int +@_typing.final +class UpdateOrganizationNamespaceResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_FIELD_NUMBER: _builtins.int - @property - def organization(self) -> global___Organization: + @_builtins.property + def organization(self) -> Global___Organization: ... - def __init__(self, *, organization: global___Organization | None=...) -> None: + def __init__(self, *, organization: Global___Organization | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['organization', b'organization'] - def HasField(self, field_name: typing.Literal['organization', b'organization']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization', b'organization'] - def ClearField(self, field_name: typing.Literal['organization', b'organization']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateOrganizationNamespaceResponse = UpdateOrganizationNamespaceResponse +Global___UpdateOrganizationNamespaceResponse: _TypeAlias = UpdateOrganizationNamespaceResponse -@typing.final -class DeleteOrganizationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class DeleteOrganizationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str - def __init__(self, *, organization_id: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteOrganizationRequest = DeleteOrganizationRequest +Global___DeleteOrganizationRequest: _TypeAlias = DeleteOrganizationRequest -@typing.final -class DeleteOrganizationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteOrganizationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteOrganizationResponse = DeleteOrganizationResponse +Global___DeleteOrganizationResponse: _TypeAlias = DeleteOrganizationResponse -@typing.final -class GetOrganizationMetadataRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class GetOrganizationMetadataRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str - def __init__(self, *, organization_id: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOrganizationMetadataRequest = GetOrganizationMetadataRequest +Global___GetOrganizationMetadataRequest: _TypeAlias = GetOrganizationMetadataRequest -@typing.final -class GetOrganizationMetadataResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class GetOrganizationMetadataResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def data(self) -> _struct_pb2.Struct: ... - def __init__(self, *, data: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, data: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def HasField(self, field_name: typing.Literal['data', b'data']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOrganizationMetadataResponse = GetOrganizationMetadataResponse +Global___GetOrganizationMetadataResponse: _TypeAlias = GetOrganizationMetadataResponse -@typing.final -class UpdateOrganizationMetadataRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - DATA_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class UpdateOrganizationMetadataRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + DATA_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str - @property - def data(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def data(self) -> _struct_pb2.Struct: ... - def __init__(self, *, organization_id: builtins.str=..., data: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., data: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def HasField(self, field_name: typing.Literal['data', b'data']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['data', b'data', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateOrganizationMetadataRequest = UpdateOrganizationMetadataRequest +Global___UpdateOrganizationMetadataRequest: _TypeAlias = UpdateOrganizationMetadataRequest -@typing.final -class UpdateOrganizationMetadataResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateOrganizationMetadataResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UpdateOrganizationMetadataResponse = UpdateOrganizationMetadataResponse +Global___UpdateOrganizationMetadataResponse: _TypeAlias = UpdateOrganizationMetadataResponse -@typing.final -class ListOrganizationMembersRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class ListOrganizationMembersRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str - def __init__(self, *, organization_id: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListOrganizationMembersRequest = ListOrganizationMembersRequest +Global___ListOrganizationMembersRequest: _TypeAlias = ListOrganizationMembersRequest -@typing.final -class ListOrganizationMembersResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - MEMBERS_FIELD_NUMBER: builtins.int - INVITES_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class ListOrganizationMembersResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + MEMBERS_FIELD_NUMBER: _builtins.int + INVITES_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str - @property - def members(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___OrganizationMember]: + @_builtins.property + def members(self) -> _containers.RepeatedCompositeFieldContainer[Global___OrganizationMember]: ... - @property - def invites(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___OrganizationInvite]: + @_builtins.property + def invites(self) -> _containers.RepeatedCompositeFieldContainer[Global___OrganizationInvite]: ... - def __init__(self, *, organization_id: builtins.str=..., members: collections.abc.Iterable[global___OrganizationMember] | None=..., invites: collections.abc.Iterable[global___OrganizationInvite] | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., members: _abc.Iterable[Global___OrganizationMember] | None=..., invites: _abc.Iterable[Global___OrganizationInvite] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['invites', b'invites', 'members', b'members', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['invites', b'invites', 'members', b'members', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListOrganizationMembersResponse = ListOrganizationMembersResponse +Global___ListOrganizationMembersResponse: _TypeAlias = ListOrganizationMembersResponse -@typing.final -class CreateOrganizationInviteRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - AUTHORIZATIONS_FIELD_NUMBER: builtins.int - SEND_EMAIL_INVITE_FIELD_NUMBER: builtins.int - organization_id: builtins.str - email: builtins.str - send_email_invite: builtins.bool +@_typing.final +class CreateOrganizationInviteRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + EMAIL_FIELD_NUMBER: _builtins.int + AUTHORIZATIONS_FIELD_NUMBER: _builtins.int + SEND_EMAIL_INVITE_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + email: _builtins.str + send_email_invite: _builtins.bool 'Set to true (the default) to send an email to the recipient of an invite. The user must accept the email to be added to the associated authorizations.\n When set to false, the user automatically receives the associated authorization on the next login of the user with the associated email address.\n ' - @property - def authorizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Authorization]: + @_builtins.property + def authorizations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Authorization]: ... - def __init__(self, *, organization_id: builtins.str=..., email: builtins.str=..., authorizations: collections.abc.Iterable[global___Authorization] | None=..., send_email_invite: builtins.bool | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., email: _builtins.str=..., authorizations: _abc.Iterable[Global___Authorization] | None=..., send_email_invite: _builtins.bool | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_send_email_invite', b'_send_email_invite', 'send_email_invite', b'send_email_invite'] - def HasField(self, field_name: typing.Literal['_send_email_invite', b'_send_email_invite', 'send_email_invite', b'send_email_invite']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_send_email_invite', b'_send_email_invite', 'authorizations', b'authorizations', 'email', b'email', 'organization_id', b'organization_id', 'send_email_invite', b'send_email_invite'] - def ClearField(self, field_name: typing.Literal['_send_email_invite', b'_send_email_invite', 'authorizations', b'authorizations', 'email', b'email', 'organization_id', b'organization_id', 'send_email_invite', b'send_email_invite']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__send_email_invite: _TypeAlias = _typing.Literal['send_email_invite'] + _WhichOneofArgType__send_email_invite: _TypeAlias = _typing.Literal['_send_email_invite', b'_send_email_invite'] - def WhichOneof(self, oneof_group: typing.Literal['_send_email_invite', b'_send_email_invite']) -> typing.Literal['send_email_invite'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__send_email_invite) -> _WhichOneofReturnType__send_email_invite | None: ... -global___CreateOrganizationInviteRequest = CreateOrganizationInviteRequest +Global___CreateOrganizationInviteRequest: _TypeAlias = CreateOrganizationInviteRequest -@typing.final -class CreateOrganizationInviteResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INVITE_FIELD_NUMBER: builtins.int +@_typing.final +class CreateOrganizationInviteResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + INVITE_FIELD_NUMBER: _builtins.int - @property - def invite(self) -> global___OrganizationInvite: + @_builtins.property + def invite(self) -> Global___OrganizationInvite: ... - def __init__(self, *, invite: global___OrganizationInvite | None=...) -> None: + def __init__(self, *, invite: Global___OrganizationInvite | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['invite', b'invite'] - def HasField(self, field_name: typing.Literal['invite', b'invite']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['invite', b'invite'] - def ClearField(self, field_name: typing.Literal['invite', b'invite']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateOrganizationInviteResponse = CreateOrganizationInviteResponse +Global___CreateOrganizationInviteResponse: _TypeAlias = CreateOrganizationInviteResponse -@typing.final -class UpdateOrganizationInviteAuthorizationsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - ADD_AUTHORIZATIONS_FIELD_NUMBER: builtins.int - REMOVE_AUTHORIZATIONS_FIELD_NUMBER: builtins.int - organization_id: builtins.str - email: builtins.str +@_typing.final +class UpdateOrganizationInviteAuthorizationsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + EMAIL_FIELD_NUMBER: _builtins.int + ADD_AUTHORIZATIONS_FIELD_NUMBER: _builtins.int + REMOVE_AUTHORIZATIONS_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + email: _builtins.str - @property - def add_authorizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Authorization]: + @_builtins.property + def add_authorizations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Authorization]: ... - @property - def remove_authorizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Authorization]: + @_builtins.property + def remove_authorizations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Authorization]: ... - def __init__(self, *, organization_id: builtins.str=..., email: builtins.str=..., add_authorizations: collections.abc.Iterable[global___Authorization] | None=..., remove_authorizations: collections.abc.Iterable[global___Authorization] | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., email: _builtins.str=..., add_authorizations: _abc.Iterable[Global___Authorization] | None=..., remove_authorizations: _abc.Iterable[Global___Authorization] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['add_authorizations', b'add_authorizations', 'email', b'email', 'organization_id', b'organization_id', 'remove_authorizations', b'remove_authorizations'] - def ClearField(self, field_name: typing.Literal['add_authorizations', b'add_authorizations', 'email', b'email', 'organization_id', b'organization_id', 'remove_authorizations', b'remove_authorizations']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateOrganizationInviteAuthorizationsRequest = UpdateOrganizationInviteAuthorizationsRequest +Global___UpdateOrganizationInviteAuthorizationsRequest: _TypeAlias = UpdateOrganizationInviteAuthorizationsRequest -@typing.final -class UpdateOrganizationInviteAuthorizationsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INVITE_FIELD_NUMBER: builtins.int +@_typing.final +class UpdateOrganizationInviteAuthorizationsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + INVITE_FIELD_NUMBER: _builtins.int - @property - def invite(self) -> global___OrganizationInvite: + @_builtins.property + def invite(self) -> Global___OrganizationInvite: ... - def __init__(self, *, invite: global___OrganizationInvite | None=...) -> None: + def __init__(self, *, invite: Global___OrganizationInvite | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['invite', b'invite'] - def HasField(self, field_name: typing.Literal['invite', b'invite']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['invite', b'invite'] - def ClearField(self, field_name: typing.Literal['invite', b'invite']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateOrganizationInviteAuthorizationsResponse = UpdateOrganizationInviteAuthorizationsResponse +Global___UpdateOrganizationInviteAuthorizationsResponse: _TypeAlias = UpdateOrganizationInviteAuthorizationsResponse -@typing.final -class DeleteOrganizationInviteRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - organization_id: builtins.str - email: builtins.str +@_typing.final +class DeleteOrganizationInviteRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + EMAIL_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + email: _builtins.str - def __init__(self, *, organization_id: builtins.str=..., email: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., email: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['email', b'email', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['email', b'email', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteOrganizationInviteRequest = DeleteOrganizationInviteRequest +Global___DeleteOrganizationInviteRequest: _TypeAlias = DeleteOrganizationInviteRequest -@typing.final -class DeleteOrganizationInviteResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteOrganizationInviteResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteOrganizationInviteResponse = DeleteOrganizationInviteResponse - -@typing.final -class ResendOrganizationInviteRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - SEND_EMAIL_INVITE_FIELD_NUMBER: builtins.int - organization_id: builtins.str - email: builtins.str - send_email_invite: builtins.bool +Global___DeleteOrganizationInviteResponse: _TypeAlias = DeleteOrganizationInviteResponse + +@_typing.final +class ResendOrganizationInviteRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + EMAIL_FIELD_NUMBER: _builtins.int + SEND_EMAIL_INVITE_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + email: _builtins.str + send_email_invite: _builtins.bool 'Set to true (the default) to send an email to the recipient of an invite. The user must accept the email to be added to the associated authorizations.\n When set to false, the user automatically receives the associated authorization on the next login of the user with the associated email address.\n ' - def __init__(self, *, organization_id: builtins.str=..., email: builtins.str=..., send_email_invite: builtins.bool | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., email: _builtins.str=..., send_email_invite: _builtins.bool | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_send_email_invite', b'_send_email_invite', 'send_email_invite', b'send_email_invite'] - def HasField(self, field_name: typing.Literal['_send_email_invite', b'_send_email_invite', 'send_email_invite', b'send_email_invite']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_send_email_invite', b'_send_email_invite', 'email', b'email', 'organization_id', b'organization_id', 'send_email_invite', b'send_email_invite'] - def ClearField(self, field_name: typing.Literal['_send_email_invite', b'_send_email_invite', 'email', b'email', 'organization_id', b'organization_id', 'send_email_invite', b'send_email_invite']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__send_email_invite: _TypeAlias = _typing.Literal['send_email_invite'] + _WhichOneofArgType__send_email_invite: _TypeAlias = _typing.Literal['_send_email_invite', b'_send_email_invite'] - def WhichOneof(self, oneof_group: typing.Literal['_send_email_invite', b'_send_email_invite']) -> typing.Literal['send_email_invite'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__send_email_invite) -> _WhichOneofReturnType__send_email_invite | None: ... -global___ResendOrganizationInviteRequest = ResendOrganizationInviteRequest +Global___ResendOrganizationInviteRequest: _TypeAlias = ResendOrganizationInviteRequest -@typing.final -class ResendOrganizationInviteResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INVITE_FIELD_NUMBER: builtins.int +@_typing.final +class ResendOrganizationInviteResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + INVITE_FIELD_NUMBER: _builtins.int - @property - def invite(self) -> global___OrganizationInvite: + @_builtins.property + def invite(self) -> Global___OrganizationInvite: ... - def __init__(self, *, invite: global___OrganizationInvite | None=...) -> None: + def __init__(self, *, invite: Global___OrganizationInvite | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['invite', b'invite'] - def HasField(self, field_name: typing.Literal['invite', b'invite']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['invite', b'invite'] - def ClearField(self, field_name: typing.Literal['invite', b'invite']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResendOrganizationInviteResponse = ResendOrganizationInviteResponse +Global___ResendOrganizationInviteResponse: _TypeAlias = ResendOrganizationInviteResponse -@typing.final -class DeleteOrganizationMemberRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - USER_ID_FIELD_NUMBER: builtins.int - organization_id: builtins.str - user_id: builtins.str +@_typing.final +class DeleteOrganizationMemberRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + USER_ID_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + user_id: _builtins.str - def __init__(self, *, organization_id: builtins.str=..., user_id: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., user_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id', 'user_id', b'user_id'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id', 'user_id', b'user_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteOrganizationMemberRequest = DeleteOrganizationMemberRequest +Global___DeleteOrganizationMemberRequest: _TypeAlias = DeleteOrganizationMemberRequest -@typing.final -class DeleteOrganizationMemberResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteOrganizationMemberResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteOrganizationMemberResponse = DeleteOrganizationMemberResponse +Global___DeleteOrganizationMemberResponse: _TypeAlias = DeleteOrganizationMemberResponse -@typing.final -class BillingAddress(google.protobuf.message.Message): +@_typing.final +class BillingAddress(_message.Message): """Third Party Org Services""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ADDRESS_LINE_1_FIELD_NUMBER: builtins.int - ADDRESS_LINE_2_FIELD_NUMBER: builtins.int - CITY_FIELD_NUMBER: builtins.int - STATE_FIELD_NUMBER: builtins.int - ZIPCODE_FIELD_NUMBER: builtins.int - COUNTRY_FIELD_NUMBER: builtins.int - address_line_1: builtins.str - address_line_2: builtins.str - city: builtins.str - state: builtins.str - zipcode: builtins.str - country: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ADDRESS_LINE_1_FIELD_NUMBER: _builtins.int + ADDRESS_LINE_2_FIELD_NUMBER: _builtins.int + CITY_FIELD_NUMBER: _builtins.int + STATE_FIELD_NUMBER: _builtins.int + ZIPCODE_FIELD_NUMBER: _builtins.int + COUNTRY_FIELD_NUMBER: _builtins.int + address_line_1: _builtins.str + address_line_2: _builtins.str + city: _builtins.str + state: _builtins.str + zipcode: _builtins.str + country: _builtins.str - def __init__(self, *, address_line_1: builtins.str=..., address_line_2: builtins.str | None=..., city: builtins.str=..., state: builtins.str=..., zipcode: builtins.str=..., country: builtins.str=...) -> None: + def __init__(self, *, address_line_1: _builtins.str=..., address_line_2: _builtins.str | None=..., city: _builtins.str=..., state: _builtins.str=..., zipcode: _builtins.str=..., country: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_address_line_2', b'_address_line_2', 'address_line_2', b'address_line_2'] - def HasField(self, field_name: typing.Literal['_address_line_2', b'_address_line_2', 'address_line_2', b'address_line_2']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_address_line_2', b'_address_line_2', 'address_line_1', b'address_line_1', 'address_line_2', b'address_line_2', 'city', b'city', 'country', b'country', 'state', b'state', 'zipcode', b'zipcode'] - def ClearField(self, field_name: typing.Literal['_address_line_2', b'_address_line_2', 'address_line_1', b'address_line_1', 'address_line_2', b'address_line_2', 'city', b'city', 'country', b'country', 'state', b'state', 'zipcode', b'zipcode']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__address_line_2: _TypeAlias = _typing.Literal['address_line_2'] + _WhichOneofArgType__address_line_2: _TypeAlias = _typing.Literal['_address_line_2', b'_address_line_2'] - def WhichOneof(self, oneof_group: typing.Literal['_address_line_2', b'_address_line_2']) -> typing.Literal['address_line_2'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__address_line_2) -> _WhichOneofReturnType__address_line_2 | None: ... -global___BillingAddress = BillingAddress +Global___BillingAddress: _TypeAlias = BillingAddress -@typing.final -class EnableBillingServiceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - BILLING_ADDRESS_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class EnableBillingServiceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + BILLING_ADDRESS_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - @property - def billing_address(self) -> global___BillingAddress: + @_builtins.property + def billing_address(self) -> Global___BillingAddress: ... - def __init__(self, *, org_id: builtins.str=..., billing_address: global___BillingAddress | None=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., billing_address: Global___BillingAddress | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['billing_address', b'billing_address'] - def HasField(self, field_name: typing.Literal['billing_address', b'billing_address']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['billing_address', b'billing_address', 'org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['billing_address', b'billing_address', 'org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EnableBillingServiceRequest = EnableBillingServiceRequest +Global___EnableBillingServiceRequest: _TypeAlias = EnableBillingServiceRequest -@typing.final -class EnableBillingServiceResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class EnableBillingServiceResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___EnableBillingServiceResponse = EnableBillingServiceResponse +Global___EnableBillingServiceResponse: _TypeAlias = EnableBillingServiceResponse -@typing.final -class UpdateBillingServiceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - BILLING_ADDRESS_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class UpdateBillingServiceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + BILLING_ADDRESS_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - @property - def billing_address(self) -> global___BillingAddress: + @_builtins.property + def billing_address(self) -> Global___BillingAddress: ... - def __init__(self, *, org_id: builtins.str=..., billing_address: global___BillingAddress | None=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., billing_address: Global___BillingAddress | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['billing_address', b'billing_address'] - def HasField(self, field_name: typing.Literal['billing_address', b'billing_address']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['billing_address', b'billing_address', 'org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['billing_address', b'billing_address', 'org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateBillingServiceRequest = UpdateBillingServiceRequest +Global___UpdateBillingServiceRequest: _TypeAlias = UpdateBillingServiceRequest -@typing.final -class UpdateBillingServiceResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateBillingServiceResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UpdateBillingServiceResponse = UpdateBillingServiceResponse +Global___UpdateBillingServiceResponse: _TypeAlias = UpdateBillingServiceResponse -@typing.final -class GetBillingServiceConfigRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class GetBillingServiceConfigRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetBillingServiceConfigRequest = GetBillingServiceConfigRequest +Global___GetBillingServiceConfigRequest: _TypeAlias = GetBillingServiceConfigRequest -@typing.final -class GetBillingServiceConfigResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BILLING_ADDRESS_FIELD_NUMBER: builtins.int - SUPPORT_EMAIL_FIELD_NUMBER: builtins.int - LOGO_URL_FIELD_NUMBER: builtins.int - BILLING_DASHBOARD_URL_FIELD_NUMBER: builtins.int - support_email: builtins.str - logo_url: builtins.str - billing_dashboard_url: builtins.str +@_typing.final +class GetBillingServiceConfigResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + BILLING_ADDRESS_FIELD_NUMBER: _builtins.int + SUPPORT_EMAIL_FIELD_NUMBER: _builtins.int + LOGO_URL_FIELD_NUMBER: _builtins.int + BILLING_DASHBOARD_URL_FIELD_NUMBER: _builtins.int + support_email: _builtins.str + logo_url: _builtins.str + billing_dashboard_url: _builtins.str - @property - def billing_address(self) -> global___BillingAddress: + @_builtins.property + def billing_address(self) -> Global___BillingAddress: ... - def __init__(self, *, billing_address: global___BillingAddress | None=..., support_email: builtins.str=..., logo_url: builtins.str=..., billing_dashboard_url: builtins.str=...) -> None: + def __init__(self, *, billing_address: Global___BillingAddress | None=..., support_email: _builtins.str=..., logo_url: _builtins.str=..., billing_dashboard_url: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['billing_address', b'billing_address'] - def HasField(self, field_name: typing.Literal['billing_address', b'billing_address']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['billing_address', b'billing_address', 'billing_dashboard_url', b'billing_dashboard_url', 'logo_url', b'logo_url', 'support_email', b'support_email'] - def ClearField(self, field_name: typing.Literal['billing_address', b'billing_address', 'billing_dashboard_url', b'billing_dashboard_url', 'logo_url', b'logo_url', 'support_email', b'support_email']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetBillingServiceConfigResponse = GetBillingServiceConfigResponse +Global___GetBillingServiceConfigResponse: _TypeAlias = GetBillingServiceConfigResponse -@typing.final -class DisableBillingServiceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class DisableBillingServiceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DisableBillingServiceRequest = DisableBillingServiceRequest +Global___DisableBillingServiceRequest: _TypeAlias = DisableBillingServiceRequest -@typing.final -class DisableBillingServiceResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DisableBillingServiceResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DisableBillingServiceResponse = DisableBillingServiceResponse +Global___DisableBillingServiceResponse: _TypeAlias = DisableBillingServiceResponse -@typing.final -class OrganizationSetSupportEmailRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - EMAIL_FIELD_NUMBER: builtins.int - org_id: builtins.str - email: builtins.str +@_typing.final +class OrganizationSetSupportEmailRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + EMAIL_FIELD_NUMBER: _builtins.int + org_id: _builtins.str + email: _builtins.str - def __init__(self, *, org_id: builtins.str=..., email: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., email: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['email', b'email', 'org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['email', b'email', 'org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OrganizationSetSupportEmailRequest = OrganizationSetSupportEmailRequest +Global___OrganizationSetSupportEmailRequest: _TypeAlias = OrganizationSetSupportEmailRequest -@typing.final -class OrganizationSetSupportEmailResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class OrganizationSetSupportEmailResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___OrganizationSetSupportEmailResponse = OrganizationSetSupportEmailResponse +Global___OrganizationSetSupportEmailResponse: _TypeAlias = OrganizationSetSupportEmailResponse -@typing.final -class OrganizationGetSupportEmailRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class OrganizationGetSupportEmailRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OrganizationGetSupportEmailRequest = OrganizationGetSupportEmailRequest +Global___OrganizationGetSupportEmailRequest: _TypeAlias = OrganizationGetSupportEmailRequest -@typing.final -class OrganizationGetSupportEmailResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EMAIL_FIELD_NUMBER: builtins.int - email: builtins.str +@_typing.final +class OrganizationGetSupportEmailResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + EMAIL_FIELD_NUMBER: _builtins.int + email: _builtins.str - def __init__(self, *, email: builtins.str=...) -> None: + def __init__(self, *, email: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['email', b'email'] - def ClearField(self, field_name: typing.Literal['email', b'email']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OrganizationGetSupportEmailResponse = OrganizationGetSupportEmailResponse +Global___OrganizationGetSupportEmailResponse: _TypeAlias = OrganizationGetSupportEmailResponse -@typing.final -class OrganizationIdentity(google.protobuf.message.Message): +@_typing.final +class OrganizationIdentity(_message.Message): """Location Used for rendering an organization's information on the frontend (limited to id, name, or both). """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + id: _builtins.str 'Organization ID.' - name: builtins.str + name: _builtins.str 'Organization name.' - def __init__(self, *, id: builtins.str=..., name: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OrganizationIdentity = OrganizationIdentity +Global___OrganizationIdentity: _TypeAlias = OrganizationIdentity -@typing.final -class LocationOrganization(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - PRIMARY_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class LocationOrganization(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + PRIMARY_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str 'Organization ID the location is shared with.' - primary: builtins.bool + primary: _builtins.bool 'Whether the organization is the primary owner or not.' - def __init__(self, *, organization_id: builtins.str=..., primary: builtins.bool=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., primary: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id', 'primary', b'primary'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id', 'primary', b'primary']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LocationOrganization = LocationOrganization +Global___LocationOrganization: _TypeAlias = LocationOrganization + +@_typing.final +class LocationAuth(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SECRET_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + SECRETS_FIELD_NUMBER: _builtins.int + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def secret(self) -> _builtins.str: + """Deprecated: use secrets field.""" -@typing.final -class LocationAuth(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SECRET_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - SECRETS_FIELD_NUMBER: builtins.int - secret: builtins.str - 'Deprecated: use secrets field.' - location_id: builtins.str + @secret.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def secret(self, value: _builtins.str) -> None: + """Deprecated: use secrets field.""" + location_id: _builtins.str 'Location ID containing this LocationAuth.' - @property - def secrets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SharedSecret]: + @_builtins.property + def secrets(self) -> _containers.RepeatedCompositeFieldContainer[Global___SharedSecret]: """List of secrets used to authenticate to the Location.""" - def __init__(self, *, secret: builtins.str=..., location_id: builtins.str=..., secrets: collections.abc.Iterable[global___SharedSecret] | None=...) -> None: + def __init__(self, *, secret: _builtins.str=..., location_id: _builtins.str=..., secrets: _abc.Iterable[Global___SharedSecret] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id', 'secret', b'secret', 'secrets', b'secrets'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id', 'secret', b'secret', 'secrets', b'secrets']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LocationAuth = LocationAuth +Global___LocationAuth: _TypeAlias = LocationAuth -@typing.final -class StorageConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - REGION_FIELD_NUMBER: builtins.int - region: builtins.str +@_typing.final +class StorageConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + REGION_FIELD_NUMBER: _builtins.int + region: _builtins.str 'GCS region that data is stored in.' - def __init__(self, *, region: builtins.str=...) -> None: + def __init__(self, *, region: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['region', b'region'] - def ClearField(self, field_name: typing.Literal['region', b'region']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StorageConfig = StorageConfig +Global___StorageConfig: _TypeAlias = StorageConfig -@typing.final -class Location(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - PARENT_LOCATION_ID_FIELD_NUMBER: builtins.int - AUTH_FIELD_NUMBER: builtins.int - ORGANIZATIONS_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - ROBOT_COUNT_FIELD_NUMBER: builtins.int - CONFIG_FIELD_NUMBER: builtins.int - PRIMARY_ORG_IDENTITY_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class Location(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + PARENT_LOCATION_ID_FIELD_NUMBER: _builtins.int + AUTH_FIELD_NUMBER: _builtins.int + ORGANIZATIONS_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + ROBOT_COUNT_FIELD_NUMBER: _builtins.int + CONFIG_FIELD_NUMBER: _builtins.int + PRIMARY_ORG_IDENTITY_FIELD_NUMBER: _builtins.int + id: _builtins.str 'Location ID.' - name: builtins.str + name: _builtins.str 'Location name.' - parent_location_id: builtins.str + parent_location_id: _builtins.str 'Location ID of the parent location.' - robot_count: builtins.int + robot_count: _builtins.int '' - @property - def auth(self) -> global___LocationAuth: + @_builtins.property + def auth(self) -> Global___LocationAuth: """Location authentication secrets.""" - @property - def organizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LocationOrganization]: + @_builtins.property + def organizations(self) -> _containers.RepeatedCompositeFieldContainer[Global___LocationOrganization]: """Organizations that the location is shared with.""" - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: """Location creation timestamp.""" - @property - def config(self) -> global___StorageConfig: + @_builtins.property + def config(self) -> Global___StorageConfig: """Config for how data in this location is stored.""" - @property - def primary_org_identity(self) -> global___OrganizationIdentity: + @_builtins.property + def primary_org_identity(self) -> Global___OrganizationIdentity: """The organization that is the primary owner of the location.""" - def __init__(self, *, id: builtins.str=..., name: builtins.str=..., parent_location_id: builtins.str=..., auth: global___LocationAuth | None=..., organizations: collections.abc.Iterable[global___LocationOrganization] | None=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., robot_count: builtins.int=..., config: global___StorageConfig | None=..., primary_org_identity: global___OrganizationIdentity | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=..., parent_location_id: _builtins.str=..., auth: Global___LocationAuth | None=..., organizations: _abc.Iterable[Global___LocationOrganization] | None=..., created_on: _timestamp_pb2.Timestamp | None=..., robot_count: _builtins.int=..., config: Global___StorageConfig | None=..., primary_org_identity: Global___OrganizationIdentity | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_primary_org_identity', b'_primary_org_identity', 'auth', b'auth', 'config', b'config', 'created_on', b'created_on', 'primary_org_identity', b'primary_org_identity'] - def HasField(self, field_name: typing.Literal['_primary_org_identity', b'_primary_org_identity', 'auth', b'auth', 'config', b'config', 'created_on', b'created_on', 'primary_org_identity', b'primary_org_identity']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_primary_org_identity', b'_primary_org_identity', 'auth', b'auth', 'config', b'config', 'created_on', b'created_on', 'id', b'id', 'name', b'name', 'organizations', b'organizations', 'parent_location_id', b'parent_location_id', 'primary_org_identity', b'primary_org_identity', 'robot_count', b'robot_count'] - def ClearField(self, field_name: typing.Literal['_primary_org_identity', b'_primary_org_identity', 'auth', b'auth', 'config', b'config', 'created_on', b'created_on', 'id', b'id', 'name', b'name', 'organizations', b'organizations', 'parent_location_id', b'parent_location_id', 'primary_org_identity', b'primary_org_identity', 'robot_count', b'robot_count']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__primary_org_identity: _TypeAlias = _typing.Literal['primary_org_identity'] + _WhichOneofArgType__primary_org_identity: _TypeAlias = _typing.Literal['_primary_org_identity', b'_primary_org_identity'] - def WhichOneof(self, oneof_group: typing.Literal['_primary_org_identity', b'_primary_org_identity']) -> typing.Literal['primary_org_identity'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__primary_org_identity) -> _WhichOneofReturnType__primary_org_identity | None: ... -global___Location = Location +Global___Location: _TypeAlias = Location -@typing.final -class SharedSecret(google.protobuf.message.Message): +@_typing.final +class SharedSecret(_message.Message): """SharedSecret is a secret used for LocationAuth and RobotParts.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor class _State: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType - class _StateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SharedSecret._State.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _StateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[SharedSecret._State.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor STATE_UNSPECIFIED: SharedSecret._State.ValueType STATE_ENABLED: SharedSecret._State.ValueType 'Secret is enabled and can be used in authentication.' @@ -1427,4430 +1536,4862 @@ class SharedSecret(google.protobuf.message.Message): 'Secret is enabled and can be used in authentication.' STATE_DISABLED: SharedSecret.State.ValueType 'Secret is disabled and must not be used to authenticate to rpc.' - ID_FIELD_NUMBER: builtins.int - SECRET_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - STATE_FIELD_NUMBER: builtins.int - id: builtins.str - secret: builtins.str + ID_FIELD_NUMBER: _builtins.int + SECRET_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + STATE_FIELD_NUMBER: _builtins.int + id: _builtins.str + secret: _builtins.str 'The payload of the secret. Used during authentication to the rpc framework.' - state: global___SharedSecret.State.ValueType + state: Global___SharedSecret.State.ValueType 'State of the shared secret. In most cases it should be enabled. We may support\n disabling a specific secret while keeping it in the database.\n ' - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: """Date/time the secret was first created.""" - def __init__(self, *, id: builtins.str=..., secret: builtins.str=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., state: global___SharedSecret.State.ValueType=...) -> None: + def __init__(self, *, id: _builtins.str=..., secret: _builtins.str=..., created_on: _timestamp_pb2.Timestamp | None=..., state: Global___SharedSecret.State.ValueType=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on'] - def HasField(self, field_name: typing.Literal['created_on', b'created_on']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'id', b'id', 'secret', b'secret', 'state', b'state'] - def ClearField(self, field_name: typing.Literal['created_on', b'created_on', 'id', b'id', 'secret', b'secret', 'state', b'state']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SharedSecret = SharedSecret +Global___SharedSecret: _TypeAlias = SharedSecret -@typing.final -class CreateLocationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - PARENT_LOCATION_ID_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class CreateLocationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + PARENT_LOCATION_ID_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str 'Organization ID to create the location under.' - name: builtins.str + name: _builtins.str 'Name of the location.' - parent_location_id: builtins.str + parent_location_id: _builtins.str 'The new parent location to move the location under.' - def __init__(self, *, organization_id: builtins.str=..., name: builtins.str=..., parent_location_id: builtins.str | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., name: _builtins.str=..., parent_location_id: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_parent_location_id', b'_parent_location_id', 'parent_location_id', b'parent_location_id'] - def HasField(self, field_name: typing.Literal['_parent_location_id', b'_parent_location_id', 'parent_location_id', b'parent_location_id']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_parent_location_id', b'_parent_location_id', 'name', b'name', 'organization_id', b'organization_id', 'parent_location_id', b'parent_location_id'] - def ClearField(self, field_name: typing.Literal['_parent_location_id', b'_parent_location_id', 'name', b'name', 'organization_id', b'organization_id', 'parent_location_id', b'parent_location_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__parent_location_id: _TypeAlias = _typing.Literal['parent_location_id'] + _WhichOneofArgType__parent_location_id: _TypeAlias = _typing.Literal['_parent_location_id', b'_parent_location_id'] - def WhichOneof(self, oneof_group: typing.Literal['_parent_location_id', b'_parent_location_id']) -> typing.Literal['parent_location_id'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__parent_location_id) -> _WhichOneofReturnType__parent_location_id | None: ... -global___CreateLocationRequest = CreateLocationRequest +Global___CreateLocationRequest: _TypeAlias = CreateLocationRequest -@typing.final -class CreateLocationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_FIELD_NUMBER: builtins.int +@_typing.final +class CreateLocationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_FIELD_NUMBER: _builtins.int - @property - def location(self) -> global___Location: + @_builtins.property + def location(self) -> Global___Location: """Location object is returned.""" - def __init__(self, *, location: global___Location | None=...) -> None: + def __init__(self, *, location: Global___Location | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['location', b'location'] - def HasField(self, field_name: typing.Literal['location', b'location']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location', b'location'] - def ClearField(self, field_name: typing.Literal['location', b'location']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateLocationResponse = CreateLocationResponse +Global___CreateLocationResponse: _TypeAlias = CreateLocationResponse -@typing.final -class GetLocationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class GetLocationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str 'Location ID of location to get.' - def __init__(self, *, location_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLocationRequest = GetLocationRequest +Global___GetLocationRequest: _TypeAlias = GetLocationRequest -@typing.final -class GetLocationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_FIELD_NUMBER: builtins.int +@_typing.final +class GetLocationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_FIELD_NUMBER: _builtins.int - @property - def location(self) -> global___Location: + @_builtins.property + def location(self) -> Global___Location: """Location object is returned.""" - def __init__(self, *, location: global___Location | None=...) -> None: + def __init__(self, *, location: Global___Location | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['location', b'location'] - def HasField(self, field_name: typing.Literal['location', b'location']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location', b'location'] - def ClearField(self, field_name: typing.Literal['location', b'location']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLocationResponse = GetLocationResponse +Global___GetLocationResponse: _TypeAlias = GetLocationResponse -@typing.final -class UpdateLocationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - PARENT_LOCATION_ID_FIELD_NUMBER: builtins.int - REGION_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class UpdateLocationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + PARENT_LOCATION_ID_FIELD_NUMBER: _builtins.int + REGION_FIELD_NUMBER: _builtins.int + location_id: _builtins.str 'Location ID of location to update.' - name: builtins.str + name: _builtins.str 'The new name to be updated on location.' - parent_location_id: builtins.str + parent_location_id: _builtins.str 'The new parent location to move the location under.' - region: builtins.str + region: _builtins.str 'The new GCS region to associate the location with.' - def __init__(self, *, location_id: builtins.str=..., name: builtins.str | None=..., parent_location_id: builtins.str | None=..., region: builtins.str | None=...) -> None: + def __init__(self, *, location_id: _builtins.str=..., name: _builtins.str | None=..., parent_location_id: _builtins.str | None=..., region: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_name', b'_name', '_parent_location_id', b'_parent_location_id', '_region', b'_region', 'name', b'name', 'parent_location_id', b'parent_location_id', 'region', b'region'] - def HasField(self, field_name: typing.Literal['_name', b'_name', '_parent_location_id', b'_parent_location_id', '_region', b'_region', 'name', b'name', 'parent_location_id', b'parent_location_id', 'region', b'region']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_name', b'_name', '_parent_location_id', b'_parent_location_id', '_region', b'_region', 'location_id', b'location_id', 'name', b'name', 'parent_location_id', b'parent_location_id', 'region', b'region'] - def ClearField(self, field_name: typing.Literal['_name', b'_name', '_parent_location_id', b'_parent_location_id', '_region', b'_region', 'location_id', b'location_id', 'name', b'name', 'parent_location_id', b'parent_location_id', 'region', b'region']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__name: _TypeAlias = _typing.Literal['name'] + _WhichOneofArgType__name: _TypeAlias = _typing.Literal['_name', b'_name'] + _WhichOneofReturnType__parent_location_id: _TypeAlias = _typing.Literal['parent_location_id'] + _WhichOneofArgType__parent_location_id: _TypeAlias = _typing.Literal['_parent_location_id', b'_parent_location_id'] + _WhichOneofReturnType__region: _TypeAlias = _typing.Literal['region'] + _WhichOneofArgType__region: _TypeAlias = _typing.Literal['_region', b'_region'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_name', b'_name']) -> typing.Literal['name'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__name) -> _WhichOneofReturnType__name | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_parent_location_id', b'_parent_location_id']) -> typing.Literal['parent_location_id'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__parent_location_id) -> _WhichOneofReturnType__parent_location_id | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_region', b'_region']) -> typing.Literal['region'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__region) -> _WhichOneofReturnType__region | None: ... -global___UpdateLocationRequest = UpdateLocationRequest +Global___UpdateLocationRequest: _TypeAlias = UpdateLocationRequest -@typing.final -class UpdateLocationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_FIELD_NUMBER: builtins.int +@_typing.final +class UpdateLocationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_FIELD_NUMBER: _builtins.int - @property - def location(self) -> global___Location: + @_builtins.property + def location(self) -> Global___Location: """Location object is returned.""" - def __init__(self, *, location: global___Location | None=...) -> None: + def __init__(self, *, location: Global___Location | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['location', b'location'] - def HasField(self, field_name: typing.Literal['location', b'location']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location', b'location'] - def ClearField(self, field_name: typing.Literal['location', b'location']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateLocationResponse = UpdateLocationResponse +Global___UpdateLocationResponse: _TypeAlias = UpdateLocationResponse -@typing.final -class DeleteLocationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class DeleteLocationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str 'Location ID of location to delete.' - def __init__(self, *, location_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteLocationRequest = DeleteLocationRequest +Global___DeleteLocationRequest: _TypeAlias = DeleteLocationRequest -@typing.final -class DeleteLocationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteLocationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteLocationResponse = DeleteLocationResponse +Global___DeleteLocationResponse: _TypeAlias = DeleteLocationResponse -@typing.final -class GetLocationMetadataRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class GetLocationMetadataRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str - def __init__(self, *, location_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLocationMetadataRequest = GetLocationMetadataRequest +Global___GetLocationMetadataRequest: _TypeAlias = GetLocationMetadataRequest -@typing.final -class GetLocationMetadataResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class GetLocationMetadataResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def data(self) -> _struct_pb2.Struct: ... - def __init__(self, *, data: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, data: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def HasField(self, field_name: typing.Literal['data', b'data']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLocationMetadataResponse = GetLocationMetadataResponse +Global___GetLocationMetadataResponse: _TypeAlias = GetLocationMetadataResponse -@typing.final -class UpdateLocationMetadataRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - DATA_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class UpdateLocationMetadataRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + DATA_FIELD_NUMBER: _builtins.int + location_id: _builtins.str - @property - def data(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def data(self) -> _struct_pb2.Struct: ... - def __init__(self, *, location_id: builtins.str=..., data: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, location_id: _builtins.str=..., data: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def HasField(self, field_name: typing.Literal['data', b'data']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data', 'location_id', b'location_id'] - def ClearField(self, field_name: typing.Literal['data', b'data', 'location_id', b'location_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateLocationMetadataRequest = UpdateLocationMetadataRequest +Global___UpdateLocationMetadataRequest: _TypeAlias = UpdateLocationMetadataRequest -@typing.final -class UpdateLocationMetadataResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateLocationMetadataResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UpdateLocationMetadataResponse = UpdateLocationMetadataResponse +Global___UpdateLocationMetadataResponse: _TypeAlias = UpdateLocationMetadataResponse -@typing.final -class GetOrganizationsWithAccessToLocationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class GetOrganizationsWithAccessToLocationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str - def __init__(self, *, location_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOrganizationsWithAccessToLocationRequest = GetOrganizationsWithAccessToLocationRequest +Global___GetOrganizationsWithAccessToLocationRequest: _TypeAlias = GetOrganizationsWithAccessToLocationRequest -@typing.final -class GetOrganizationsWithAccessToLocationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_IDENTITIES_FIELD_NUMBER: builtins.int +@_typing.final +class GetOrganizationsWithAccessToLocationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_IDENTITIES_FIELD_NUMBER: _builtins.int - @property - def organization_identities(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___OrganizationIdentity]: + @_builtins.property + def organization_identities(self) -> _containers.RepeatedCompositeFieldContainer[Global___OrganizationIdentity]: ... - def __init__(self, *, organization_identities: collections.abc.Iterable[global___OrganizationIdentity] | None=...) -> None: + def __init__(self, *, organization_identities: _abc.Iterable[Global___OrganizationIdentity] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_identities', b'organization_identities'] - def ClearField(self, field_name: typing.Literal['organization_identities', b'organization_identities']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOrganizationsWithAccessToLocationResponse = GetOrganizationsWithAccessToLocationResponse +Global___GetOrganizationsWithAccessToLocationResponse: _TypeAlias = GetOrganizationsWithAccessToLocationResponse -@typing.final -class ListLocationsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class ListLocationsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str 'Organization ID under which to list all locations.' - def __init__(self, *, organization_id: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListLocationsRequest = ListLocationsRequest +Global___ListLocationsRequest: _TypeAlias = ListLocationsRequest -@typing.final -class ShareLocationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class ShareLocationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str 'Location ID to be shared.' - organization_id: builtins.str + organization_id: _builtins.str 'Organization ID to share the location with.' - def __init__(self, *, location_id: builtins.str=..., organization_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=..., organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ShareLocationRequest = ShareLocationRequest +Global___ShareLocationRequest: _TypeAlias = ShareLocationRequest -@typing.final -class ShareLocationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ShareLocationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ShareLocationResponse = ShareLocationResponse +Global___ShareLocationResponse: _TypeAlias = ShareLocationResponse -@typing.final -class UnshareLocationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class UnshareLocationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str 'Location ID to be unshared.' - organization_id: builtins.str + organization_id: _builtins.str 'Organization ID to unshare the location with.' - def __init__(self, *, location_id: builtins.str=..., organization_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=..., organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UnshareLocationRequest = UnshareLocationRequest +Global___UnshareLocationRequest: _TypeAlias = UnshareLocationRequest -@typing.final -class UnshareLocationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UnshareLocationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UnshareLocationResponse = UnshareLocationResponse +Global___UnshareLocationResponse: _TypeAlias = UnshareLocationResponse -@typing.final -class ListLocationsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATIONS_FIELD_NUMBER: builtins.int +@_typing.final +class ListLocationsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATIONS_FIELD_NUMBER: _builtins.int - @property - def locations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Location]: + @_builtins.property + def locations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Location]: ... - def __init__(self, *, locations: collections.abc.Iterable[global___Location] | None=...) -> None: + def __init__(self, *, locations: _abc.Iterable[Global___Location] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['locations', b'locations'] - def ClearField(self, field_name: typing.Literal['locations', b'locations']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListLocationsResponse = ListLocationsResponse +Global___ListLocationsResponse: _TypeAlias = ListLocationsResponse -@typing.final -class CreateLocationSecretRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class CreateLocationSecretRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str 'Location ID to create the secret in.' - def __init__(self, *, location_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateLocationSecretRequest = CreateLocationSecretRequest +Global___CreateLocationSecretRequest: _TypeAlias = CreateLocationSecretRequest -@typing.final -class CreateLocationSecretResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AUTH_FIELD_NUMBER: builtins.int +@_typing.final +class CreateLocationSecretResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AUTH_FIELD_NUMBER: _builtins.int - @property - def auth(self) -> global___LocationAuth: + @_builtins.property + def auth(self) -> Global___LocationAuth: """Location's auth after updates.""" - def __init__(self, *, auth: global___LocationAuth | None=...) -> None: + def __init__(self, *, auth: Global___LocationAuth | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['auth', b'auth'] - def HasField(self, field_name: typing.Literal['auth', b'auth']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['auth', b'auth'] - def ClearField(self, field_name: typing.Literal['auth', b'auth']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateLocationSecretResponse = CreateLocationSecretResponse +Global___CreateLocationSecretResponse: _TypeAlias = CreateLocationSecretResponse -@typing.final -class DeleteLocationSecretRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - SECRET_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str - secret_id: builtins.str +@_typing.final +class DeleteLocationSecretRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + SECRET_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str + secret_id: _builtins.str - def __init__(self, *, location_id: builtins.str=..., secret_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=..., secret_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id', 'secret_id', b'secret_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id', 'secret_id', b'secret_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteLocationSecretRequest = DeleteLocationSecretRequest +Global___DeleteLocationSecretRequest: _TypeAlias = DeleteLocationSecretRequest -@typing.final -class DeleteLocationSecretResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteLocationSecretResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteLocationSecretResponse = DeleteLocationSecretResponse +Global___DeleteLocationSecretResponse: _TypeAlias = DeleteLocationSecretResponse -@typing.final -class LocationAuthRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class LocationAuthRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str - def __init__(self, *, location_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LocationAuthRequest = LocationAuthRequest +Global___LocationAuthRequest: _TypeAlias = LocationAuthRequest -@typing.final -class LocationAuthResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AUTH_FIELD_NUMBER: builtins.int +@_typing.final +class LocationAuthResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AUTH_FIELD_NUMBER: _builtins.int - @property - def auth(self) -> global___LocationAuth: + @_builtins.property + def auth(self) -> Global___LocationAuth: ... - def __init__(self, *, auth: global___LocationAuth | None=...) -> None: + def __init__(self, *, auth: Global___LocationAuth | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['auth', b'auth'] - def HasField(self, field_name: typing.Literal['auth', b'auth']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['auth', b'auth'] - def ClearField(self, field_name: typing.Literal['auth', b'auth']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LocationAuthResponse = LocationAuthResponse +Global___LocationAuthResponse: _TypeAlias = LocationAuthResponse -@typing.final -class GetRobotRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class GetRobotRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotRequest = GetRobotRequest +Global___GetRobotRequest: _TypeAlias = GetRobotRequest -@typing.final -class GetRoverRentalRobotsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class GetRoverRentalRobotsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRoverRentalRobotsRequest = GetRoverRentalRobotsRequest +Global___GetRoverRentalRobotsRequest: _TypeAlias = GetRoverRentalRobotsRequest -@typing.final -class RoverRentalRobot(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOT_ID_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - ROBOT_NAME_FIELD_NUMBER: builtins.int - ROBOT_MAIN_PART_ID_FIELD_NUMBER: builtins.int - robot_id: builtins.str - location_id: builtins.str - robot_name: builtins.str - robot_main_part_id: builtins.str +@_typing.final +class RoverRentalRobot(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ROBOT_ID_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + ROBOT_NAME_FIELD_NUMBER: _builtins.int + ROBOT_MAIN_PART_ID_FIELD_NUMBER: _builtins.int + robot_id: _builtins.str + location_id: _builtins.str + robot_name: _builtins.str + robot_main_part_id: _builtins.str - def __init__(self, *, robot_id: builtins.str=..., location_id: builtins.str=..., robot_name: builtins.str=..., robot_main_part_id: builtins.str=...) -> None: + def __init__(self, *, robot_id: _builtins.str=..., location_id: _builtins.str=..., robot_name: _builtins.str=..., robot_main_part_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id', 'robot_id', b'robot_id', 'robot_main_part_id', b'robot_main_part_id', 'robot_name', b'robot_name'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id', 'robot_id', b'robot_id', 'robot_main_part_id', b'robot_main_part_id', 'robot_name', b'robot_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RoverRentalRobot = RoverRentalRobot +Global___RoverRentalRobot: _TypeAlias = RoverRentalRobot -@typing.final -class GetRoverRentalRobotsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOTS_FIELD_NUMBER: builtins.int +@_typing.final +class GetRoverRentalRobotsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ROBOTS_FIELD_NUMBER: _builtins.int - @property - def robots(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RoverRentalRobot]: + @_builtins.property + def robots(self) -> _containers.RepeatedCompositeFieldContainer[Global___RoverRentalRobot]: ... - def __init__(self, *, robots: collections.abc.Iterable[global___RoverRentalRobot] | None=...) -> None: + def __init__(self, *, robots: _abc.Iterable[Global___RoverRentalRobot] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['robots', b'robots'] - def ClearField(self, field_name: typing.Literal['robots', b'robots']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRoverRentalRobotsResponse = GetRoverRentalRobotsResponse +Global___GetRoverRentalRobotsResponse: _TypeAlias = GetRoverRentalRobotsResponse -@typing.final -class GetRobotResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOT_FIELD_NUMBER: builtins.int +@_typing.final +class GetRobotResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ROBOT_FIELD_NUMBER: _builtins.int - @property - def robot(self) -> global___Robot: + @_builtins.property + def robot(self) -> Global___Robot: ... - def __init__(self, *, robot: global___Robot | None=...) -> None: + def __init__(self, *, robot: Global___Robot | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['robot', b'robot'] - def HasField(self, field_name: typing.Literal['robot', b'robot']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['robot', b'robot'] - def ClearField(self, field_name: typing.Literal['robot', b'robot']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotResponse = GetRobotResponse +Global___GetRobotResponse: _TypeAlias = GetRobotResponse -@typing.final -class GetRobotPartsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOT_ID_FIELD_NUMBER: builtins.int - robot_id: builtins.str +@_typing.final +class GetRobotPartsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ROBOT_ID_FIELD_NUMBER: _builtins.int + robot_id: _builtins.str - def __init__(self, *, robot_id: builtins.str=...) -> None: + def __init__(self, *, robot_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['robot_id', b'robot_id'] - def ClearField(self, field_name: typing.Literal['robot_id', b'robot_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotPartsRequest = GetRobotPartsRequest +Global___GetRobotPartsRequest: _TypeAlias = GetRobotPartsRequest -@typing.final -class GetRobotPartsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTS_FIELD_NUMBER: builtins.int +@_typing.final +class GetRobotPartsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PARTS_FIELD_NUMBER: _builtins.int - @property - def parts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RobotPart]: + @_builtins.property + def parts(self) -> _containers.RepeatedCompositeFieldContainer[Global___RobotPart]: ... - def __init__(self, *, parts: collections.abc.Iterable[global___RobotPart] | None=...) -> None: + def __init__(self, *, parts: _abc.Iterable[Global___RobotPart] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['parts', b'parts'] - def ClearField(self, field_name: typing.Literal['parts', b'parts']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotPartsResponse = GetRobotPartsResponse +Global___GetRobotPartsResponse: _TypeAlias = GetRobotPartsResponse -@typing.final -class GetRobotPartRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class GetRobotPartRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotPartRequest = GetRobotPartRequest +Global___GetRobotPartRequest: _TypeAlias = GetRobotPartRequest -@typing.final -class GetRobotPartResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_FIELD_NUMBER: builtins.int - CONFIG_JSON_FIELD_NUMBER: builtins.int - config_json: builtins.str +@_typing.final +class GetRobotPartResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_FIELD_NUMBER: _builtins.int + CONFIG_JSON_FIELD_NUMBER: _builtins.int + config_json: _builtins.str - @property - def part(self) -> global___RobotPart: + @_builtins.property + def part(self) -> Global___RobotPart: ... - def __init__(self, *, part: global___RobotPart | None=..., config_json: builtins.str=...) -> None: + def __init__(self, *, part: Global___RobotPart | None=..., config_json: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['part', b'part'] - def HasField(self, field_name: typing.Literal['part', b'part']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['config_json', b'config_json', 'part', b'part'] - def ClearField(self, field_name: typing.Literal['config_json', b'config_json', 'part', b'part']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotPartResponse = GetRobotPartResponse +Global___GetRobotPartResponse: _TypeAlias = GetRobotPartResponse -@typing.final -class GetRobotPartByNameAndLocationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - name: builtins.str - location_id: builtins.str +@_typing.final +class GetRobotPartByNameAndLocationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + name: _builtins.str + location_id: _builtins.str - def __init__(self, *, name: builtins.str=..., location_id: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=..., location_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotPartByNameAndLocationRequest = GetRobotPartByNameAndLocationRequest +Global___GetRobotPartByNameAndLocationRequest: _TypeAlias = GetRobotPartByNameAndLocationRequest -@typing.final -class GetRobotPartByNameAndLocationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_FIELD_NUMBER: builtins.int +@_typing.final +class GetRobotPartByNameAndLocationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_FIELD_NUMBER: _builtins.int - @property - def part(self) -> global___RobotPart: + @_builtins.property + def part(self) -> Global___RobotPart: ... - def __init__(self, *, part: global___RobotPart | None=...) -> None: + def __init__(self, *, part: Global___RobotPart | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['part', b'part'] - def HasField(self, field_name: typing.Literal['part', b'part']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['part', b'part'] - def ClearField(self, field_name: typing.Literal['part', b'part']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotPartByNameAndLocationResponse = GetRobotPartByNameAndLocationResponse +Global___GetRobotPartByNameAndLocationResponse: _TypeAlias = GetRobotPartByNameAndLocationResponse -@typing.final -class GetRobotPartLogsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - ERRORS_ONLY_FIELD_NUMBER: builtins.int - FILTER_FIELD_NUMBER: builtins.int - PAGE_TOKEN_FIELD_NUMBER: builtins.int - LEVELS_FIELD_NUMBER: builtins.int - START_FIELD_NUMBER: builtins.int - END_FIELD_NUMBER: builtins.int - LIMIT_FIELD_NUMBER: builtins.int - SOURCE_FIELD_NUMBER: builtins.int - USER_FACING_ONLY_FIELD_NUMBER: builtins.int - id: builtins.str - errors_only: builtins.bool - 'TODO(https://viam.atlassian.net/browse/APP-3877): Remove this field' - filter: builtins.str - page_token: builtins.str - limit: builtins.int - source: builtins.str - user_facing_only: builtins.bool +@_typing.final +class GetRobotPartLogsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + ERRORS_ONLY_FIELD_NUMBER: _builtins.int + FILTER_FIELD_NUMBER: _builtins.int + PAGE_TOKEN_FIELD_NUMBER: _builtins.int + LEVELS_FIELD_NUMBER: _builtins.int + START_FIELD_NUMBER: _builtins.int + END_FIELD_NUMBER: _builtins.int + LIMIT_FIELD_NUMBER: _builtins.int + SOURCE_FIELD_NUMBER: _builtins.int + USER_FACING_ONLY_FIELD_NUMBER: _builtins.int + id: _builtins.str - @property - def levels(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def errors_only(self) -> _builtins.bool: + """TODO(https://viam.atlassian.net/browse/APP-3877): Remove this field""" + + @errors_only.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def errors_only(self, value: _builtins.bool) -> None: + """TODO(https://viam.atlassian.net/browse/APP-3877): Remove this field""" + filter: _builtins.str + page_token: _builtins.str + limit: _builtins.int + source: _builtins.str + user_facing_only: _builtins.bool + + @_builtins.property + def levels(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """logs of all levels are returned when the levels field is empty""" - @property - def start(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def start(self) -> _timestamp_pb2.Timestamp: ... - @property - def end(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def end(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, id: builtins.str=..., errors_only: builtins.bool=..., filter: builtins.str | None=..., page_token: builtins.str | None=..., levels: collections.abc.Iterable[builtins.str] | None=..., start: google.protobuf.timestamp_pb2.Timestamp | None=..., end: google.protobuf.timestamp_pb2.Timestamp | None=..., limit: builtins.int | None=..., source: builtins.str | None=..., user_facing_only: builtins.bool | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., errors_only: _builtins.bool=..., filter: _builtins.str | None=..., page_token: _builtins.str | None=..., levels: _abc.Iterable[_builtins.str] | None=..., start: _timestamp_pb2.Timestamp | None=..., end: _timestamp_pb2.Timestamp | None=..., limit: _builtins.int | None=..., source: _builtins.str | None=..., user_facing_only: _builtins.bool | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_end', b'_end', '_filter', b'_filter', '_limit', b'_limit', '_page_token', b'_page_token', '_source', b'_source', '_start', b'_start', '_user_facing_only', b'_user_facing_only', 'end', b'end', 'filter', b'filter', 'limit', b'limit', 'page_token', b'page_token', 'source', b'source', 'start', b'start', 'user_facing_only', b'user_facing_only'] - def HasField(self, field_name: typing.Literal['_end', b'_end', '_filter', b'_filter', '_limit', b'_limit', '_page_token', b'_page_token', '_source', b'_source', '_start', b'_start', '_user_facing_only', b'_user_facing_only', 'end', b'end', 'filter', b'filter', 'limit', b'limit', 'page_token', b'page_token', 'source', b'source', 'start', b'start', 'user_facing_only', b'user_facing_only']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_end', b'_end', '_filter', b'_filter', '_limit', b'_limit', '_page_token', b'_page_token', '_source', b'_source', '_start', b'_start', '_user_facing_only', b'_user_facing_only', 'end', b'end', 'errors_only', b'errors_only', 'filter', b'filter', 'id', b'id', 'levels', b'levels', 'limit', b'limit', 'page_token', b'page_token', 'source', b'source', 'start', b'start', 'user_facing_only', b'user_facing_only'] - def ClearField(self, field_name: typing.Literal['_end', b'_end', '_filter', b'_filter', '_limit', b'_limit', '_page_token', b'_page_token', '_source', b'_source', '_start', b'_start', '_user_facing_only', b'_user_facing_only', 'end', b'end', 'errors_only', b'errors_only', 'filter', b'filter', 'id', b'id', 'levels', b'levels', 'limit', b'limit', 'page_token', b'page_token', 'source', b'source', 'start', b'start', 'user_facing_only', b'user_facing_only']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__end: _TypeAlias = _typing.Literal['end'] + _WhichOneofArgType__end: _TypeAlias = _typing.Literal['_end', b'_end'] + _WhichOneofReturnType__filter: _TypeAlias = _typing.Literal['filter'] + _WhichOneofArgType__filter: _TypeAlias = _typing.Literal['_filter', b'_filter'] + _WhichOneofReturnType__limit: _TypeAlias = _typing.Literal['limit'] + _WhichOneofArgType__limit: _TypeAlias = _typing.Literal['_limit', b'_limit'] + _WhichOneofReturnType__page_token: _TypeAlias = _typing.Literal['page_token'] + _WhichOneofArgType__page_token: _TypeAlias = _typing.Literal['_page_token', b'_page_token'] + _WhichOneofReturnType__source: _TypeAlias = _typing.Literal['source'] + _WhichOneofArgType__source: _TypeAlias = _typing.Literal['_source', b'_source'] + _WhichOneofReturnType__start: _TypeAlias = _typing.Literal['start'] + _WhichOneofArgType__start: _TypeAlias = _typing.Literal['_start', b'_start'] + _WhichOneofReturnType__user_facing_only: _TypeAlias = _typing.Literal['user_facing_only'] + _WhichOneofArgType__user_facing_only: _TypeAlias = _typing.Literal['_user_facing_only', b'_user_facing_only'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_end', b'_end']) -> typing.Literal['end'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__end) -> _WhichOneofReturnType__end | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_filter', b'_filter']) -> typing.Literal['filter'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__filter) -> _WhichOneofReturnType__filter | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_limit', b'_limit']) -> typing.Literal['limit'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__limit) -> _WhichOneofReturnType__limit | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_page_token', b'_page_token']) -> typing.Literal['page_token'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__page_token) -> _WhichOneofReturnType__page_token | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_source', b'_source']) -> typing.Literal['source'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__source) -> _WhichOneofReturnType__source | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_start', b'_start']) -> typing.Literal['start'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__start) -> _WhichOneofReturnType__start | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_user_facing_only', b'_user_facing_only']) -> typing.Literal['user_facing_only'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__user_facing_only) -> _WhichOneofReturnType__user_facing_only | None: ... -global___GetRobotPartLogsRequest = GetRobotPartLogsRequest +Global___GetRobotPartLogsRequest: _TypeAlias = GetRobotPartLogsRequest -@typing.final -class GetRobotPartLogsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOGS_FIELD_NUMBER: builtins.int - NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int - next_page_token: builtins.str +@_typing.final +class GetRobotPartLogsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOGS_FIELD_NUMBER: _builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: _builtins.int + next_page_token: _builtins.str - @property - def logs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.LogEntry]: + @_builtins.property + def logs(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.LogEntry]: ... - def __init__(self, *, logs: collections.abc.Iterable[common.v1.common_pb2.LogEntry] | None=..., next_page_token: builtins.str=...) -> None: + def __init__(self, *, logs: _abc.Iterable[_common_pb2.LogEntry] | None=..., next_page_token: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['logs', b'logs', 'next_page_token', b'next_page_token'] - def ClearField(self, field_name: typing.Literal['logs', b'logs', 'next_page_token', b'next_page_token']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotPartLogsResponse = GetRobotPartLogsResponse +Global___GetRobotPartLogsResponse: _TypeAlias = GetRobotPartLogsResponse -@typing.final -class TailRobotPartLogsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - ERRORS_ONLY_FIELD_NUMBER: builtins.int - FILTER_FIELD_NUMBER: builtins.int - id: builtins.str - errors_only: builtins.bool - filter: builtins.str +@_typing.final +class TailRobotPartLogsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + ERRORS_ONLY_FIELD_NUMBER: _builtins.int + FILTER_FIELD_NUMBER: _builtins.int + id: _builtins.str + errors_only: _builtins.bool + filter: _builtins.str - def __init__(self, *, id: builtins.str=..., errors_only: builtins.bool=..., filter: builtins.str | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., errors_only: _builtins.bool=..., filter: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_filter', b'_filter', 'filter', b'filter'] - def HasField(self, field_name: typing.Literal['_filter', b'_filter', 'filter', b'filter']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_filter', b'_filter', 'errors_only', b'errors_only', 'filter', b'filter', 'id', b'id'] - def ClearField(self, field_name: typing.Literal['_filter', b'_filter', 'errors_only', b'errors_only', 'filter', b'filter', 'id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__filter: _TypeAlias = _typing.Literal['filter'] + _WhichOneofArgType__filter: _TypeAlias = _typing.Literal['_filter', b'_filter'] - def WhichOneof(self, oneof_group: typing.Literal['_filter', b'_filter']) -> typing.Literal['filter'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__filter) -> _WhichOneofReturnType__filter | None: ... -global___TailRobotPartLogsRequest = TailRobotPartLogsRequest +Global___TailRobotPartLogsRequest: _TypeAlias = TailRobotPartLogsRequest -@typing.final -class TailRobotPartLogsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOGS_FIELD_NUMBER: builtins.int +@_typing.final +class TailRobotPartLogsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOGS_FIELD_NUMBER: _builtins.int - @property - def logs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.LogEntry]: + @_builtins.property + def logs(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.LogEntry]: ... - def __init__(self, *, logs: collections.abc.Iterable[common.v1.common_pb2.LogEntry] | None=...) -> None: + def __init__(self, *, logs: _abc.Iterable[_common_pb2.LogEntry] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['logs', b'logs'] - def ClearField(self, field_name: typing.Literal['logs', b'logs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TailRobotPartLogsResponse = TailRobotPartLogsResponse +Global___TailRobotPartLogsResponse: _TypeAlias = TailRobotPartLogsResponse -@typing.final -class GetRobotPartHistoryRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class GetRobotPartHistoryRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotPartHistoryRequest = GetRobotPartHistoryRequest +Global___GetRobotPartHistoryRequest: _TypeAlias = GetRobotPartHistoryRequest -@typing.final -class GetRobotPartHistoryResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HISTORY_FIELD_NUMBER: builtins.int +@_typing.final +class GetRobotPartHistoryResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + HISTORY_FIELD_NUMBER: _builtins.int - @property - def history(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RobotPartHistoryEntry]: + @_builtins.property + def history(self) -> _containers.RepeatedCompositeFieldContainer[Global___RobotPartHistoryEntry]: ... - def __init__(self, *, history: collections.abc.Iterable[global___RobotPartHistoryEntry] | None=...) -> None: + def __init__(self, *, history: _abc.Iterable[Global___RobotPartHistoryEntry] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['history', b'history'] - def ClearField(self, field_name: typing.Literal['history', b'history']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotPartHistoryResponse = GetRobotPartHistoryResponse +Global___GetRobotPartHistoryResponse: _TypeAlias = GetRobotPartHistoryResponse -@typing.final -class UpdateRobotPartRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - ROBOT_CONFIG_FIELD_NUMBER: builtins.int - LAST_KNOWN_UPDATE_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str +@_typing.final +class UpdateRobotPartRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + ROBOT_CONFIG_FIELD_NUMBER: _builtins.int + LAST_KNOWN_UPDATE_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str - @property - def robot_config(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def robot_config(self) -> _struct_pb2.Struct: ... - @property - def last_known_update(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_known_update(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, id: builtins.str=..., name: builtins.str=..., robot_config: google.protobuf.struct_pb2.Struct | None=..., last_known_update: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=..., robot_config: _struct_pb2.Struct | None=..., last_known_update: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_last_known_update', b'_last_known_update', 'last_known_update', b'last_known_update', 'robot_config', b'robot_config'] - def HasField(self, field_name: typing.Literal['_last_known_update', b'_last_known_update', 'last_known_update', b'last_known_update', 'robot_config', b'robot_config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_last_known_update', b'_last_known_update', 'id', b'id', 'last_known_update', b'last_known_update', 'name', b'name', 'robot_config', b'robot_config'] - def ClearField(self, field_name: typing.Literal['_last_known_update', b'_last_known_update', 'id', b'id', 'last_known_update', b'last_known_update', 'name', b'name', 'robot_config', b'robot_config']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__last_known_update: _TypeAlias = _typing.Literal['last_known_update'] + _WhichOneofArgType__last_known_update: _TypeAlias = _typing.Literal['_last_known_update', b'_last_known_update'] - def WhichOneof(self, oneof_group: typing.Literal['_last_known_update', b'_last_known_update']) -> typing.Literal['last_known_update'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__last_known_update) -> _WhichOneofReturnType__last_known_update | None: ... -global___UpdateRobotPartRequest = UpdateRobotPartRequest +Global___UpdateRobotPartRequest: _TypeAlias = UpdateRobotPartRequest -@typing.final -class UpdateRobotPartResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_FIELD_NUMBER: builtins.int +@_typing.final +class UpdateRobotPartResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_FIELD_NUMBER: _builtins.int - @property - def part(self) -> global___RobotPart: + @_builtins.property + def part(self) -> Global___RobotPart: ... - def __init__(self, *, part: global___RobotPart | None=...) -> None: + def __init__(self, *, part: Global___RobotPart | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['part', b'part'] - def HasField(self, field_name: typing.Literal['part', b'part']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['part', b'part'] - def ClearField(self, field_name: typing.Literal['part', b'part']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateRobotPartResponse = UpdateRobotPartResponse +Global___UpdateRobotPartResponse: _TypeAlias = UpdateRobotPartResponse -@typing.final -class NewRobotPartRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOT_ID_FIELD_NUMBER: builtins.int - PART_NAME_FIELD_NUMBER: builtins.int - robot_id: builtins.str - part_name: builtins.str +@_typing.final +class NewRobotPartRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ROBOT_ID_FIELD_NUMBER: _builtins.int + PART_NAME_FIELD_NUMBER: _builtins.int + robot_id: _builtins.str + part_name: _builtins.str - def __init__(self, *, robot_id: builtins.str=..., part_name: builtins.str=...) -> None: + def __init__(self, *, robot_id: _builtins.str=..., part_name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['part_name', b'part_name', 'robot_id', b'robot_id'] - def ClearField(self, field_name: typing.Literal['part_name', b'part_name', 'robot_id', b'robot_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___NewRobotPartRequest = NewRobotPartRequest +Global___NewRobotPartRequest: _TypeAlias = NewRobotPartRequest -@typing.final -class NewRobotPartResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_ID_FIELD_NUMBER: builtins.int - part_id: builtins.str +@_typing.final +class NewRobotPartResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_ID_FIELD_NUMBER: _builtins.int + part_id: _builtins.str - def __init__(self, *, part_id: builtins.str=...) -> None: + def __init__(self, *, part_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['part_id', b'part_id'] - def ClearField(self, field_name: typing.Literal['part_id', b'part_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___NewRobotPartResponse = NewRobotPartResponse +Global___NewRobotPartResponse: _TypeAlias = NewRobotPartResponse -@typing.final -class DeleteRobotPartRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_ID_FIELD_NUMBER: builtins.int - part_id: builtins.str +@_typing.final +class DeleteRobotPartRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_ID_FIELD_NUMBER: _builtins.int + part_id: _builtins.str - def __init__(self, *, part_id: builtins.str=...) -> None: + def __init__(self, *, part_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['part_id', b'part_id'] - def ClearField(self, field_name: typing.Literal['part_id', b'part_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteRobotPartRequest = DeleteRobotPartRequest +Global___DeleteRobotPartRequest: _TypeAlias = DeleteRobotPartRequest -@typing.final -class GetRobotPartMetadataRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class GetRobotPartMetadataRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotPartMetadataRequest = GetRobotPartMetadataRequest +Global___GetRobotPartMetadataRequest: _TypeAlias = GetRobotPartMetadataRequest -@typing.final -class GetRobotPartMetadataResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class GetRobotPartMetadataResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def data(self) -> _struct_pb2.Struct: ... - def __init__(self, *, data: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, data: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def HasField(self, field_name: typing.Literal['data', b'data']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotPartMetadataResponse = GetRobotPartMetadataResponse +Global___GetRobotPartMetadataResponse: _TypeAlias = GetRobotPartMetadataResponse -@typing.final -class UpdateRobotPartMetadataRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - DATA_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class UpdateRobotPartMetadataRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + DATA_FIELD_NUMBER: _builtins.int + id: _builtins.str - @property - def data(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def data(self) -> _struct_pb2.Struct: ... - def __init__(self, *, id: builtins.str=..., data: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., data: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def HasField(self, field_name: typing.Literal['data', b'data']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data', 'id', b'id'] - def ClearField(self, field_name: typing.Literal['data', b'data', 'id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateRobotPartMetadataRequest = UpdateRobotPartMetadataRequest +Global___UpdateRobotPartMetadataRequest: _TypeAlias = UpdateRobotPartMetadataRequest -@typing.final -class UpdateRobotPartMetadataResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateRobotPartMetadataResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UpdateRobotPartMetadataResponse = UpdateRobotPartMetadataResponse +Global___UpdateRobotPartMetadataResponse: _TypeAlias = UpdateRobotPartMetadataResponse -@typing.final -class GetRobotAPIKeysRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOT_ID_FIELD_NUMBER: builtins.int - robot_id: builtins.str +@_typing.final +class GetRobotAPIKeysRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ROBOT_ID_FIELD_NUMBER: _builtins.int + robot_id: _builtins.str - def __init__(self, *, robot_id: builtins.str=...) -> None: + def __init__(self, *, robot_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['robot_id', b'robot_id'] - def ClearField(self, field_name: typing.Literal['robot_id', b'robot_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotAPIKeysRequest = GetRobotAPIKeysRequest +Global___GetRobotAPIKeysRequest: _TypeAlias = GetRobotAPIKeysRequest -@typing.final -class APIKey(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - KEY_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - id: builtins.str - key: builtins.str - name: builtins.str +@_typing.final +class APIKey(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + KEY_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + id: _builtins.str + key: _builtins.str + name: _builtins.str - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, id: builtins.str=..., key: builtins.str=..., name: builtins.str=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., key: _builtins.str=..., name: _builtins.str=..., created_on: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on'] - def HasField(self, field_name: typing.Literal['created_on', b'created_on']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'id', b'id', 'key', b'key', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['created_on', b'created_on', 'id', b'id', 'key', b'key', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___APIKey = APIKey +Global___APIKey: _TypeAlias = APIKey -@typing.final -class GetRobotAPIKeysResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - API_KEYS_FIELD_NUMBER: builtins.int +@_typing.final +class GetRobotAPIKeysResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + API_KEYS_FIELD_NUMBER: _builtins.int - @property - def api_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___APIKeyWithAuthorizations]: + @_builtins.property + def api_keys(self) -> _containers.RepeatedCompositeFieldContainer[Global___APIKeyWithAuthorizations]: ... - def __init__(self, *, api_keys: collections.abc.Iterable[global___APIKeyWithAuthorizations] | None=...) -> None: + def __init__(self, *, api_keys: _abc.Iterable[Global___APIKeyWithAuthorizations] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['api_keys', b'api_keys'] - def ClearField(self, field_name: typing.Literal['api_keys', b'api_keys']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotAPIKeysResponse = GetRobotAPIKeysResponse +Global___GetRobotAPIKeysResponse: _TypeAlias = GetRobotAPIKeysResponse -@typing.final -class DeleteRobotPartResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteRobotPartResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteRobotPartResponse = DeleteRobotPartResponse - -@typing.final -class Fragment(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - FRAGMENT_FIELD_NUMBER: builtins.int - ORGANIZATION_OWNER_FIELD_NUMBER: builtins.int - PUBLIC_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - ORGANIZATION_NAME_FIELD_NUMBER: builtins.int - ROBOT_PART_COUNT_FIELD_NUMBER: builtins.int - ORGANIZATION_COUNT_FIELD_NUMBER: builtins.int - ONLY_USED_BY_OWNER_FIELD_NUMBER: builtins.int - VISIBILITY_FIELD_NUMBER: builtins.int - LAST_UPDATED_FIELD_NUMBER: builtins.int - REVISION_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str - organization_owner: builtins.str - public: builtins.bool - organization_name: builtins.str - robot_part_count: builtins.int +Global___DeleteRobotPartResponse: _TypeAlias = DeleteRobotPartResponse + +@_typing.final +class Fragment(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + FRAGMENT_FIELD_NUMBER: _builtins.int + ORGANIZATION_OWNER_FIELD_NUMBER: _builtins.int + PUBLIC_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + ORGANIZATION_NAME_FIELD_NUMBER: _builtins.int + ROBOT_PART_COUNT_FIELD_NUMBER: _builtins.int + ORGANIZATION_COUNT_FIELD_NUMBER: _builtins.int + ONLY_USED_BY_OWNER_FIELD_NUMBER: _builtins.int + VISIBILITY_FIELD_NUMBER: _builtins.int + LAST_UPDATED_FIELD_NUMBER: _builtins.int + REVISION_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str + organization_owner: _builtins.str + public: _builtins.bool + organization_name: _builtins.str + robot_part_count: _builtins.int 'number of robot parts using this fragment' - organization_count: builtins.int + organization_count: _builtins.int 'number of organizations using this fragment' - only_used_by_owner: builtins.bool + only_used_by_owner: _builtins.bool 'whether the organization(s) using this fragment is the same as the fragment org' - visibility: global___FragmentVisibility.ValueType + visibility: Global___FragmentVisibility.ValueType 'the visibility of a fragment; public, private or unlisted' - revision: builtins.str + revision: _builtins.str - @property - def fragment(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def fragment(self) -> _struct_pb2.Struct: ... - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: ... - @property - def last_updated(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_updated(self) -> _timestamp_pb2.Timestamp: """latest timestamp when fragment was updated""" - def __init__(self, *, id: builtins.str=..., name: builtins.str=..., fragment: google.protobuf.struct_pb2.Struct | None=..., organization_owner: builtins.str=..., public: builtins.bool=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=..., organization_name: builtins.str=..., robot_part_count: builtins.int=..., organization_count: builtins.int=..., only_used_by_owner: builtins.bool=..., visibility: global___FragmentVisibility.ValueType=..., last_updated: google.protobuf.timestamp_pb2.Timestamp | None=..., revision: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=..., fragment: _struct_pb2.Struct | None=..., organization_owner: _builtins.str=..., public: _builtins.bool=..., created_on: _timestamp_pb2.Timestamp | None=..., organization_name: _builtins.str=..., robot_part_count: _builtins.int=..., organization_count: _builtins.int=..., only_used_by_owner: _builtins.bool=..., visibility: Global___FragmentVisibility.ValueType=..., last_updated: _timestamp_pb2.Timestamp | None=..., revision: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'fragment', b'fragment', 'last_updated', b'last_updated'] - def HasField(self, field_name: typing.Literal['created_on', b'created_on', 'fragment', b'fragment', 'last_updated', b'last_updated']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'fragment', b'fragment', 'id', b'id', 'last_updated', b'last_updated', 'name', b'name', 'only_used_by_owner', b'only_used_by_owner', 'organization_count', b'organization_count', 'organization_name', b'organization_name', 'organization_owner', b'organization_owner', 'public', b'public', 'revision', b'revision', 'robot_part_count', b'robot_part_count', 'visibility', b'visibility'] - def ClearField(self, field_name: typing.Literal['created_on', b'created_on', 'fragment', b'fragment', 'id', b'id', 'last_updated', b'last_updated', 'name', b'name', 'only_used_by_owner', b'only_used_by_owner', 'organization_count', b'organization_count', 'organization_name', b'organization_name', 'organization_owner', b'organization_owner', 'public', b'public', 'revision', b'revision', 'robot_part_count', b'robot_part_count', 'visibility', b'visibility']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Fragment = Fragment +Global___Fragment: _TypeAlias = Fragment -@typing.final -class FragmentHistoryEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_FIELD_NUMBER: builtins.int - EDITED_ON_FIELD_NUMBER: builtins.int - OLD_FIELD_NUMBER: builtins.int - EDITED_BY_FIELD_NUMBER: builtins.int - REVISION_FIELD_NUMBER: builtins.int - CONFIG_FIELD_NUMBER: builtins.int - fragment: builtins.str - revision: builtins.str +@_typing.final +class FragmentHistoryEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_FIELD_NUMBER: _builtins.int + EDITED_ON_FIELD_NUMBER: _builtins.int + OLD_FIELD_NUMBER: _builtins.int + EDITED_BY_FIELD_NUMBER: _builtins.int + REVISION_FIELD_NUMBER: _builtins.int + CONFIG_FIELD_NUMBER: _builtins.int + fragment: _builtins.str + revision: _builtins.str - @property - def edited_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def edited_on(self) -> _timestamp_pb2.Timestamp: ... - @property - def old(self) -> global___Fragment: + @_builtins.property + def old(self) -> Global___Fragment: ... - @property - def edited_by(self) -> global___AuthenticatorInfo: + @_builtins.property + def edited_by(self) -> Global___AuthenticatorInfo: ... - @property - def config(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def config(self) -> _struct_pb2.Struct: ... - def __init__(self, *, fragment: builtins.str=..., edited_on: google.protobuf.timestamp_pb2.Timestamp | None=..., old: global___Fragment | None=..., edited_by: global___AuthenticatorInfo | None=..., revision: builtins.str=..., config: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, fragment: _builtins.str=..., edited_on: _timestamp_pb2.Timestamp | None=..., old: Global___Fragment | None=..., edited_by: Global___AuthenticatorInfo | None=..., revision: _builtins.str=..., config: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['config', b'config', 'edited_by', b'edited_by', 'edited_on', b'edited_on', 'old', b'old'] - def HasField(self, field_name: typing.Literal['config', b'config', 'edited_by', b'edited_by', 'edited_on', b'edited_on', 'old', b'old']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['config', b'config', 'edited_by', b'edited_by', 'edited_on', b'edited_on', 'fragment', b'fragment', 'old', b'old', 'revision', b'revision'] - def ClearField(self, field_name: typing.Literal['config', b'config', 'edited_by', b'edited_by', 'edited_on', b'edited_on', 'fragment', b'fragment', 'old', b'old', 'revision', b'revision']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FragmentHistoryEntry = FragmentHistoryEntry +Global___FragmentHistoryEntry: _TypeAlias = FragmentHistoryEntry -@typing.final -class FragmentRevision(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - REVISION_FIELD_NUMBER: builtins.int - CREATED_AT_FIELD_NUMBER: builtins.int - revision: builtins.str +@_typing.final +class FragmentRevision(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + REVISION_FIELD_NUMBER: _builtins.int + CREATED_AT_FIELD_NUMBER: _builtins.int + revision: _builtins.str - @property - def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_at(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, revision: builtins.str=..., created_at: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, revision: _builtins.str=..., created_at: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_at', b'created_at'] - def HasField(self, field_name: typing.Literal['created_at', b'created_at']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['created_at', b'created_at', 'revision', b'revision'] - def ClearField(self, field_name: typing.Literal['created_at', b'created_at', 'revision', b'revision']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FragmentRevision = FragmentRevision +Global___FragmentRevision: _TypeAlias = FragmentRevision -@typing.final -class FragmentTag(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TAG_FIELD_NUMBER: builtins.int - REVISION_FIELD_NUMBER: builtins.int - tag: builtins.str - revision: builtins.str +@_typing.final +class FragmentTag(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TAG_FIELD_NUMBER: _builtins.int + REVISION_FIELD_NUMBER: _builtins.int + tag: _builtins.str + revision: _builtins.str - def __init__(self, *, tag: builtins.str=..., revision: builtins.str=...) -> None: + def __init__(self, *, tag: _builtins.str=..., revision: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['revision', b'revision', 'tag', b'tag'] - def ClearField(self, field_name: typing.Literal['revision', b'revision', 'tag', b'tag']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FragmentTag = FragmentTag +Global___FragmentTag: _TypeAlias = FragmentTag -@typing.final -class FragmentError(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ERROR_TYPE_FIELD_NUMBER: builtins.int - FRAGMENT_ID_FIELD_NUMBER: builtins.int - DETAIL_FIELD_NUMBER: builtins.int - error_type: global___FragmentErrorType.ValueType - fragment_id: builtins.str - detail: builtins.str +@_typing.final +class FragmentError(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ERROR_TYPE_FIELD_NUMBER: _builtins.int + FRAGMENT_ID_FIELD_NUMBER: _builtins.int + DETAIL_FIELD_NUMBER: _builtins.int + error_type: Global___FragmentErrorType.ValueType + fragment_id: _builtins.str + detail: _builtins.str - def __init__(self, *, error_type: global___FragmentErrorType.ValueType=..., fragment_id: builtins.str=..., detail: builtins.str=...) -> None: + def __init__(self, *, error_type: Global___FragmentErrorType.ValueType=..., fragment_id: _builtins.str=..., detail: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['detail', b'detail', 'error_type', b'error_type', 'fragment_id', b'fragment_id'] - def ClearField(self, field_name: typing.Literal['detail', b'detail', 'error_type', b'error_type', 'fragment_id', b'fragment_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FragmentError = FragmentError +Global___FragmentError: _TypeAlias = FragmentError -@typing.final -class FragmentUsage(google.protobuf.message.Message): +@_typing.final +class FragmentUsage(_message.Message): """Cached fragment usage statistics""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_ID_FIELD_NUMBER: builtins.int - ORGANIZATIONS_FIELD_NUMBER: builtins.int - MACHINES_FIELD_NUMBER: builtins.int - MACHINES_IN_CURRENT_ORG_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - fragment_id: builtins.str - organizations: builtins.int - machines: builtins.int - machines_in_current_org: builtins.int - version: builtins.str + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_ID_FIELD_NUMBER: _builtins.int + ORGANIZATIONS_FIELD_NUMBER: _builtins.int + MACHINES_FIELD_NUMBER: _builtins.int + MACHINES_IN_CURRENT_ORG_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + fragment_id: _builtins.str + organizations: _builtins.int + machines: _builtins.int + machines_in_current_org: _builtins.int + version: _builtins.str 'revision or tag' - def __init__(self, *, fragment_id: builtins.str=..., organizations: builtins.int=..., machines: builtins.int=..., machines_in_current_org: builtins.int=..., version: builtins.str | None=...) -> None: + def __init__(self, *, fragment_id: _builtins.str=..., organizations: _builtins.int=..., machines: _builtins.int=..., machines_in_current_org: _builtins.int=..., version: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_version', b'_version', 'version', b'version'] - def HasField(self, field_name: typing.Literal['_version', b'_version', 'version', b'version']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_version', b'_version', 'fragment_id', b'fragment_id', 'machines', b'machines', 'machines_in_current_org', b'machines_in_current_org', 'organizations', b'organizations', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['_version', b'_version', 'fragment_id', b'fragment_id', 'machines', b'machines', 'machines_in_current_org', b'machines_in_current_org', 'organizations', b'organizations', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__version: _TypeAlias = _typing.Literal['version'] + _WhichOneofArgType__version: _TypeAlias = _typing.Literal['_version', b'_version'] - def WhichOneof(self, oneof_group: typing.Literal['_version', b'_version']) -> typing.Literal['version'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__version) -> _WhichOneofReturnType__version | None: ... -global___FragmentUsage = FragmentUsage +Global___FragmentUsage: _TypeAlias = FragmentUsage -@typing.final -class FragmentImport(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FragmentImport(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class VariablesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + @_typing.final + class VariablesEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str - def __init__(self, *, key: builtins.str=..., value: builtins.str=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - FRAGMENT_ID_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - PREFIX_FIELD_NUMBER: builtins.int - VARIABLES_FIELD_NUMBER: builtins.int - fragment_id: builtins.str - version: builtins.str + FRAGMENT_ID_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + PREFIX_FIELD_NUMBER: _builtins.int + VARIABLES_FIELD_NUMBER: _builtins.int + fragment_id: _builtins.str + version: _builtins.str 'revision or tag' - prefix: builtins.str + prefix: _builtins.str 'namespace prefix' - @property - def variables(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + @_builtins.property + def variables(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """key-value pairs for fragment variables""" - def __init__(self, *, fragment_id: builtins.str=..., version: builtins.str=..., prefix: builtins.str | None=..., variables: collections.abc.Mapping[builtins.str, builtins.str] | None=...) -> None: + def __init__(self, *, fragment_id: _builtins.str=..., version: _builtins.str=..., prefix: _builtins.str | None=..., variables: _abc.Mapping[_builtins.str, _builtins.str] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_prefix', b'_prefix', 'prefix', b'prefix'] - def HasField(self, field_name: typing.Literal['_prefix', b'_prefix', 'prefix', b'prefix']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_prefix', b'_prefix', 'fragment_id', b'fragment_id', 'prefix', b'prefix', 'variables', b'variables', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['_prefix', b'_prefix', 'fragment_id', b'fragment_id', 'prefix', b'prefix', 'variables', b'variables', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__prefix: _TypeAlias = _typing.Literal['prefix'] + _WhichOneofArgType__prefix: _TypeAlias = _typing.Literal['_prefix', b'_prefix'] - def WhichOneof(self, oneof_group: typing.Literal['_prefix', b'_prefix']) -> typing.Literal['prefix'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__prefix) -> _WhichOneofReturnType__prefix | None: ... -global___FragmentImport = FragmentImport +Global___FragmentImport: _TypeAlias = FragmentImport -@typing.final -class ResolvedFragment(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_ID_FIELD_NUMBER: builtins.int - RESOLVED_CONFIG_FIELD_NUMBER: builtins.int - ERROR_FIELD_NUMBER: builtins.int - REVISION_FIELD_NUMBER: builtins.int - fragment_id: builtins.str - revision: builtins.str +@_typing.final +class ResolvedFragment(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_ID_FIELD_NUMBER: _builtins.int + RESOLVED_CONFIG_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + REVISION_FIELD_NUMBER: _builtins.int + fragment_id: _builtins.str + revision: _builtins.str - @property - def resolved_config(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def resolved_config(self) -> _struct_pb2.Struct: ... - @property - def error(self) -> global___FragmentError: + @_builtins.property + def error(self) -> Global___FragmentError: ... - def __init__(self, *, fragment_id: builtins.str=..., resolved_config: google.protobuf.struct_pb2.Struct | None=..., error: global___FragmentError | None=..., revision: builtins.str=...) -> None: + def __init__(self, *, fragment_id: _builtins.str=..., resolved_config: _struct_pb2.Struct | None=..., error: Global___FragmentError | None=..., revision: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['error', b'error', 'resolved_config', b'resolved_config'] - def HasField(self, field_name: typing.Literal['error', b'error', 'resolved_config', b'resolved_config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['error', b'error', 'fragment_id', b'fragment_id', 'resolved_config', b'resolved_config', 'revision', b'revision'] - def ClearField(self, field_name: typing.Literal['error', b'error', 'fragment_id', b'fragment_id', 'resolved_config', b'resolved_config', 'revision', b'revision']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResolvedFragment = ResolvedFragment +Global___ResolvedFragment: _TypeAlias = ResolvedFragment -@typing.final -class ListFragmentsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - SHOW_PUBLIC_FIELD_NUMBER: builtins.int - FRAGMENT_VISIBILITY_FIELD_NUMBER: builtins.int - organization_id: builtins.str - show_public: builtins.bool +@_typing.final +class ListFragmentsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + SHOW_PUBLIC_FIELD_NUMBER: _builtins.int + FRAGMENT_VISIBILITY_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + show_public: _builtins.bool - @property - def fragment_visibility(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___FragmentVisibility.ValueType]: + @_builtins.property + def fragment_visibility(self) -> _containers.RepeatedScalarFieldContainer[Global___FragmentVisibility.ValueType]: ... - def __init__(self, *, organization_id: builtins.str=..., show_public: builtins.bool=..., fragment_visibility: collections.abc.Iterable[global___FragmentVisibility.ValueType] | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., show_public: _builtins.bool=..., fragment_visibility: _abc.Iterable[Global___FragmentVisibility.ValueType] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragment_visibility', b'fragment_visibility', 'organization_id', b'organization_id', 'show_public', b'show_public'] - def ClearField(self, field_name: typing.Literal['fragment_visibility', b'fragment_visibility', 'organization_id', b'organization_id', 'show_public', b'show_public']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListFragmentsRequest = ListFragmentsRequest +Global___ListFragmentsRequest: _TypeAlias = ListFragmentsRequest -@typing.final -class ListFragmentsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENTS_FIELD_NUMBER: builtins.int - FRAGMENT_USAGES_FIELD_NUMBER: builtins.int +@_typing.final +class ListFragmentsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENTS_FIELD_NUMBER: _builtins.int + FRAGMENT_USAGES_FIELD_NUMBER: _builtins.int - @property - def fragments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Fragment]: + @_builtins.property + def fragments(self) -> _containers.RepeatedCompositeFieldContainer[Global___Fragment]: ... - @property - def fragment_usages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FragmentUsage]: + @_builtins.property + def fragment_usages(self) -> _containers.RepeatedCompositeFieldContainer[Global___FragmentUsage]: ... - def __init__(self, *, fragments: collections.abc.Iterable[global___Fragment] | None=..., fragment_usages: collections.abc.Iterable[global___FragmentUsage] | None=...) -> None: + def __init__(self, *, fragments: _abc.Iterable[Global___Fragment] | None=..., fragment_usages: _abc.Iterable[Global___FragmentUsage] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragment_usages', b'fragment_usages', 'fragments', b'fragments'] - def ClearField(self, field_name: typing.Literal['fragment_usages', b'fragment_usages', 'fragments', b'fragments']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListFragmentsResponse = ListFragmentsResponse +Global___ListFragmentsResponse: _TypeAlias = ListFragmentsResponse -@typing.final -class GetFragmentRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - CURRENT_ORGANIZATION_ID_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - id: builtins.str - current_organization_id: builtins.str - version: builtins.str +@_typing.final +class GetFragmentRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + CURRENT_ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + id: _builtins.str + current_organization_id: _builtins.str + version: _builtins.str 'revision or tag' - def __init__(self, *, id: builtins.str=..., current_organization_id: builtins.str=..., version: builtins.str | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., current_organization_id: _builtins.str=..., version: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_version', b'_version', 'version', b'version'] - def HasField(self, field_name: typing.Literal['_version', b'_version', 'version', b'version']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_version', b'_version', 'current_organization_id', b'current_organization_id', 'id', b'id', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['_version', b'_version', 'current_organization_id', b'current_organization_id', 'id', b'id', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__version: _TypeAlias = _typing.Literal['version'] + _WhichOneofArgType__version: _TypeAlias = _typing.Literal['_version', b'_version'] - def WhichOneof(self, oneof_group: typing.Literal['_version', b'_version']) -> typing.Literal['version'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__version) -> _WhichOneofReturnType__version | None: ... -global___GetFragmentRequest = GetFragmentRequest +Global___GetFragmentRequest: _TypeAlias = GetFragmentRequest -@typing.final -class GetFragmentResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_FIELD_NUMBER: builtins.int - FRAGMENT_USAGE_FIELD_NUMBER: builtins.int - REVISIONS_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int +@_typing.final +class GetFragmentResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_FIELD_NUMBER: _builtins.int + FRAGMENT_USAGE_FIELD_NUMBER: _builtins.int + REVISIONS_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int - @property - def fragment(self) -> global___Fragment: + @_builtins.property + def fragment(self) -> Global___Fragment: ... - @property - def fragment_usage(self) -> global___FragmentUsage: + @_builtins.property + def fragment_usage(self) -> Global___FragmentUsage: ... - @property - def revisions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FragmentRevision]: + @_builtins.property + def revisions(self) -> _containers.RepeatedCompositeFieldContainer[Global___FragmentRevision]: ... - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FragmentTag]: + @_builtins.property + def tags(self) -> _containers.RepeatedCompositeFieldContainer[Global___FragmentTag]: ... - def __init__(self, *, fragment: global___Fragment | None=..., fragment_usage: global___FragmentUsage | None=..., revisions: collections.abc.Iterable[global___FragmentRevision] | None=..., tags: collections.abc.Iterable[global___FragmentTag] | None=...) -> None: + def __init__(self, *, fragment: Global___Fragment | None=..., fragment_usage: Global___FragmentUsage | None=..., revisions: _abc.Iterable[Global___FragmentRevision] | None=..., tags: _abc.Iterable[Global___FragmentTag] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['fragment', b'fragment', 'fragment_usage', b'fragment_usage'] - def HasField(self, field_name: typing.Literal['fragment', b'fragment', 'fragment_usage', b'fragment_usage']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragment', b'fragment', 'fragment_usage', b'fragment_usage', 'revisions', b'revisions', 'tags', b'tags'] - def ClearField(self, field_name: typing.Literal['fragment', b'fragment', 'fragment_usage', b'fragment_usage', 'revisions', b'revisions', 'tags', b'tags']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetFragmentResponse = GetFragmentResponse +Global___GetFragmentResponse: _TypeAlias = GetFragmentResponse -@typing.final -class CreateFragmentRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - CONFIG_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - VISIBILITY_FIELD_NUMBER: builtins.int - name: builtins.str - organization_id: builtins.str - visibility: global___FragmentVisibility.ValueType +@_typing.final +class CreateFragmentRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + CONFIG_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + VISIBILITY_FIELD_NUMBER: _builtins.int + name: _builtins.str + organization_id: _builtins.str + visibility: Global___FragmentVisibility.ValueType - @property - def config(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def config(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., config: google.protobuf.struct_pb2.Struct | None=..., organization_id: builtins.str=..., visibility: global___FragmentVisibility.ValueType | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., config: _struct_pb2.Struct | None=..., organization_id: _builtins.str=..., visibility: Global___FragmentVisibility.ValueType | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_visibility', b'_visibility', 'config', b'config', 'visibility', b'visibility'] - def HasField(self, field_name: typing.Literal['_visibility', b'_visibility', 'config', b'config', 'visibility', b'visibility']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_visibility', b'_visibility', 'config', b'config', 'name', b'name', 'organization_id', b'organization_id', 'visibility', b'visibility'] - def ClearField(self, field_name: typing.Literal['_visibility', b'_visibility', 'config', b'config', 'name', b'name', 'organization_id', b'organization_id', 'visibility', b'visibility']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__visibility: _TypeAlias = _typing.Literal['visibility'] + _WhichOneofArgType__visibility: _TypeAlias = _typing.Literal['_visibility', b'_visibility'] - def WhichOneof(self, oneof_group: typing.Literal['_visibility', b'_visibility']) -> typing.Literal['visibility'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__visibility) -> _WhichOneofReturnType__visibility | None: ... -global___CreateFragmentRequest = CreateFragmentRequest +Global___CreateFragmentRequest: _TypeAlias = CreateFragmentRequest -@typing.final -class CreateFragmentResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_FIELD_NUMBER: builtins.int +@_typing.final +class CreateFragmentResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_FIELD_NUMBER: _builtins.int - @property - def fragment(self) -> global___Fragment: + @_builtins.property + def fragment(self) -> Global___Fragment: ... - def __init__(self, *, fragment: global___Fragment | None=...) -> None: + def __init__(self, *, fragment: Global___Fragment | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['fragment', b'fragment'] - def HasField(self, field_name: typing.Literal['fragment', b'fragment']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragment', b'fragment'] - def ClearField(self, field_name: typing.Literal['fragment', b'fragment']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateFragmentResponse = CreateFragmentResponse +Global___CreateFragmentResponse: _TypeAlias = CreateFragmentResponse -@typing.final -class UpdateFragmentRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - CONFIG_FIELD_NUMBER: builtins.int - PUBLIC_FIELD_NUMBER: builtins.int - VISIBILITY_FIELD_NUMBER: builtins.int - LAST_KNOWN_UPDATE_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str - public: builtins.bool - visibility: global___FragmentVisibility.ValueType +@_typing.final +class UpdateFragmentRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + CONFIG_FIELD_NUMBER: _builtins.int + PUBLIC_FIELD_NUMBER: _builtins.int + VISIBILITY_FIELD_NUMBER: _builtins.int + LAST_KNOWN_UPDATE_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str + public: _builtins.bool + visibility: Global___FragmentVisibility.ValueType - @property - def config(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def config(self) -> _struct_pb2.Struct: ... - @property - def last_known_update(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_known_update(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, id: builtins.str=..., name: builtins.str=..., config: google.protobuf.struct_pb2.Struct | None=..., public: builtins.bool | None=..., visibility: global___FragmentVisibility.ValueType | None=..., last_known_update: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=..., config: _struct_pb2.Struct | None=..., public: _builtins.bool | None=..., visibility: Global___FragmentVisibility.ValueType | None=..., last_known_update: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_last_known_update', b'_last_known_update', '_public', b'_public', '_visibility', b'_visibility', 'config', b'config', 'last_known_update', b'last_known_update', 'public', b'public', 'visibility', b'visibility'] - def HasField(self, field_name: typing.Literal['_last_known_update', b'_last_known_update', '_public', b'_public', '_visibility', b'_visibility', 'config', b'config', 'last_known_update', b'last_known_update', 'public', b'public', 'visibility', b'visibility']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_last_known_update', b'_last_known_update', '_public', b'_public', '_visibility', b'_visibility', 'config', b'config', 'id', b'id', 'last_known_update', b'last_known_update', 'name', b'name', 'public', b'public', 'visibility', b'visibility'] - def ClearField(self, field_name: typing.Literal['_last_known_update', b'_last_known_update', '_public', b'_public', '_visibility', b'_visibility', 'config', b'config', 'id', b'id', 'last_known_update', b'last_known_update', 'name', b'name', 'public', b'public', 'visibility', b'visibility']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__last_known_update: _TypeAlias = _typing.Literal['last_known_update'] + _WhichOneofArgType__last_known_update: _TypeAlias = _typing.Literal['_last_known_update', b'_last_known_update'] + _WhichOneofReturnType__public: _TypeAlias = _typing.Literal['public'] + _WhichOneofArgType__public: _TypeAlias = _typing.Literal['_public', b'_public'] + _WhichOneofReturnType__visibility: _TypeAlias = _typing.Literal['visibility'] + _WhichOneofArgType__visibility: _TypeAlias = _typing.Literal['_visibility', b'_visibility'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_last_known_update', b'_last_known_update']) -> typing.Literal['last_known_update'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__last_known_update) -> _WhichOneofReturnType__last_known_update | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_public', b'_public']) -> typing.Literal['public'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__public) -> _WhichOneofReturnType__public | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_visibility', b'_visibility']) -> typing.Literal['visibility'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__visibility) -> _WhichOneofReturnType__visibility | None: ... -global___UpdateFragmentRequest = UpdateFragmentRequest +Global___UpdateFragmentRequest: _TypeAlias = UpdateFragmentRequest -@typing.final -class UpdateFragmentResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_FIELD_NUMBER: builtins.int +@_typing.final +class UpdateFragmentResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_FIELD_NUMBER: _builtins.int - @property - def fragment(self) -> global___Fragment: + @_builtins.property + def fragment(self) -> Global___Fragment: ... - def __init__(self, *, fragment: global___Fragment | None=...) -> None: + def __init__(self, *, fragment: Global___Fragment | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['fragment', b'fragment'] - def HasField(self, field_name: typing.Literal['fragment', b'fragment']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragment', b'fragment'] - def ClearField(self, field_name: typing.Literal['fragment', b'fragment']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateFragmentResponse = UpdateFragmentResponse +Global___UpdateFragmentResponse: _TypeAlias = UpdateFragmentResponse -@typing.final -class DeleteFragmentRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class DeleteFragmentRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteFragmentRequest = DeleteFragmentRequest +Global___DeleteFragmentRequest: _TypeAlias = DeleteFragmentRequest -@typing.final -class DeleteFragmentResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteFragmentResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteFragmentResponse = DeleteFragmentResponse +Global___DeleteFragmentResponse: _TypeAlias = DeleteFragmentResponse -@typing.final -class GetFragmentHistoryRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - PAGE_TOKEN_FIELD_NUMBER: builtins.int - PAGE_LIMIT_FIELD_NUMBER: builtins.int - id: builtins.str - page_token: builtins.str - page_limit: builtins.int +@_typing.final +class GetFragmentHistoryRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + PAGE_TOKEN_FIELD_NUMBER: _builtins.int + PAGE_LIMIT_FIELD_NUMBER: _builtins.int + id: _builtins.str + page_token: _builtins.str + page_limit: _builtins.int - def __init__(self, *, id: builtins.str=..., page_token: builtins.str | None=..., page_limit: builtins.int | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., page_token: _builtins.str | None=..., page_limit: _builtins.int | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_page_limit', b'_page_limit', '_page_token', b'_page_token', 'page_limit', b'page_limit', 'page_token', b'page_token'] - def HasField(self, field_name: typing.Literal['_page_limit', b'_page_limit', '_page_token', b'_page_token', 'page_limit', b'page_limit', 'page_token', b'page_token']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_page_limit', b'_page_limit', '_page_token', b'_page_token', 'id', b'id', 'page_limit', b'page_limit', 'page_token', b'page_token'] - def ClearField(self, field_name: typing.Literal['_page_limit', b'_page_limit', '_page_token', b'_page_token', 'id', b'id', 'page_limit', b'page_limit', 'page_token', b'page_token']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__page_limit: _TypeAlias = _typing.Literal['page_limit'] + _WhichOneofArgType__page_limit: _TypeAlias = _typing.Literal['_page_limit', b'_page_limit'] + _WhichOneofReturnType__page_token: _TypeAlias = _typing.Literal['page_token'] + _WhichOneofArgType__page_token: _TypeAlias = _typing.Literal['_page_token', b'_page_token'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_page_limit', b'_page_limit']) -> typing.Literal['page_limit'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__page_limit) -> _WhichOneofReturnType__page_limit | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_page_token', b'_page_token']) -> typing.Literal['page_token'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__page_token) -> _WhichOneofReturnType__page_token | None: ... -global___GetFragmentHistoryRequest = GetFragmentHistoryRequest +Global___GetFragmentHistoryRequest: _TypeAlias = GetFragmentHistoryRequest -@typing.final -class GetFragmentHistoryResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HISTORY_FIELD_NUMBER: builtins.int - NEXT_PAGE_TOKEN_FIELD_NUMBER: builtins.int - next_page_token: builtins.str +@_typing.final +class GetFragmentHistoryResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + HISTORY_FIELD_NUMBER: _builtins.int + NEXT_PAGE_TOKEN_FIELD_NUMBER: _builtins.int + next_page_token: _builtins.str - @property - def history(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FragmentHistoryEntry]: + @_builtins.property + def history(self) -> _containers.RepeatedCompositeFieldContainer[Global___FragmentHistoryEntry]: ... - def __init__(self, *, history: collections.abc.Iterable[global___FragmentHistoryEntry] | None=..., next_page_token: builtins.str=...) -> None: + def __init__(self, *, history: _abc.Iterable[Global___FragmentHistoryEntry] | None=..., next_page_token: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['history', b'history', 'next_page_token', b'next_page_token'] - def ClearField(self, field_name: typing.Literal['history', b'history', 'next_page_token', b'next_page_token']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetFragmentHistoryResponse = GetFragmentHistoryResponse +Global___GetFragmentHistoryResponse: _TypeAlias = GetFragmentHistoryResponse -@typing.final -class GetFragmentUsageRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_ID_FIELD_NUMBER: builtins.int - fragment_id: builtins.str +@_typing.final +class GetFragmentUsageRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_ID_FIELD_NUMBER: _builtins.int + fragment_id: _builtins.str - def __init__(self, *, fragment_id: builtins.str=...) -> None: + def __init__(self, *, fragment_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragment_id', b'fragment_id'] - def ClearField(self, field_name: typing.Literal['fragment_id', b'fragment_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetFragmentUsageRequest = GetFragmentUsageRequest +Global___GetFragmentUsageRequest: _TypeAlias = GetFragmentUsageRequest -@typing.final -class GetFragmentUsageResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSION_USAGES_FIELD_NUMBER: builtins.int +@_typing.final +class GetFragmentUsageResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VERSION_USAGES_FIELD_NUMBER: _builtins.int - @property - def version_usages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FragmentUsage]: + @_builtins.property + def version_usages(self) -> _containers.RepeatedCompositeFieldContainer[Global___FragmentUsage]: ... - def __init__(self, *, version_usages: collections.abc.Iterable[global___FragmentUsage] | None=...) -> None: + def __init__(self, *, version_usages: _abc.Iterable[Global___FragmentUsage] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['version_usages', b'version_usages'] - def ClearField(self, field_name: typing.Literal['version_usages', b'version_usages']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetFragmentUsageResponse = GetFragmentUsageResponse +Global___GetFragmentUsageResponse: _TypeAlias = GetFragmentUsageResponse -@typing.final -class SetFragmentTagRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_ID_FIELD_NUMBER: builtins.int - TAG_FIELD_NUMBER: builtins.int - REVISION_FIELD_NUMBER: builtins.int - fragment_id: builtins.str - tag: builtins.str - revision: builtins.str +@_typing.final +class SetFragmentTagRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_ID_FIELD_NUMBER: _builtins.int + TAG_FIELD_NUMBER: _builtins.int + REVISION_FIELD_NUMBER: _builtins.int + fragment_id: _builtins.str + tag: _builtins.str + revision: _builtins.str - def __init__(self, *, fragment_id: builtins.str=..., tag: builtins.str=..., revision: builtins.str=...) -> None: + def __init__(self, *, fragment_id: _builtins.str=..., tag: _builtins.str=..., revision: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragment_id', b'fragment_id', 'revision', b'revision', 'tag', b'tag'] - def ClearField(self, field_name: typing.Literal['fragment_id', b'fragment_id', 'revision', b'revision', 'tag', b'tag']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetFragmentTagRequest = SetFragmentTagRequest +Global___SetFragmentTagRequest: _TypeAlias = SetFragmentTagRequest -@typing.final -class SetFragmentTagResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TAGS_FIELD_NUMBER: builtins.int +@_typing.final +class SetFragmentTagResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TAGS_FIELD_NUMBER: _builtins.int - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FragmentTag]: + @_builtins.property + def tags(self) -> _containers.RepeatedCompositeFieldContainer[Global___FragmentTag]: ... - def __init__(self, *, tags: collections.abc.Iterable[global___FragmentTag] | None=...) -> None: + def __init__(self, *, tags: _abc.Iterable[Global___FragmentTag] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['tags', b'tags'] - def ClearField(self, field_name: typing.Literal['tags', b'tags']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetFragmentTagResponse = SetFragmentTagResponse +Global___SetFragmentTagResponse: _TypeAlias = SetFragmentTagResponse -@typing.final -class DeleteFragmentTagRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_ID_FIELD_NUMBER: builtins.int - TAG_FIELD_NUMBER: builtins.int - fragment_id: builtins.str - tag: builtins.str +@_typing.final +class DeleteFragmentTagRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_ID_FIELD_NUMBER: _builtins.int + TAG_FIELD_NUMBER: _builtins.int + fragment_id: _builtins.str + tag: _builtins.str - def __init__(self, *, fragment_id: builtins.str=..., tag: builtins.str=...) -> None: + def __init__(self, *, fragment_id: _builtins.str=..., tag: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragment_id', b'fragment_id', 'tag', b'tag'] - def ClearField(self, field_name: typing.Literal['fragment_id', b'fragment_id', 'tag', b'tag']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteFragmentTagRequest = DeleteFragmentTagRequest +Global___DeleteFragmentTagRequest: _TypeAlias = DeleteFragmentTagRequest -@typing.final -class DeleteFragmentTagResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TAGS_FIELD_NUMBER: builtins.int +@_typing.final +class DeleteFragmentTagResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TAGS_FIELD_NUMBER: _builtins.int - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FragmentTag]: + @_builtins.property + def tags(self) -> _containers.RepeatedCompositeFieldContainer[Global___FragmentTag]: ... - def __init__(self, *, tags: collections.abc.Iterable[global___FragmentTag] | None=...) -> None: + def __init__(self, *, tags: _abc.Iterable[Global___FragmentTag] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['tags', b'tags'] - def ClearField(self, field_name: typing.Literal['tags', b'tags']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteFragmentTagResponse = DeleteFragmentTagResponse +Global___DeleteFragmentTagResponse: _TypeAlias = DeleteFragmentTagResponse -@typing.final -class ListRobotsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class ListRobotsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str - def __init__(self, *, location_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListRobotsRequest = ListRobotsRequest +Global___ListRobotsRequest: _TypeAlias = ListRobotsRequest -@typing.final -class ListRobotsForLocationsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_IDS_FIELD_NUMBER: builtins.int +@_typing.final +class ListRobotsForLocationsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_IDS_FIELD_NUMBER: _builtins.int - @property - def location_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def location_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, location_ids: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, location_ids: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_ids', b'location_ids'] - def ClearField(self, field_name: typing.Literal['location_ids', b'location_ids']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListRobotsForLocationsRequest = ListRobotsForLocationsRequest +Global___ListRobotsForLocationsRequest: _TypeAlias = ListRobotsForLocationsRequest -@typing.final -class ListRobotsForOrgRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class ListRobotsForOrgRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListRobotsForOrgRequest = ListRobotsForOrgRequest +Global___ListRobotsForOrgRequest: _TypeAlias = ListRobotsForOrgRequest -@typing.final -class AdditionalFragment(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_ID_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - fragment_id: builtins.str - version: builtins.str +@_typing.final +class AdditionalFragment(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_ID_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + fragment_id: _builtins.str + version: _builtins.str - def __init__(self, *, fragment_id: builtins.str=..., version: builtins.str | None=...) -> None: + def __init__(self, *, fragment_id: _builtins.str=..., version: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_version', b'_version', 'version', b'version'] - def HasField(self, field_name: typing.Literal['_version', b'_version', 'version', b'version']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_version', b'_version', 'fragment_id', b'fragment_id', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['_version', b'_version', 'fragment_id', b'fragment_id', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__version: _TypeAlias = _typing.Literal['version'] + _WhichOneofArgType__version: _TypeAlias = _typing.Literal['_version', b'_version'] - def WhichOneof(self, oneof_group: typing.Literal['_version', b'_version']) -> typing.Literal['version'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__version) -> _WhichOneofReturnType__version | None: ... -global___AdditionalFragment = AdditionalFragment +Global___AdditionalFragment: _TypeAlias = AdditionalFragment -@typing.final -class ListNestedFragmentsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_ID_FIELD_NUMBER: builtins.int - ADDITIONAL_FRAGMENTS_FIELD_NUMBER: builtins.int - fragment_id: builtins.str +@_typing.final +class ListNestedFragmentsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_ID_FIELD_NUMBER: _builtins.int + ADDITIONAL_FRAGMENTS_FIELD_NUMBER: _builtins.int + fragment_id: _builtins.str - @property - def additional_fragments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AdditionalFragment]: + @_builtins.property + def additional_fragments(self) -> _containers.RepeatedCompositeFieldContainer[Global___AdditionalFragment]: ... - def __init__(self, *, fragment_id: builtins.str | None=..., additional_fragments: collections.abc.Iterable[global___AdditionalFragment] | None=...) -> None: + def __init__(self, *, fragment_id: _builtins.str | None=..., additional_fragments: _abc.Iterable[Global___AdditionalFragment] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_fragment_id', b'_fragment_id', 'fragment_id', b'fragment_id'] - def HasField(self, field_name: typing.Literal['_fragment_id', b'_fragment_id', 'fragment_id', b'fragment_id']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_fragment_id', b'_fragment_id', 'additional_fragments', b'additional_fragments', 'fragment_id', b'fragment_id'] - def ClearField(self, field_name: typing.Literal['_fragment_id', b'_fragment_id', 'additional_fragments', b'additional_fragments', 'fragment_id', b'fragment_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__fragment_id: _TypeAlias = _typing.Literal['fragment_id'] + _WhichOneofArgType__fragment_id: _TypeAlias = _typing.Literal['_fragment_id', b'_fragment_id'] - def WhichOneof(self, oneof_group: typing.Literal['_fragment_id', b'_fragment_id']) -> typing.Literal['fragment_id'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__fragment_id) -> _WhichOneofReturnType__fragment_id | None: ... -global___ListNestedFragmentsRequest = ListNestedFragmentsRequest +Global___ListNestedFragmentsRequest: _TypeAlias = ListNestedFragmentsRequest -@typing.final -class ListNestedFragmentsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENTS_FIELD_NUMBER: builtins.int - RESOLVED_FRAGMENTS_FIELD_NUMBER: builtins.int +@_typing.final +class ListNestedFragmentsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENTS_FIELD_NUMBER: _builtins.int + RESOLVED_FRAGMENTS_FIELD_NUMBER: _builtins.int - @property - def fragments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Fragment]: + @_builtins.property + def fragments(self) -> _containers.RepeatedCompositeFieldContainer[Global___Fragment]: ... - @property - def resolved_fragments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResolvedFragment]: + @_builtins.property + def resolved_fragments(self) -> _containers.RepeatedCompositeFieldContainer[Global___ResolvedFragment]: ... - def __init__(self, *, fragments: collections.abc.Iterable[global___Fragment] | None=..., resolved_fragments: collections.abc.Iterable[global___ResolvedFragment] | None=...) -> None: + def __init__(self, *, fragments: _abc.Iterable[Global___Fragment] | None=..., resolved_fragments: _abc.Iterable[Global___ResolvedFragment] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragments', b'fragments', 'resolved_fragments', b'resolved_fragments'] - def ClearField(self, field_name: typing.Literal['fragments', b'fragments', 'resolved_fragments', b'resolved_fragments']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListNestedFragmentsResponse = ListNestedFragmentsResponse +Global___ListNestedFragmentsResponse: _TypeAlias = ListNestedFragmentsResponse -@typing.final -class ListMachineFragmentsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MACHINE_ID_FIELD_NUMBER: builtins.int - ADDITIONAL_FRAGMENT_IDS_FIELD_NUMBER: builtins.int - ADDITIONAL_FRAGMENTS_FIELD_NUMBER: builtins.int - machine_id: builtins.str +@_typing.final +class ListMachineFragmentsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MACHINE_ID_FIELD_NUMBER: _builtins.int + ADDITIONAL_FRAGMENT_IDS_FIELD_NUMBER: _builtins.int + ADDITIONAL_FRAGMENTS_FIELD_NUMBER: _builtins.int + machine_id: _builtins.str "the machine_id used to filter fragments defined in a machine's parts.\n Also returns any fragments nested within the fragments defined in parts.\n " - @property - def additional_fragment_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def additional_fragment_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """TODO(APP-7642): Mark this field as deprecated""" - @property - def additional_fragments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AdditionalFragment]: + @_builtins.property + def additional_fragments(self) -> _containers.RepeatedCompositeFieldContainer[Global___AdditionalFragment]: """additional fragments to append to the response. useful when needing to view fragments that will be provisionally added to the machine alongside existing fragments. """ - def __init__(self, *, machine_id: builtins.str=..., additional_fragment_ids: collections.abc.Iterable[builtins.str] | None=..., additional_fragments: collections.abc.Iterable[global___AdditionalFragment] | None=...) -> None: + def __init__(self, *, machine_id: _builtins.str=..., additional_fragment_ids: _abc.Iterable[_builtins.str] | None=..., additional_fragments: _abc.Iterable[Global___AdditionalFragment] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['additional_fragment_ids', b'additional_fragment_ids', 'additional_fragments', b'additional_fragments', 'machine_id', b'machine_id'] - def ClearField(self, field_name: typing.Literal['additional_fragment_ids', b'additional_fragment_ids', 'additional_fragments', b'additional_fragments', 'machine_id', b'machine_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListMachineFragmentsRequest = ListMachineFragmentsRequest +Global___ListMachineFragmentsRequest: _TypeAlias = ListMachineFragmentsRequest -@typing.final -class ListMachineFragmentsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENTS_FIELD_NUMBER: builtins.int - RESOLVED_FRAGMENTS_FIELD_NUMBER: builtins.int +@_typing.final +class ListMachineFragmentsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENTS_FIELD_NUMBER: _builtins.int + RESOLVED_FRAGMENTS_FIELD_NUMBER: _builtins.int - @property - def fragments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Fragment]: + @_builtins.property + def fragments(self) -> _containers.RepeatedCompositeFieldContainer[Global___Fragment]: ... - @property - def resolved_fragments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResolvedFragment]: + @_builtins.property + def resolved_fragments(self) -> _containers.RepeatedCompositeFieldContainer[Global___ResolvedFragment]: ... - def __init__(self, *, fragments: collections.abc.Iterable[global___Fragment] | None=..., resolved_fragments: collections.abc.Iterable[global___ResolvedFragment] | None=...) -> None: + def __init__(self, *, fragments: _abc.Iterable[Global___Fragment] | None=..., resolved_fragments: _abc.Iterable[Global___ResolvedFragment] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragments', b'fragments', 'resolved_fragments', b'resolved_fragments'] - def ClearField(self, field_name: typing.Literal['fragments', b'fragments', 'resolved_fragments', b'resolved_fragments']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListMachineFragmentsResponse = ListMachineFragmentsResponse +Global___ListMachineFragmentsResponse: _TypeAlias = ListMachineFragmentsResponse -@typing.final -class ListMachineSummariesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - FRAGMENT_IDS_FIELD_NUMBER: builtins.int - LOCATION_IDS_FIELD_NUMBER: builtins.int - LIMIT_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class ListMachineSummariesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + FRAGMENT_IDS_FIELD_NUMBER: _builtins.int + LOCATION_IDS_FIELD_NUMBER: _builtins.int + LIMIT_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str 'Optional organization ID. If no value is set it will search among all the organanizations the caller has access to' - limit: builtins.int + limit: _builtins.int 'Optional max number of machines to return; default to 100 if unset' - @property - def fragment_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def fragment_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Optional list of fragment IDs to filter machines that use any of these fragments""" - @property - def location_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def location_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Optional list of location IDs to filter machines that are in any of these locations.""" - def __init__(self, *, organization_id: builtins.str=..., fragment_ids: collections.abc.Iterable[builtins.str] | None=..., location_ids: collections.abc.Iterable[builtins.str] | None=..., limit: builtins.int | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., fragment_ids: _abc.Iterable[_builtins.str] | None=..., location_ids: _abc.Iterable[_builtins.str] | None=..., limit: _builtins.int | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_limit', b'_limit', 'limit', b'limit'] - def HasField(self, field_name: typing.Literal['_limit', b'_limit', 'limit', b'limit']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_limit', b'_limit', 'fragment_ids', b'fragment_ids', 'limit', b'limit', 'location_ids', b'location_ids', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['_limit', b'_limit', 'fragment_ids', b'fragment_ids', 'limit', b'limit', 'location_ids', b'location_ids', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__limit: _TypeAlias = _typing.Literal['limit'] + _WhichOneofArgType__limit: _TypeAlias = _typing.Literal['_limit', b'_limit'] - def WhichOneof(self, oneof_group: typing.Literal['_limit', b'_limit']) -> typing.Literal['limit'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__limit) -> _WhichOneofReturnType__limit | None: ... -global___ListMachineSummariesRequest = ListMachineSummariesRequest +Global___ListMachineSummariesRequest: _TypeAlias = ListMachineSummariesRequest -@typing.final -class ListMachineSummariesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_SUMMARIES_FIELD_NUMBER: builtins.int +@_typing.final +class ListMachineSummariesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_SUMMARIES_FIELD_NUMBER: _builtins.int - @property - def location_summaries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LocationSummary]: + @_builtins.property + def location_summaries(self) -> _containers.RepeatedCompositeFieldContainer[Global___LocationSummary]: ... - def __init__(self, *, location_summaries: collections.abc.Iterable[global___LocationSummary] | None=...) -> None: + def __init__(self, *, location_summaries: _abc.Iterable[Global___LocationSummary] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_summaries', b'location_summaries'] - def ClearField(self, field_name: typing.Literal['location_summaries', b'location_summaries']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListMachineSummariesResponse = ListMachineSummariesResponse +Global___ListMachineSummariesResponse: _TypeAlias = ListMachineSummariesResponse -@typing.final -class LocationSummary(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - LOCATION_NAME_FIELD_NUMBER: builtins.int - MACHINE_SUMMARIES_FIELD_NUMBER: builtins.int - location_id: builtins.str - location_name: builtins.str +@_typing.final +class LocationSummary(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + LOCATION_NAME_FIELD_NUMBER: _builtins.int + MACHINE_SUMMARIES_FIELD_NUMBER: _builtins.int + location_id: _builtins.str + location_name: _builtins.str - @property - def machine_summaries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MachineSummary]: + @_builtins.property + def machine_summaries(self) -> _containers.RepeatedCompositeFieldContainer[Global___MachineSummary]: ... - def __init__(self, *, location_id: builtins.str=..., location_name: builtins.str=..., machine_summaries: collections.abc.Iterable[global___MachineSummary] | None=...) -> None: + def __init__(self, *, location_id: _builtins.str=..., location_name: _builtins.str=..., machine_summaries: _abc.Iterable[Global___MachineSummary] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id', 'location_name', b'location_name', 'machine_summaries', b'machine_summaries'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id', 'location_name', b'location_name', 'machine_summaries', b'machine_summaries']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LocationSummary = LocationSummary +Global___LocationSummary: _TypeAlias = LocationSummary -@typing.final -class MachineSummary(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MACHINE_ID_FIELD_NUMBER: builtins.int - MACHINE_NAME_FIELD_NUMBER: builtins.int - PART_SUMMARIES_FIELD_NUMBER: builtins.int - machine_id: builtins.str - machine_name: builtins.str +@_typing.final +class MachineSummary(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MACHINE_ID_FIELD_NUMBER: _builtins.int + MACHINE_NAME_FIELD_NUMBER: _builtins.int + PART_SUMMARIES_FIELD_NUMBER: _builtins.int + machine_id: _builtins.str + machine_name: _builtins.str - @property - def part_summaries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PartSummary]: + @_builtins.property + def part_summaries(self) -> _containers.RepeatedCompositeFieldContainer[Global___PartSummary]: ... - def __init__(self, *, machine_id: builtins.str=..., machine_name: builtins.str=..., part_summaries: collections.abc.Iterable[global___PartSummary] | None=...) -> None: + def __init__(self, *, machine_id: _builtins.str=..., machine_name: _builtins.str=..., part_summaries: _abc.Iterable[Global___PartSummary] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['machine_id', b'machine_id', 'machine_name', b'machine_name', 'part_summaries', b'part_summaries'] - def ClearField(self, field_name: typing.Literal['machine_id', b'machine_id', 'machine_name', b'machine_name', 'part_summaries', b'part_summaries']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MachineSummary = MachineSummary +Global___MachineSummary: _TypeAlias = MachineSummary -@typing.final -class FragmentSummary(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str +@_typing.final +class FragmentSummary(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str - def __init__(self, *, id: builtins.str=..., name: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FragmentSummary = FragmentSummary +Global___FragmentSummary: _TypeAlias = FragmentSummary -@typing.final -class ViamServerVersion(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MAJOR_FIELD_NUMBER: builtins.int - MINOR_FIELD_NUMBER: builtins.int - major: builtins.str - minor: builtins.str +@_typing.final +class ViamServerVersion(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MAJOR_FIELD_NUMBER: _builtins.int + MINOR_FIELD_NUMBER: _builtins.int + major: _builtins.str + minor: _builtins.str - def __init__(self, *, major: builtins.str=..., minor: builtins.str=...) -> None: + def __init__(self, *, major: _builtins.str=..., minor: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['major', b'major', 'minor', b'minor', 'version', b'version'] - def HasField(self, field_name: typing.Literal['major', b'major', 'minor', b'minor', 'version', b'version']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['major', b'major', 'minor', b'minor', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['major', b'major', 'minor', b'minor', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_version: _TypeAlias = _typing.Literal['major', 'minor'] + _WhichOneofArgType_version: _TypeAlias = _typing.Literal['version', b'version'] - def WhichOneof(self, oneof_group: typing.Literal['version', b'version']) -> typing.Literal['major', 'minor'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_version) -> _WhichOneofReturnType_version | None: ... -global___ViamServerVersion = ViamServerVersion +Global___ViamServerVersion: _TypeAlias = ViamServerVersion -@typing.final -class ViamAgentVersion(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MAJOR_FIELD_NUMBER: builtins.int - MINOR_FIELD_NUMBER: builtins.int - major: builtins.str - minor: builtins.str +@_typing.final +class ViamAgentVersion(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MAJOR_FIELD_NUMBER: _builtins.int + MINOR_FIELD_NUMBER: _builtins.int + major: _builtins.str + minor: _builtins.str - def __init__(self, *, major: builtins.str=..., minor: builtins.str=...) -> None: + def __init__(self, *, major: _builtins.str=..., minor: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['major', b'major', 'minor', b'minor', 'version', b'version'] - def HasField(self, field_name: typing.Literal['major', b'major', 'minor', b'minor', 'version', b'version']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['major', b'major', 'minor', b'minor', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['major', b'major', 'minor', b'minor', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_version: _TypeAlias = _typing.Literal['major', 'minor'] + _WhichOneofArgType_version: _TypeAlias = _typing.Literal['version', b'version'] - def WhichOneof(self, oneof_group: typing.Literal['version', b'version']) -> typing.Literal['major', 'minor'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_version) -> _WhichOneofReturnType_version | None: ... -global___ViamAgentVersion = ViamAgentVersion +Global___ViamAgentVersion: _TypeAlias = ViamAgentVersion -@typing.final -class PartSummary(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_ID_FIELD_NUMBER: builtins.int - PART_NAME_FIELD_NUMBER: builtins.int - IS_MAIN_PART_FIELD_NUMBER: builtins.int - ONLINE_STATE_FIELD_NUMBER: builtins.int - SECONDS_SINCE_ONLINE_FIELD_NUMBER: builtins.int - LAST_ACCESS_FIELD_NUMBER: builtins.int - LAST_ONLINE_FIELD_NUMBER: builtins.int - VIAM_SERVER_VERSION_FIELD_NUMBER: builtins.int - VIAM_AGENT_VERSION_FIELD_NUMBER: builtins.int - OS_FIELD_NUMBER: builtins.int - PLATFORM_FIELD_NUMBER: builtins.int - PUBLIC_IP_ADDRESS_FIELD_NUMBER: builtins.int - DNS_NAME_FIELD_NUMBER: builtins.int - FRAGMENTS_FIELD_NUMBER: builtins.int - part_id: builtins.str - part_name: builtins.str - is_main_part: builtins.bool - online_state: global___OnlineState.ValueType - seconds_since_online: builtins.int - os: builtins.str - platform: builtins.str - public_ip_address: builtins.str - dns_name: builtins.str +@_typing.final +class PartSummary(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_ID_FIELD_NUMBER: _builtins.int + PART_NAME_FIELD_NUMBER: _builtins.int + IS_MAIN_PART_FIELD_NUMBER: _builtins.int + ONLINE_STATE_FIELD_NUMBER: _builtins.int + SECONDS_SINCE_ONLINE_FIELD_NUMBER: _builtins.int + LAST_ACCESS_FIELD_NUMBER: _builtins.int + LAST_ONLINE_FIELD_NUMBER: _builtins.int + VIAM_SERVER_VERSION_FIELD_NUMBER: _builtins.int + VIAM_AGENT_VERSION_FIELD_NUMBER: _builtins.int + OS_FIELD_NUMBER: _builtins.int + PLATFORM_FIELD_NUMBER: _builtins.int + PUBLIC_IP_ADDRESS_FIELD_NUMBER: _builtins.int + DNS_NAME_FIELD_NUMBER: _builtins.int + FRAGMENTS_FIELD_NUMBER: _builtins.int + part_id: _builtins.str + part_name: _builtins.str + is_main_part: _builtins.bool + online_state: Global___OnlineState.ValueType + seconds_since_online: _builtins.int + os: _builtins.str + platform: _builtins.str + public_ip_address: _builtins.str + dns_name: _builtins.str - @property - def last_access(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_access(self) -> _timestamp_pb2.Timestamp: ... - @property - def last_online(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_online(self) -> _timestamp_pb2.Timestamp: ... - @property - def viam_server_version(self) -> global___ViamServerVersion: + @_builtins.property + def viam_server_version(self) -> Global___ViamServerVersion: ... - @property - def viam_agent_version(self) -> global___ViamAgentVersion: + @_builtins.property + def viam_agent_version(self) -> Global___ViamAgentVersion: ... - @property - def fragments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FragmentSummary]: + @_builtins.property + def fragments(self) -> _containers.RepeatedCompositeFieldContainer[Global___FragmentSummary]: ... - def __init__(self, *, part_id: builtins.str=..., part_name: builtins.str=..., is_main_part: builtins.bool=..., online_state: global___OnlineState.ValueType=..., seconds_since_online: builtins.int=..., last_access: google.protobuf.timestamp_pb2.Timestamp | None=..., last_online: google.protobuf.timestamp_pb2.Timestamp | None=..., viam_server_version: global___ViamServerVersion | None=..., viam_agent_version: global___ViamAgentVersion | None=..., os: builtins.str | None=..., platform: builtins.str | None=..., public_ip_address: builtins.str | None=..., dns_name: builtins.str | None=..., fragments: collections.abc.Iterable[global___FragmentSummary] | None=...) -> None: + def __init__(self, *, part_id: _builtins.str=..., part_name: _builtins.str=..., is_main_part: _builtins.bool=..., online_state: Global___OnlineState.ValueType=..., seconds_since_online: _builtins.int=..., last_access: _timestamp_pb2.Timestamp | None=..., last_online: _timestamp_pb2.Timestamp | None=..., viam_server_version: Global___ViamServerVersion | None=..., viam_agent_version: Global___ViamAgentVersion | None=..., os: _builtins.str | None=..., platform: _builtins.str | None=..., public_ip_address: _builtins.str | None=..., dns_name: _builtins.str | None=..., fragments: _abc.Iterable[Global___FragmentSummary] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_dns_name', b'_dns_name', '_last_access', b'_last_access', '_last_online', b'_last_online', '_os', b'_os', '_platform', b'_platform', '_public_ip_address', b'_public_ip_address', '_viam_agent_version', b'_viam_agent_version', '_viam_server_version', b'_viam_server_version', 'dns_name', b'dns_name', 'last_access', b'last_access', 'last_online', b'last_online', 'os', b'os', 'platform', b'platform', 'public_ip_address', b'public_ip_address', 'viam_agent_version', b'viam_agent_version', 'viam_server_version', b'viam_server_version'] - def HasField(self, field_name: typing.Literal['_dns_name', b'_dns_name', '_last_access', b'_last_access', '_last_online', b'_last_online', '_os', b'_os', '_platform', b'_platform', '_public_ip_address', b'_public_ip_address', '_viam_agent_version', b'_viam_agent_version', '_viam_server_version', b'_viam_server_version', 'dns_name', b'dns_name', 'last_access', b'last_access', 'last_online', b'last_online', 'os', b'os', 'platform', b'platform', 'public_ip_address', b'public_ip_address', 'viam_agent_version', b'viam_agent_version', 'viam_server_version', b'viam_server_version']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_dns_name', b'_dns_name', '_last_access', b'_last_access', '_last_online', b'_last_online', '_os', b'_os', '_platform', b'_platform', '_public_ip_address', b'_public_ip_address', '_viam_agent_version', b'_viam_agent_version', '_viam_server_version', b'_viam_server_version', 'dns_name', b'dns_name', 'fragments', b'fragments', 'is_main_part', b'is_main_part', 'last_access', b'last_access', 'last_online', b'last_online', 'online_state', b'online_state', 'os', b'os', 'part_id', b'part_id', 'part_name', b'part_name', 'platform', b'platform', 'public_ip_address', b'public_ip_address', 'seconds_since_online', b'seconds_since_online', 'viam_agent_version', b'viam_agent_version', 'viam_server_version', b'viam_server_version'] - def ClearField(self, field_name: typing.Literal['_dns_name', b'_dns_name', '_last_access', b'_last_access', '_last_online', b'_last_online', '_os', b'_os', '_platform', b'_platform', '_public_ip_address', b'_public_ip_address', '_viam_agent_version', b'_viam_agent_version', '_viam_server_version', b'_viam_server_version', 'dns_name', b'dns_name', 'fragments', b'fragments', 'is_main_part', b'is_main_part', 'last_access', b'last_access', 'last_online', b'last_online', 'online_state', b'online_state', 'os', b'os', 'part_id', b'part_id', 'part_name', b'part_name', 'platform', b'platform', 'public_ip_address', b'public_ip_address', 'seconds_since_online', b'seconds_since_online', 'viam_agent_version', b'viam_agent_version', 'viam_server_version', b'viam_server_version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__dns_name: _TypeAlias = _typing.Literal['dns_name'] + _WhichOneofArgType__dns_name: _TypeAlias = _typing.Literal['_dns_name', b'_dns_name'] + _WhichOneofReturnType__last_access: _TypeAlias = _typing.Literal['last_access'] + _WhichOneofArgType__last_access: _TypeAlias = _typing.Literal['_last_access', b'_last_access'] + _WhichOneofReturnType__last_online: _TypeAlias = _typing.Literal['last_online'] + _WhichOneofArgType__last_online: _TypeAlias = _typing.Literal['_last_online', b'_last_online'] + _WhichOneofReturnType__os: _TypeAlias = _typing.Literal['os'] + _WhichOneofArgType__os: _TypeAlias = _typing.Literal['_os', b'_os'] + _WhichOneofReturnType__platform: _TypeAlias = _typing.Literal['platform'] + _WhichOneofArgType__platform: _TypeAlias = _typing.Literal['_platform', b'_platform'] + _WhichOneofReturnType__public_ip_address: _TypeAlias = _typing.Literal['public_ip_address'] + _WhichOneofArgType__public_ip_address: _TypeAlias = _typing.Literal['_public_ip_address', b'_public_ip_address'] + _WhichOneofReturnType__viam_agent_version: _TypeAlias = _typing.Literal['viam_agent_version'] + _WhichOneofArgType__viam_agent_version: _TypeAlias = _typing.Literal['_viam_agent_version', b'_viam_agent_version'] + _WhichOneofReturnType__viam_server_version: _TypeAlias = _typing.Literal['viam_server_version'] + _WhichOneofArgType__viam_server_version: _TypeAlias = _typing.Literal['_viam_server_version', b'_viam_server_version'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_dns_name', b'_dns_name']) -> typing.Literal['dns_name'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__dns_name) -> _WhichOneofReturnType__dns_name | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_last_access', b'_last_access']) -> typing.Literal['last_access'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__last_access) -> _WhichOneofReturnType__last_access | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_last_online', b'_last_online']) -> typing.Literal['last_online'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__last_online) -> _WhichOneofReturnType__last_online | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_os', b'_os']) -> typing.Literal['os'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__os) -> _WhichOneofReturnType__os | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_platform', b'_platform']) -> typing.Literal['platform'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__platform) -> _WhichOneofReturnType__platform | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_public_ip_address', b'_public_ip_address']) -> typing.Literal['public_ip_address'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__public_ip_address) -> _WhichOneofReturnType__public_ip_address | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_viam_agent_version', b'_viam_agent_version']) -> typing.Literal['viam_agent_version'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__viam_agent_version) -> _WhichOneofReturnType__viam_agent_version | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_viam_server_version', b'_viam_server_version']) -> typing.Literal['viam_server_version'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__viam_server_version) -> _WhichOneofReturnType__viam_server_version | None: ... -global___PartSummary = PartSummary +Global___PartSummary: _TypeAlias = PartSummary -@typing.final -class ListRobotsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOTS_FIELD_NUMBER: builtins.int +@_typing.final +class ListRobotsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ROBOTS_FIELD_NUMBER: _builtins.int - @property - def robots(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Robot]: + @_builtins.property + def robots(self) -> _containers.RepeatedCompositeFieldContainer[Global___Robot]: ... - def __init__(self, *, robots: collections.abc.Iterable[global___Robot] | None=...) -> None: + def __init__(self, *, robots: _abc.Iterable[Global___Robot] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['robots', b'robots'] - def ClearField(self, field_name: typing.Literal['robots', b'robots']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListRobotsResponse = ListRobotsResponse +Global___ListRobotsResponse: _TypeAlias = ListRobotsResponse -@typing.final -class ListRobotsForLocationsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOTS_FIELD_NUMBER: builtins.int +@_typing.final +class ListRobotsForLocationsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ROBOTS_FIELD_NUMBER: _builtins.int - @property - def robots(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Robot]: + @_builtins.property + def robots(self) -> _containers.RepeatedCompositeFieldContainer[Global___Robot]: ... - def __init__(self, *, robots: collections.abc.Iterable[global___Robot] | None=...) -> None: + def __init__(self, *, robots: _abc.Iterable[Global___Robot] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['robots', b'robots'] - def ClearField(self, field_name: typing.Literal['robots', b'robots']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListRobotsForLocationsResponse = ListRobotsForLocationsResponse +Global___ListRobotsForLocationsResponse: _TypeAlias = ListRobotsForLocationsResponse -@typing.final -class ListRobotsForOrgResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOTS_FIELD_NUMBER: builtins.int +@_typing.final +class ListRobotsForOrgResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ROBOTS_FIELD_NUMBER: _builtins.int - @property - def robots(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Robot]: + @_builtins.property + def robots(self) -> _containers.RepeatedCompositeFieldContainer[Global___Robot]: ... - def __init__(self, *, robots: collections.abc.Iterable[global___Robot] | None=...) -> None: + def __init__(self, *, robots: _abc.Iterable[Global___Robot] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['robots', b'robots'] - def ClearField(self, field_name: typing.Literal['robots', b'robots']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListRobotsForOrgResponse = ListRobotsForOrgResponse +Global___ListRobotsForOrgResponse: _TypeAlias = ListRobotsForOrgResponse -@typing.final -class NewRobotRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - LOCATION_FIELD_NUMBER: builtins.int - name: builtins.str - location: builtins.str +@_typing.final +class NewRobotRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + LOCATION_FIELD_NUMBER: _builtins.int + name: _builtins.str + location: _builtins.str - def __init__(self, *, name: builtins.str=..., location: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=..., location: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location', b'location', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['location', b'location', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___NewRobotRequest = NewRobotRequest +Global___NewRobotRequest: _TypeAlias = NewRobotRequest -@typing.final -class NewRobotResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class NewRobotResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___NewRobotResponse = NewRobotResponse +Global___NewRobotResponse: _TypeAlias = NewRobotResponse -@typing.final -class UpdateRobotRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - LOCATION_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str - location: builtins.str +@_typing.final +class UpdateRobotRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + LOCATION_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str + location: _builtins.str - def __init__(self, *, id: builtins.str=..., name: builtins.str=..., location: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=..., location: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'location', b'location', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'location', b'location', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateRobotRequest = UpdateRobotRequest +Global___UpdateRobotRequest: _TypeAlias = UpdateRobotRequest -@typing.final -class UpdateRobotResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOT_FIELD_NUMBER: builtins.int +@_typing.final +class UpdateRobotResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ROBOT_FIELD_NUMBER: _builtins.int - @property - def robot(self) -> global___Robot: + @_builtins.property + def robot(self) -> Global___Robot: ... - def __init__(self, *, robot: global___Robot | None=...) -> None: + def __init__(self, *, robot: Global___Robot | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['robot', b'robot'] - def HasField(self, field_name: typing.Literal['robot', b'robot']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['robot', b'robot'] - def ClearField(self, field_name: typing.Literal['robot', b'robot']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateRobotResponse = UpdateRobotResponse +Global___UpdateRobotResponse: _TypeAlias = UpdateRobotResponse -@typing.final -class DeleteRobotRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class DeleteRobotRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteRobotRequest = DeleteRobotRequest +Global___DeleteRobotRequest: _TypeAlias = DeleteRobotRequest -@typing.final -class DeleteRobotResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteRobotResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteRobotResponse = DeleteRobotResponse +Global___DeleteRobotResponse: _TypeAlias = DeleteRobotResponse -@typing.final -class GetRobotMetadataRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class GetRobotMetadataRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotMetadataRequest = GetRobotMetadataRequest +Global___GetRobotMetadataRequest: _TypeAlias = GetRobotMetadataRequest -@typing.final -class GetRobotMetadataResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class GetRobotMetadataResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def data(self) -> _struct_pb2.Struct: ... - def __init__(self, *, data: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, data: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def HasField(self, field_name: typing.Literal['data', b'data']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRobotMetadataResponse = GetRobotMetadataResponse +Global___GetRobotMetadataResponse: _TypeAlias = GetRobotMetadataResponse -@typing.final -class UpdateRobotMetadataRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - DATA_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class UpdateRobotMetadataRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + DATA_FIELD_NUMBER: _builtins.int + id: _builtins.str - @property - def data(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def data(self) -> _struct_pb2.Struct: ... - def __init__(self, *, id: builtins.str=..., data: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., data: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def HasField(self, field_name: typing.Literal['data', b'data']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data', 'id', b'id'] - def ClearField(self, field_name: typing.Literal['data', b'data', 'id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateRobotMetadataRequest = UpdateRobotMetadataRequest +Global___UpdateRobotMetadataRequest: _TypeAlias = UpdateRobotMetadataRequest -@typing.final -class UpdateRobotMetadataResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateRobotMetadataResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UpdateRobotMetadataResponse = UpdateRobotMetadataResponse +Global___UpdateRobotMetadataResponse: _TypeAlias = UpdateRobotMetadataResponse -@typing.final -class MarkPartAsMainRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_ID_FIELD_NUMBER: builtins.int - part_id: builtins.str +@_typing.final +class MarkPartAsMainRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_ID_FIELD_NUMBER: _builtins.int + part_id: _builtins.str - def __init__(self, *, part_id: builtins.str=...) -> None: + def __init__(self, *, part_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['part_id', b'part_id'] - def ClearField(self, field_name: typing.Literal['part_id', b'part_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MarkPartAsMainRequest = MarkPartAsMainRequest +Global___MarkPartAsMainRequest: _TypeAlias = MarkPartAsMainRequest -@typing.final -class MarkPartAsMainResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class MarkPartAsMainResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___MarkPartAsMainResponse = MarkPartAsMainResponse +Global___MarkPartAsMainResponse: _TypeAlias = MarkPartAsMainResponse -@typing.final -class MarkPartForRestartRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_ID_FIELD_NUMBER: builtins.int - part_id: builtins.str +@_typing.final +class MarkPartForRestartRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_ID_FIELD_NUMBER: _builtins.int + part_id: _builtins.str - def __init__(self, *, part_id: builtins.str=...) -> None: + def __init__(self, *, part_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['part_id', b'part_id'] - def ClearField(self, field_name: typing.Literal['part_id', b'part_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MarkPartForRestartRequest = MarkPartForRestartRequest +Global___MarkPartForRestartRequest: _TypeAlias = MarkPartForRestartRequest -@typing.final -class MarkPartForRestartResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class MarkPartForRestartResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___MarkPartForRestartResponse = MarkPartForRestartResponse +Global___MarkPartForRestartResponse: _TypeAlias = MarkPartForRestartResponse -@typing.final -class CreateRobotPartSecretRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_ID_FIELD_NUMBER: builtins.int - part_id: builtins.str +@_typing.final +class CreateRobotPartSecretRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_ID_FIELD_NUMBER: _builtins.int + part_id: _builtins.str 'Robot Part ID to create the secret in.' - def __init__(self, *, part_id: builtins.str=...) -> None: + def __init__(self, *, part_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['part_id', b'part_id'] - def ClearField(self, field_name: typing.Literal['part_id', b'part_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateRobotPartSecretRequest = CreateRobotPartSecretRequest +Global___CreateRobotPartSecretRequest: _TypeAlias = CreateRobotPartSecretRequest -@typing.final -class CreateRobotPartSecretResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_FIELD_NUMBER: builtins.int +@_typing.final +class CreateRobotPartSecretResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_FIELD_NUMBER: _builtins.int - @property - def part(self) -> global___RobotPart: + @_builtins.property + def part(self) -> Global___RobotPart: """Location's auth after updates.""" - def __init__(self, *, part: global___RobotPart | None=...) -> None: + def __init__(self, *, part: Global___RobotPart | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['part', b'part'] - def HasField(self, field_name: typing.Literal['part', b'part']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['part', b'part'] - def ClearField(self, field_name: typing.Literal['part', b'part']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateRobotPartSecretResponse = CreateRobotPartSecretResponse +Global___CreateRobotPartSecretResponse: _TypeAlias = CreateRobotPartSecretResponse -@typing.final -class DeleteRobotPartSecretRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PART_ID_FIELD_NUMBER: builtins.int - SECRET_ID_FIELD_NUMBER: builtins.int - part_id: builtins.str - secret_id: builtins.str +@_typing.final +class DeleteRobotPartSecretRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PART_ID_FIELD_NUMBER: _builtins.int + SECRET_ID_FIELD_NUMBER: _builtins.int + part_id: _builtins.str + secret_id: _builtins.str - def __init__(self, *, part_id: builtins.str=..., secret_id: builtins.str=...) -> None: + def __init__(self, *, part_id: _builtins.str=..., secret_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['part_id', b'part_id', 'secret_id', b'secret_id'] - def ClearField(self, field_name: typing.Literal['part_id', b'part_id', 'secret_id', b'secret_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteRobotPartSecretRequest = DeleteRobotPartSecretRequest +Global___DeleteRobotPartSecretRequest: _TypeAlias = DeleteRobotPartSecretRequest -@typing.final -class DeleteRobotPartSecretResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteRobotPartSecretResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteRobotPartSecretResponse = DeleteRobotPartSecretResponse +Global___DeleteRobotPartSecretResponse: _TypeAlias = DeleteRobotPartSecretResponse -@typing.final -class Authorization(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AUTHORIZATION_TYPE_FIELD_NUMBER: builtins.int - AUTHORIZATION_ID_FIELD_NUMBER: builtins.int - RESOURCE_TYPE_FIELD_NUMBER: builtins.int - RESOURCE_ID_FIELD_NUMBER: builtins.int - IDENTITY_ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - IDENTITY_TYPE_FIELD_NUMBER: builtins.int - authorization_type: builtins.str - authorization_id: builtins.str - resource_type: builtins.str - resource_id: builtins.str - identity_id: builtins.str - organization_id: builtins.str - identity_type: builtins.str +@_typing.final +class Authorization(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AUTHORIZATION_TYPE_FIELD_NUMBER: _builtins.int + AUTHORIZATION_ID_FIELD_NUMBER: _builtins.int + RESOURCE_TYPE_FIELD_NUMBER: _builtins.int + RESOURCE_ID_FIELD_NUMBER: _builtins.int + IDENTITY_ID_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + IDENTITY_TYPE_FIELD_NUMBER: _builtins.int + authorization_type: _builtins.str + authorization_id: _builtins.str + resource_type: _builtins.str + resource_id: _builtins.str + identity_id: _builtins.str + organization_id: _builtins.str + identity_type: _builtins.str - def __init__(self, *, authorization_type: builtins.str=..., authorization_id: builtins.str=..., resource_type: builtins.str=..., resource_id: builtins.str=..., identity_id: builtins.str=..., organization_id: builtins.str=..., identity_type: builtins.str=...) -> None: + def __init__(self, *, authorization_type: _builtins.str=..., authorization_id: _builtins.str=..., resource_type: _builtins.str=..., resource_id: _builtins.str=..., identity_id: _builtins.str=..., organization_id: _builtins.str=..., identity_type: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['authorization_id', b'authorization_id', 'authorization_type', b'authorization_type', 'identity_id', b'identity_id', 'identity_type', b'identity_type', 'organization_id', b'organization_id', 'resource_id', b'resource_id', 'resource_type', b'resource_type'] - def ClearField(self, field_name: typing.Literal['authorization_id', b'authorization_id', 'authorization_type', b'authorization_type', 'identity_id', b'identity_id', 'identity_type', b'identity_type', 'organization_id', b'organization_id', 'resource_id', b'resource_id', 'resource_type', b'resource_type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Authorization = Authorization +Global___Authorization: _TypeAlias = Authorization -@typing.final -class AddRoleRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AUTHORIZATION_FIELD_NUMBER: builtins.int +@_typing.final +class AddRoleRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AUTHORIZATION_FIELD_NUMBER: _builtins.int - @property - def authorization(self) -> global___Authorization: + @_builtins.property + def authorization(self) -> Global___Authorization: ... - def __init__(self, *, authorization: global___Authorization | None=...) -> None: + def __init__(self, *, authorization: Global___Authorization | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['authorization', b'authorization'] - def HasField(self, field_name: typing.Literal['authorization', b'authorization']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['authorization', b'authorization'] - def ClearField(self, field_name: typing.Literal['authorization', b'authorization']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AddRoleRequest = AddRoleRequest +Global___AddRoleRequest: _TypeAlias = AddRoleRequest -@typing.final -class AddRoleResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class AddRoleResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AddRoleResponse = AddRoleResponse +Global___AddRoleResponse: _TypeAlias = AddRoleResponse -@typing.final -class RemoveRoleRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AUTHORIZATION_FIELD_NUMBER: builtins.int +@_typing.final +class RemoveRoleRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AUTHORIZATION_FIELD_NUMBER: _builtins.int - @property - def authorization(self) -> global___Authorization: + @_builtins.property + def authorization(self) -> Global___Authorization: ... - def __init__(self, *, authorization: global___Authorization | None=...) -> None: + def __init__(self, *, authorization: Global___Authorization | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['authorization', b'authorization'] - def HasField(self, field_name: typing.Literal['authorization', b'authorization']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['authorization', b'authorization'] - def ClearField(self, field_name: typing.Literal['authorization', b'authorization']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoveRoleRequest = RemoveRoleRequest +Global___RemoveRoleRequest: _TypeAlias = RemoveRoleRequest -@typing.final -class RemoveRoleResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class RemoveRoleResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___RemoveRoleResponse = RemoveRoleResponse +Global___RemoveRoleResponse: _TypeAlias = RemoveRoleResponse -@typing.final -class ChangeRoleRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OLD_AUTHORIZATION_FIELD_NUMBER: builtins.int - NEW_AUTHORIZATION_FIELD_NUMBER: builtins.int +@_typing.final +class ChangeRoleRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + OLD_AUTHORIZATION_FIELD_NUMBER: _builtins.int + NEW_AUTHORIZATION_FIELD_NUMBER: _builtins.int - @property - def old_authorization(self) -> global___Authorization: + @_builtins.property + def old_authorization(self) -> Global___Authorization: ... - @property - def new_authorization(self) -> global___Authorization: + @_builtins.property + def new_authorization(self) -> Global___Authorization: ... - def __init__(self, *, old_authorization: global___Authorization | None=..., new_authorization: global___Authorization | None=...) -> None: + def __init__(self, *, old_authorization: Global___Authorization | None=..., new_authorization: Global___Authorization | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['new_authorization', b'new_authorization', 'old_authorization', b'old_authorization'] - def HasField(self, field_name: typing.Literal['new_authorization', b'new_authorization', 'old_authorization', b'old_authorization']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['new_authorization', b'new_authorization', 'old_authorization', b'old_authorization'] - def ClearField(self, field_name: typing.Literal['new_authorization', b'new_authorization', 'old_authorization', b'old_authorization']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ChangeRoleRequest = ChangeRoleRequest +Global___ChangeRoleRequest: _TypeAlias = ChangeRoleRequest -@typing.final -class ChangeRoleResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ChangeRoleResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ChangeRoleResponse = ChangeRoleResponse +Global___ChangeRoleResponse: _TypeAlias = ChangeRoleResponse -@typing.final -class ListAuthorizationsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - RESOURCE_IDS_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class ListAuthorizationsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + RESOURCE_IDS_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str - @property - def resource_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def resource_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """optional filter""" - def __init__(self, *, organization_id: builtins.str=..., resource_ids: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., resource_ids: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organization_id', b'organization_id', 'resource_ids', b'resource_ids'] - def ClearField(self, field_name: typing.Literal['organization_id', b'organization_id', 'resource_ids', b'resource_ids']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListAuthorizationsRequest = ListAuthorizationsRequest +Global___ListAuthorizationsRequest: _TypeAlias = ListAuthorizationsRequest -@typing.final -class ListAuthorizationsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AUTHORIZATIONS_FIELD_NUMBER: builtins.int +@_typing.final +class ListAuthorizationsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AUTHORIZATIONS_FIELD_NUMBER: _builtins.int - @property - def authorizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Authorization]: + @_builtins.property + def authorizations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Authorization]: ... - def __init__(self, *, authorizations: collections.abc.Iterable[global___Authorization] | None=...) -> None: + def __init__(self, *, authorizations: _abc.Iterable[Global___Authorization] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['authorizations', b'authorizations'] - def ClearField(self, field_name: typing.Literal['authorizations', b'authorizations']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListAuthorizationsResponse = ListAuthorizationsResponse +Global___ListAuthorizationsResponse: _TypeAlias = ListAuthorizationsResponse -@typing.final -class CheckPermissionsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PERMISSIONS_FIELD_NUMBER: builtins.int +@_typing.final +class CheckPermissionsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PERMISSIONS_FIELD_NUMBER: _builtins.int - @property - def permissions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AuthorizedPermissions]: + @_builtins.property + def permissions(self) -> _containers.RepeatedCompositeFieldContainer[Global___AuthorizedPermissions]: ... - def __init__(self, *, permissions: collections.abc.Iterable[global___AuthorizedPermissions] | None=...) -> None: + def __init__(self, *, permissions: _abc.Iterable[Global___AuthorizedPermissions] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['permissions', b'permissions'] - def ClearField(self, field_name: typing.Literal['permissions', b'permissions']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CheckPermissionsRequest = CheckPermissionsRequest +Global___CheckPermissionsRequest: _TypeAlias = CheckPermissionsRequest -@typing.final -class AuthorizedPermissions(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESOURCE_TYPE_FIELD_NUMBER: builtins.int - RESOURCE_ID_FIELD_NUMBER: builtins.int - PERMISSIONS_FIELD_NUMBER: builtins.int - resource_type: builtins.str - resource_id: builtins.str +@_typing.final +class AuthorizedPermissions(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + RESOURCE_TYPE_FIELD_NUMBER: _builtins.int + RESOURCE_ID_FIELD_NUMBER: _builtins.int + PERMISSIONS_FIELD_NUMBER: _builtins.int + resource_type: _builtins.str + resource_id: _builtins.str - @property - def permissions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def permissions(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, resource_type: builtins.str=..., resource_id: builtins.str=..., permissions: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, resource_type: _builtins.str=..., resource_id: _builtins.str=..., permissions: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['permissions', b'permissions', 'resource_id', b'resource_id', 'resource_type', b'resource_type'] - def ClearField(self, field_name: typing.Literal['permissions', b'permissions', 'resource_id', b'resource_id', 'resource_type', b'resource_type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AuthorizedPermissions = AuthorizedPermissions +Global___AuthorizedPermissions: _TypeAlias = AuthorizedPermissions -@typing.final -class CheckPermissionsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AUTHORIZED_PERMISSIONS_FIELD_NUMBER: builtins.int +@_typing.final +class CheckPermissionsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AUTHORIZED_PERMISSIONS_FIELD_NUMBER: _builtins.int - @property - def authorized_permissions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AuthorizedPermissions]: + @_builtins.property + def authorized_permissions(self) -> _containers.RepeatedCompositeFieldContainer[Global___AuthorizedPermissions]: ... - def __init__(self, *, authorized_permissions: collections.abc.Iterable[global___AuthorizedPermissions] | None=...) -> None: + def __init__(self, *, authorized_permissions: _abc.Iterable[Global___AuthorizedPermissions] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['authorized_permissions', b'authorized_permissions'] - def ClearField(self, field_name: typing.Literal['authorized_permissions', b'authorized_permissions']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CheckPermissionsResponse = CheckPermissionsResponse +Global___CheckPermissionsResponse: _TypeAlias = CheckPermissionsResponse -@typing.final -class ModuleVersion(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSION_FIELD_NUMBER: builtins.int - FILES_FIELD_NUMBER: builtins.int - MODELS_FIELD_NUMBER: builtins.int - ENTRYPOINT_FIELD_NUMBER: builtins.int - FIRST_RUN_FIELD_NUMBER: builtins.int - MARKDOWN_DESCRIPTION_FIELD_NUMBER: builtins.int - APPS_FIELD_NUMBER: builtins.int - version: builtins.str +@_typing.final +class ModuleVersion(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VERSION_FIELD_NUMBER: _builtins.int + FILES_FIELD_NUMBER: _builtins.int + MODELS_FIELD_NUMBER: _builtins.int + ENTRYPOINT_FIELD_NUMBER: _builtins.int + FIRST_RUN_FIELD_NUMBER: _builtins.int + MARKDOWN_DESCRIPTION_FIELD_NUMBER: _builtins.int + APPS_FIELD_NUMBER: _builtins.int + version: _builtins.str 'The semver string that represents the major/minor/patch version of the module' - entrypoint: builtins.str + entrypoint: _builtins.str 'The entrypoint for this version of the module' - first_run: builtins.str + first_run: _builtins.str 'The path to a setup script that is run before a newly downloaded module starts.' - markdown_description: builtins.str + markdown_description: _builtins.str 'The markdown documentation for this version of the module' - @property - def files(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Uploads]: + @_builtins.property + def files(self) -> _containers.RepeatedCompositeFieldContainer[Global___Uploads]: """The uploads that are available for this module version""" - @property - def models(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Model]: + @_builtins.property + def models(self) -> _containers.RepeatedCompositeFieldContainer[Global___Model]: """The models that this verion of the module provides""" - @property - def apps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___App]: + @_builtins.property + def apps(self) -> _containers.RepeatedCompositeFieldContainer[Global___App]: """A list of applications associated with the module""" - def __init__(self, *, version: builtins.str=..., files: collections.abc.Iterable[global___Uploads] | None=..., models: collections.abc.Iterable[global___Model] | None=..., entrypoint: builtins.str=..., first_run: builtins.str | None=..., markdown_description: builtins.str | None=..., apps: collections.abc.Iterable[global___App] | None=...) -> None: + def __init__(self, *, version: _builtins.str=..., files: _abc.Iterable[Global___Uploads] | None=..., models: _abc.Iterable[Global___Model] | None=..., entrypoint: _builtins.str=..., first_run: _builtins.str | None=..., markdown_description: _builtins.str | None=..., apps: _abc.Iterable[Global___App] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'first_run', b'first_run', 'markdown_description', b'markdown_description'] - def HasField(self, field_name: typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'first_run', b'first_run', 'markdown_description', b'markdown_description']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'apps', b'apps', 'entrypoint', b'entrypoint', 'files', b'files', 'first_run', b'first_run', 'markdown_description', b'markdown_description', 'models', b'models', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'apps', b'apps', 'entrypoint', b'entrypoint', 'files', b'files', 'first_run', b'first_run', 'markdown_description', b'markdown_description', 'models', b'models', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__first_run: _TypeAlias = _typing.Literal['first_run'] + _WhichOneofArgType__first_run: _TypeAlias = _typing.Literal['_first_run', b'_first_run'] + _WhichOneofReturnType__markdown_description: _TypeAlias = _typing.Literal['markdown_description'] + _WhichOneofArgType__markdown_description: _TypeAlias = _typing.Literal['_markdown_description', b'_markdown_description'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_first_run', b'_first_run']) -> typing.Literal['first_run'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__first_run) -> _WhichOneofReturnType__first_run | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_markdown_description', b'_markdown_description']) -> typing.Literal['markdown_description'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__markdown_description) -> _WhichOneofReturnType__markdown_description | None: ... -global___ModuleVersion = ModuleVersion +Global___ModuleVersion: _TypeAlias = ModuleVersion -@typing.final -class ModuleMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODELS_FIELD_NUMBER: builtins.int - VERSIONS_FIELD_NUMBER: builtins.int - ENTRYPOINT_FIELD_NUMBER: builtins.int - FIRST_RUN_FIELD_NUMBER: builtins.int - MARKDOWN_DESCRIPTION_FIELD_NUMBER: builtins.int - APPS_FIELD_NUMBER: builtins.int - SOURCE_TYPE_FIELD_NUMBER: builtins.int - LANGUAGE_FIELD_NUMBER: builtins.int - entrypoint: builtins.str +@_typing.final +class ModuleMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODELS_FIELD_NUMBER: _builtins.int + VERSIONS_FIELD_NUMBER: _builtins.int + ENTRYPOINT_FIELD_NUMBER: _builtins.int + FIRST_RUN_FIELD_NUMBER: _builtins.int + MARKDOWN_DESCRIPTION_FIELD_NUMBER: _builtins.int + APPS_FIELD_NUMBER: _builtins.int + SOURCE_TYPE_FIELD_NUMBER: _builtins.int + LANGUAGE_FIELD_NUMBER: _builtins.int + entrypoint: _builtins.str 'The executable to run to start the module program' - first_run: builtins.str + first_run: _builtins.str 'The path to a setup script that is run before a newly downloaded module starts.' - markdown_description: builtins.str + markdown_description: _builtins.str 'markdown content for the entire module' - source_type: global___ModuleSourceType.ValueType + source_type: Global___ModuleSourceType.ValueType 'Determines the type of module, either a registry module or an inline module.' - language: global___ModuleLanguage.ValueType + language: Global___ModuleLanguage.ValueType 'Specifies the language that the module is written in.' - @property - def models(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Model]: + @_builtins.property + def models(self) -> _containers.RepeatedCompositeFieldContainer[Global___Model]: """A list of models that are available in the module""" - @property - def versions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ModuleVersion]: + @_builtins.property + def versions(self) -> _containers.RepeatedCompositeFieldContainer[Global___ModuleVersion]: """A list of versions of the module that are available When this is returned from the backend, the versions are sorted in ascending order by the semver version """ - @property - def apps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___App]: + @_builtins.property + def apps(self) -> _containers.RepeatedCompositeFieldContainer[Global___App]: """A list of applications associated with the module""" - def __init__(self, *, models: collections.abc.Iterable[global___Model] | None=..., versions: collections.abc.Iterable[global___ModuleVersion] | None=..., entrypoint: builtins.str=..., first_run: builtins.str | None=..., markdown_description: builtins.str | None=..., apps: collections.abc.Iterable[global___App] | None=..., source_type: global___ModuleSourceType.ValueType | None=..., language: global___ModuleLanguage.ValueType | None=...) -> None: + def __init__(self, *, models: _abc.Iterable[Global___Model] | None=..., versions: _abc.Iterable[Global___ModuleVersion] | None=..., entrypoint: _builtins.str=..., first_run: _builtins.str | None=..., markdown_description: _builtins.str | None=..., apps: _abc.Iterable[Global___App] | None=..., source_type: Global___ModuleSourceType.ValueType | None=..., language: Global___ModuleLanguage.ValueType | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_first_run', b'_first_run', '_language', b'_language', '_markdown_description', b'_markdown_description', '_source_type', b'_source_type', 'first_run', b'first_run', 'language', b'language', 'markdown_description', b'markdown_description', 'source_type', b'source_type'] - def HasField(self, field_name: typing.Literal['_first_run', b'_first_run', '_language', b'_language', '_markdown_description', b'_markdown_description', '_source_type', b'_source_type', 'first_run', b'first_run', 'language', b'language', 'markdown_description', b'markdown_description', 'source_type', b'source_type']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_first_run', b'_first_run', '_language', b'_language', '_markdown_description', b'_markdown_description', '_source_type', b'_source_type', 'apps', b'apps', 'entrypoint', b'entrypoint', 'first_run', b'first_run', 'language', b'language', 'markdown_description', b'markdown_description', 'models', b'models', 'source_type', b'source_type', 'versions', b'versions'] - def ClearField(self, field_name: typing.Literal['_first_run', b'_first_run', '_language', b'_language', '_markdown_description', b'_markdown_description', '_source_type', b'_source_type', 'apps', b'apps', 'entrypoint', b'entrypoint', 'first_run', b'first_run', 'language', b'language', 'markdown_description', b'markdown_description', 'models', b'models', 'source_type', b'source_type', 'versions', b'versions']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__first_run: _TypeAlias = _typing.Literal['first_run'] + _WhichOneofArgType__first_run: _TypeAlias = _typing.Literal['_first_run', b'_first_run'] + _WhichOneofReturnType__language: _TypeAlias = _typing.Literal['language'] + _WhichOneofArgType__language: _TypeAlias = _typing.Literal['_language', b'_language'] + _WhichOneofReturnType__markdown_description: _TypeAlias = _typing.Literal['markdown_description'] + _WhichOneofArgType__markdown_description: _TypeAlias = _typing.Literal['_markdown_description', b'_markdown_description'] + _WhichOneofReturnType__source_type: _TypeAlias = _typing.Literal['source_type'] + _WhichOneofArgType__source_type: _TypeAlias = _typing.Literal['_source_type', b'_source_type'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_first_run', b'_first_run']) -> typing.Literal['first_run'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__first_run) -> _WhichOneofReturnType__first_run | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_language', b'_language']) -> typing.Literal['language'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__language) -> _WhichOneofReturnType__language | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_markdown_description', b'_markdown_description']) -> typing.Literal['markdown_description'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__markdown_description) -> _WhichOneofReturnType__markdown_description | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_source_type', b'_source_type']) -> typing.Literal['source_type'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__source_type) -> _WhichOneofReturnType__source_type | None: ... -global___ModuleMetadata = ModuleMetadata +Global___ModuleMetadata: _TypeAlias = ModuleMetadata -@typing.final -class MLModelVersion(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSION_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - version: builtins.str +@_typing.final +class MLModelVersion(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VERSION_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + version: _builtins.str - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, version: builtins.str=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, version: _builtins.str=..., created_on: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on'] - def HasField(self, field_name: typing.Literal['created_on', b'created_on']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['created_on', b'created_on', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MLModelVersion = MLModelVersion +Global___MLModelVersion: _TypeAlias = MLModelVersion -@typing.final -class MLModelMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSIONS_FIELD_NUMBER: builtins.int - MODEL_TYPE_FIELD_NUMBER: builtins.int - MODEL_FRAMEWORK_FIELD_NUMBER: builtins.int - DETAILED_VERSIONS_FIELD_NUMBER: builtins.int - model_type: app.mltraining.v1.ml_training_pb2.ModelType.ValueType - model_framework: app.mltraining.v1.ml_training_pb2.ModelFramework.ValueType +@_typing.final +class MLModelMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VERSIONS_FIELD_NUMBER: _builtins.int + MODEL_TYPE_FIELD_NUMBER: _builtins.int + MODEL_FRAMEWORK_FIELD_NUMBER: _builtins.int + DETAILED_VERSIONS_FIELD_NUMBER: _builtins.int + model_type: _ml_training_pb2.ModelType.ValueType + model_framework: _ml_training_pb2.ModelFramework.ValueType - @property - def versions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def versions(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """A list of package versions for a ML model""" - @property - def detailed_versions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MLModelVersion]: + @_builtins.property + def detailed_versions(self) -> _containers.RepeatedCompositeFieldContainer[Global___MLModelVersion]: ... - def __init__(self, *, versions: collections.abc.Iterable[builtins.str] | None=..., model_type: app.mltraining.v1.ml_training_pb2.ModelType.ValueType=..., model_framework: app.mltraining.v1.ml_training_pb2.ModelFramework.ValueType=..., detailed_versions: collections.abc.Iterable[global___MLModelVersion] | None=...) -> None: + def __init__(self, *, versions: _abc.Iterable[_builtins.str] | None=..., model_type: _ml_training_pb2.ModelType.ValueType=..., model_framework: _ml_training_pb2.ModelFramework.ValueType=..., detailed_versions: _abc.Iterable[Global___MLModelVersion] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['detailed_versions', b'detailed_versions', 'model_framework', b'model_framework', 'model_type', b'model_type', 'versions', b'versions'] - def ClearField(self, field_name: typing.Literal['detailed_versions', b'detailed_versions', 'model_framework', b'model_framework', 'model_type', b'model_type', 'versions', b'versions']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MLModelMetadata = MLModelMetadata +Global___MLModelMetadata: _TypeAlias = MLModelMetadata -@typing.final -class MLTrainingVersion(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSION_FIELD_NUMBER: builtins.int - CREATED_ON_FIELD_NUMBER: builtins.int - version: builtins.str +@_typing.final +class MLTrainingVersion(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VERSION_FIELD_NUMBER: _builtins.int + CREATED_ON_FIELD_NUMBER: _builtins.int + version: _builtins.str - @property - def created_on(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_on(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, version: builtins.str=..., created_on: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, version: _builtins.str=..., created_on: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on'] - def HasField(self, field_name: typing.Literal['created_on', b'created_on']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['created_on', b'created_on', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['created_on', b'created_on', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MLTrainingVersion = MLTrainingVersion +Global___MLTrainingVersion: _TypeAlias = MLTrainingVersion -@typing.final -class MLTrainingMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSIONS_FIELD_NUMBER: builtins.int - MODEL_TYPE_FIELD_NUMBER: builtins.int - MODEL_FRAMEWORK_FIELD_NUMBER: builtins.int - DRAFT_FIELD_NUMBER: builtins.int - model_type: app.mltraining.v1.ml_training_pb2.ModelType.ValueType - model_framework: app.mltraining.v1.ml_training_pb2.ModelFramework.ValueType - draft: builtins.bool +@_typing.final +class MLTrainingMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VERSIONS_FIELD_NUMBER: _builtins.int + MODEL_TYPE_FIELD_NUMBER: _builtins.int + MODEL_FRAMEWORK_FIELD_NUMBER: _builtins.int + DRAFT_FIELD_NUMBER: _builtins.int + model_type: _ml_training_pb2.ModelType.ValueType + model_framework: _ml_training_pb2.ModelFramework.ValueType + draft: _builtins.bool - @property - def versions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MLTrainingVersion]: + @_builtins.property + def versions(self) -> _containers.RepeatedCompositeFieldContainer[Global___MLTrainingVersion]: """A list of package versions for ML training source distribution""" - def __init__(self, *, versions: collections.abc.Iterable[global___MLTrainingVersion] | None=..., model_type: app.mltraining.v1.ml_training_pb2.ModelType.ValueType=..., model_framework: app.mltraining.v1.ml_training_pb2.ModelFramework.ValueType=..., draft: builtins.bool=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['draft', b'draft', 'model_framework', b'model_framework', 'model_type', b'model_type', 'versions', b'versions']) -> None: - ... -global___MLTrainingMetadata = MLTrainingMetadata - -@typing.final -class RegistryItem(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ITEM_ID_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - VISIBILITY_FIELD_NUMBER: builtins.int - URL_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - TOTAL_ROBOT_USAGE_FIELD_NUMBER: builtins.int - TOTAL_EXTERNAL_ROBOT_USAGE_FIELD_NUMBER: builtins.int - TOTAL_ORGANIZATION_USAGE_FIELD_NUMBER: builtins.int - TOTAL_EXTERNAL_ORGANIZATION_USAGE_FIELD_NUMBER: builtins.int - MODULE_METADATA_FIELD_NUMBER: builtins.int - ML_MODEL_METADATA_FIELD_NUMBER: builtins.int - ML_TRAINING_METADATA_FIELD_NUMBER: builtins.int - CREATED_AT_FIELD_NUMBER: builtins.int - UPDATED_AT_FIELD_NUMBER: builtins.int - item_id: builtins.str + def __init__(self, *, versions: _abc.Iterable[Global___MLTrainingVersion] | None=..., model_type: _ml_training_pb2.ModelType.ValueType=..., model_framework: _ml_training_pb2.ModelFramework.ValueType=..., draft: _builtins.bool=...) -> None: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['draft', b'draft', 'model_framework', b'model_framework', 'model_type', b'model_type', 'versions', b'versions'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___MLTrainingMetadata: _TypeAlias = MLTrainingMetadata + +@_typing.final +class RegistryItem(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ITEM_ID_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + PUBLIC_NAMESPACE_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + VISIBILITY_FIELD_NUMBER: _builtins.int + URL_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + TOTAL_ROBOT_USAGE_FIELD_NUMBER: _builtins.int + TOTAL_EXTERNAL_ROBOT_USAGE_FIELD_NUMBER: _builtins.int + TOTAL_ORGANIZATION_USAGE_FIELD_NUMBER: _builtins.int + TOTAL_EXTERNAL_ORGANIZATION_USAGE_FIELD_NUMBER: _builtins.int + MODULE_METADATA_FIELD_NUMBER: _builtins.int + ML_MODEL_METADATA_FIELD_NUMBER: _builtins.int + ML_TRAINING_METADATA_FIELD_NUMBER: _builtins.int + CREATED_AT_FIELD_NUMBER: _builtins.int + UPDATED_AT_FIELD_NUMBER: _builtins.int + item_id: _builtins.str 'The id of the item, containing either:\n namespace:item_name when a namespace exists on the org.\n org_id:item_name when a namespace does not exist.\n ' - organization_id: builtins.str + organization_id: _builtins.str 'The id of the organization that owns the item' - public_namespace: builtins.str + public_namespace: _builtins.str 'The public namespace of the organization that owns the module\n This is empty if no public namespace is set\n ' - name: builtins.str + name: _builtins.str 'The name of the registry item' - type: app.packages.v1.packages_pb2.PackageType.ValueType + type: _packages_pb2.PackageType.ValueType 'The type of the item in the registry' - visibility: global___Visibility.ValueType + visibility: Global___Visibility.ValueType 'The visibility of the registry item' - url: builtins.str + url: _builtins.str 'The url to reference for documentation, code, etc.' - description: builtins.str + description: _builtins.str 'A short description of the item that explains its purpose' - total_robot_usage: builtins.int + total_robot_usage: _builtins.int 'The total number of robots using this item' - total_external_robot_usage: builtins.int + total_external_robot_usage: _builtins.int 'The total number of robots using this item outside of the owning org' - total_organization_usage: builtins.int + total_organization_usage: _builtins.int 'The total number of organizations using this item' - total_external_organization_usage: builtins.int + total_external_organization_usage: _builtins.int 'The total number of organizations using this item outside of the owning org' - @property - def module_metadata(self) -> global___ModuleMetadata: + @_builtins.property + def module_metadata(self) -> Global___ModuleMetadata: ... - @property - def ml_model_metadata(self) -> global___MLModelMetadata: + @_builtins.property + def ml_model_metadata(self) -> Global___MLModelMetadata: ... - @property - def ml_training_metadata(self) -> global___MLTrainingMetadata: + @_builtins.property + def ml_training_metadata(self) -> Global___MLTrainingMetadata: ... - @property - def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def created_at(self) -> _timestamp_pb2.Timestamp: """When the item was created""" - @property - def updated_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def updated_at(self) -> _timestamp_pb2.Timestamp: """When the item was last updated, either through an update or upload.""" - def __init__(self, *, item_id: builtins.str=..., organization_id: builtins.str=..., public_namespace: builtins.str=..., name: builtins.str=..., type: app.packages.v1.packages_pb2.PackageType.ValueType=..., visibility: global___Visibility.ValueType=..., url: builtins.str=..., description: builtins.str=..., total_robot_usage: builtins.int=..., total_external_robot_usage: builtins.int=..., total_organization_usage: builtins.int=..., total_external_organization_usage: builtins.int=..., module_metadata: global___ModuleMetadata | None=..., ml_model_metadata: global___MLModelMetadata | None=..., ml_training_metadata: global___MLTrainingMetadata | None=..., created_at: google.protobuf.timestamp_pb2.Timestamp | None=..., updated_at: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, item_id: _builtins.str=..., organization_id: _builtins.str=..., public_namespace: _builtins.str=..., name: _builtins.str=..., type: _packages_pb2.PackageType.ValueType=..., visibility: Global___Visibility.ValueType=..., url: _builtins.str=..., description: _builtins.str=..., total_robot_usage: _builtins.int=..., total_external_robot_usage: _builtins.int=..., total_organization_usage: _builtins.int=..., total_external_organization_usage: _builtins.int=..., module_metadata: Global___ModuleMetadata | None=..., ml_model_metadata: Global___MLModelMetadata | None=..., ml_training_metadata: Global___MLTrainingMetadata | None=..., created_at: _timestamp_pb2.Timestamp | None=..., updated_at: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['created_at', b'created_at', 'metadata', b'metadata', 'ml_model_metadata', b'ml_model_metadata', 'ml_training_metadata', b'ml_training_metadata', 'module_metadata', b'module_metadata', 'updated_at', b'updated_at'] - def HasField(self, field_name: typing.Literal['created_at', b'created_at', 'metadata', b'metadata', 'ml_model_metadata', b'ml_model_metadata', 'ml_training_metadata', b'ml_training_metadata', 'module_metadata', b'module_metadata', 'updated_at', b'updated_at']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['created_at', b'created_at', 'description', b'description', 'item_id', b'item_id', 'metadata', b'metadata', 'ml_model_metadata', b'ml_model_metadata', 'ml_training_metadata', b'ml_training_metadata', 'module_metadata', b'module_metadata', 'name', b'name', 'organization_id', b'organization_id', 'public_namespace', b'public_namespace', 'total_external_organization_usage', b'total_external_organization_usage', 'total_external_robot_usage', b'total_external_robot_usage', 'total_organization_usage', b'total_organization_usage', 'total_robot_usage', b'total_robot_usage', 'type', b'type', 'updated_at', b'updated_at', 'url', b'url', 'visibility', b'visibility'] - def ClearField(self, field_name: typing.Literal['created_at', b'created_at', 'description', b'description', 'item_id', b'item_id', 'metadata', b'metadata', 'ml_model_metadata', b'ml_model_metadata', 'ml_training_metadata', b'ml_training_metadata', 'module_metadata', b'module_metadata', 'name', b'name', 'organization_id', b'organization_id', 'public_namespace', b'public_namespace', 'total_external_organization_usage', b'total_external_organization_usage', 'total_external_robot_usage', b'total_external_robot_usage', 'total_organization_usage', b'total_organization_usage', 'total_robot_usage', b'total_robot_usage', 'type', b'type', 'updated_at', b'updated_at', 'url', b'url', 'visibility', b'visibility']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_metadata: _TypeAlias = _typing.Literal['module_metadata', 'ml_model_metadata', 'ml_training_metadata'] + _WhichOneofArgType_metadata: _TypeAlias = _typing.Literal['metadata', b'metadata'] - def WhichOneof(self, oneof_group: typing.Literal['metadata', b'metadata']) -> typing.Literal['module_metadata', 'ml_model_metadata', 'ml_training_metadata'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_metadata) -> _WhichOneofReturnType_metadata | None: ... -global___RegistryItem = RegistryItem +Global___RegistryItem: _TypeAlias = RegistryItem -@typing.final -class GetRegistryItemRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ITEM_ID_FIELD_NUMBER: builtins.int - INCLUDE_MARKDOWN_DOCUMENTATION_FIELD_NUMBER: builtins.int - item_id: builtins.str - include_markdown_documentation: builtins.bool +@_typing.final +class GetRegistryItemRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ITEM_ID_FIELD_NUMBER: _builtins.int + INCLUDE_MARKDOWN_DOCUMENTATION_FIELD_NUMBER: _builtins.int + item_id: _builtins.str + include_markdown_documentation: _builtins.bool - def __init__(self, *, item_id: builtins.str=..., include_markdown_documentation: builtins.bool | None=...) -> None: + def __init__(self, *, item_id: _builtins.str=..., include_markdown_documentation: _builtins.bool | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', 'include_markdown_documentation', b'include_markdown_documentation'] - def HasField(self, field_name: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', 'include_markdown_documentation', b'include_markdown_documentation']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', 'include_markdown_documentation', b'include_markdown_documentation', 'item_id', b'item_id'] - def ClearField(self, field_name: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', 'include_markdown_documentation', b'include_markdown_documentation', 'item_id', b'item_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__include_markdown_documentation: _TypeAlias = _typing.Literal['include_markdown_documentation'] + _WhichOneofArgType__include_markdown_documentation: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation'] - def WhichOneof(self, oneof_group: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation']) -> typing.Literal['include_markdown_documentation'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__include_markdown_documentation) -> _WhichOneofReturnType__include_markdown_documentation | None: ... -global___GetRegistryItemRequest = GetRegistryItemRequest +Global___GetRegistryItemRequest: _TypeAlias = GetRegistryItemRequest -@typing.final -class GetRegistryItemResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ITEM_FIELD_NUMBER: builtins.int +@_typing.final +class GetRegistryItemResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ITEM_FIELD_NUMBER: _builtins.int - @property - def item(self) -> global___RegistryItem: + @_builtins.property + def item(self) -> Global___RegistryItem: ... - def __init__(self, *, item: global___RegistryItem | None=...) -> None: + def __init__(self, *, item: Global___RegistryItem | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['item', b'item'] - def HasField(self, field_name: typing.Literal['item', b'item']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['item', b'item'] - def ClearField(self, field_name: typing.Literal['item', b'item']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetRegistryItemResponse = GetRegistryItemResponse +Global___GetRegistryItemResponse: _TypeAlias = GetRegistryItemResponse -@typing.final -class CreateRegistryItemRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class CreateRegistryItemRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str 'The organization to create the registry item under' - name: builtins.str + name: _builtins.str 'The name of the registry item, which must be unique within your org' - type: app.packages.v1.packages_pb2.PackageType.ValueType + type: _packages_pb2.PackageType.ValueType 'The type of the item in the registry' - def __init__(self, *, organization_id: builtins.str=..., name: builtins.str=..., type: app.packages.v1.packages_pb2.PackageType.ValueType=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., name: _builtins.str=..., type: _packages_pb2.PackageType.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'organization_id', b'organization_id', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['name', b'name', 'organization_id', b'organization_id', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateRegistryItemRequest = CreateRegistryItemRequest +Global___CreateRegistryItemRequest: _TypeAlias = CreateRegistryItemRequest -@typing.final -class CreateRegistryItemResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class CreateRegistryItemResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___CreateRegistryItemResponse = CreateRegistryItemResponse +Global___CreateRegistryItemResponse: _TypeAlias = CreateRegistryItemResponse -@typing.final -class UpdateRegistryItemRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ITEM_ID_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - VISIBILITY_FIELD_NUMBER: builtins.int - URL_FIELD_NUMBER: builtins.int - UPDATE_MODULE_METADATA_FIELD_NUMBER: builtins.int - UPDATE_ML_MODEL_METADATA_FIELD_NUMBER: builtins.int - UPDATE_ML_TRAINING_METADATA_FIELD_NUMBER: builtins.int - MARKDOWN_DESCRIPTION_FIELD_NUMBER: builtins.int - item_id: builtins.str - type: app.packages.v1.packages_pb2.PackageType.ValueType - description: builtins.str - visibility: global___Visibility.ValueType - url: builtins.str - markdown_description: builtins.str +@_typing.final +class UpdateRegistryItemRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ITEM_ID_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + VISIBILITY_FIELD_NUMBER: _builtins.int + URL_FIELD_NUMBER: _builtins.int + UPDATE_MODULE_METADATA_FIELD_NUMBER: _builtins.int + UPDATE_ML_MODEL_METADATA_FIELD_NUMBER: _builtins.int + UPDATE_ML_TRAINING_METADATA_FIELD_NUMBER: _builtins.int + MARKDOWN_DESCRIPTION_FIELD_NUMBER: _builtins.int + item_id: _builtins.str + type: _packages_pb2.PackageType.ValueType + description: _builtins.str + visibility: Global___Visibility.ValueType + url: _builtins.str + markdown_description: _builtins.str - @property - def update_module_metadata(self) -> global___UpdateModuleMetadata: + @_builtins.property + def update_module_metadata(self) -> Global___UpdateModuleMetadata: ... - @property - def update_ml_model_metadata(self) -> global___UpdateMLModelMetadata: + @_builtins.property + def update_ml_model_metadata(self) -> Global___UpdateMLModelMetadata: ... - @property - def update_ml_training_metadata(self) -> global___UpdateMLTrainingMetadata: + @_builtins.property + def update_ml_training_metadata(self) -> Global___UpdateMLTrainingMetadata: ... - def __init__(self, *, item_id: builtins.str=..., type: app.packages.v1.packages_pb2.PackageType.ValueType=..., description: builtins.str=..., visibility: global___Visibility.ValueType=..., url: builtins.str | None=..., update_module_metadata: global___UpdateModuleMetadata | None=..., update_ml_model_metadata: global___UpdateMLModelMetadata | None=..., update_ml_training_metadata: global___UpdateMLTrainingMetadata | None=..., markdown_description: builtins.str | None=...) -> None: + def __init__(self, *, item_id: _builtins.str=..., type: _packages_pb2.PackageType.ValueType=..., description: _builtins.str=..., visibility: Global___Visibility.ValueType=..., url: _builtins.str | None=..., update_module_metadata: Global___UpdateModuleMetadata | None=..., update_ml_model_metadata: Global___UpdateMLModelMetadata | None=..., update_ml_training_metadata: Global___UpdateMLTrainingMetadata | None=..., markdown_description: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_markdown_description', b'_markdown_description', '_url', b'_url', 'markdown_description', b'markdown_description', 'metadata', b'metadata', 'update_ml_model_metadata', b'update_ml_model_metadata', 'update_ml_training_metadata', b'update_ml_training_metadata', 'update_module_metadata', b'update_module_metadata', 'url', b'url'] - def HasField(self, field_name: typing.Literal['_markdown_description', b'_markdown_description', '_url', b'_url', 'markdown_description', b'markdown_description', 'metadata', b'metadata', 'update_ml_model_metadata', b'update_ml_model_metadata', 'update_ml_training_metadata', b'update_ml_training_metadata', 'update_module_metadata', b'update_module_metadata', 'url', b'url']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_markdown_description', b'_markdown_description', '_url', b'_url', 'description', b'description', 'item_id', b'item_id', 'markdown_description', b'markdown_description', 'metadata', b'metadata', 'type', b'type', 'update_ml_model_metadata', b'update_ml_model_metadata', 'update_ml_training_metadata', b'update_ml_training_metadata', 'update_module_metadata', b'update_module_metadata', 'url', b'url', 'visibility', b'visibility'] - def ClearField(self, field_name: typing.Literal['_markdown_description', b'_markdown_description', '_url', b'_url', 'description', b'description', 'item_id', b'item_id', 'markdown_description', b'markdown_description', 'metadata', b'metadata', 'type', b'type', 'update_ml_model_metadata', b'update_ml_model_metadata', 'update_ml_training_metadata', b'update_ml_training_metadata', 'update_module_metadata', b'update_module_metadata', 'url', b'url', 'visibility', b'visibility']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__markdown_description: _TypeAlias = _typing.Literal['markdown_description'] + _WhichOneofArgType__markdown_description: _TypeAlias = _typing.Literal['_markdown_description', b'_markdown_description'] + _WhichOneofReturnType__url: _TypeAlias = _typing.Literal['url'] + _WhichOneofArgType__url: _TypeAlias = _typing.Literal['_url', b'_url'] + _WhichOneofReturnType_metadata: _TypeAlias = _typing.Literal['update_module_metadata', 'update_ml_model_metadata', 'update_ml_training_metadata'] + _WhichOneofArgType_metadata: _TypeAlias = _typing.Literal['metadata', b'metadata'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_markdown_description', b'_markdown_description']) -> typing.Literal['markdown_description'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__markdown_description) -> _WhichOneofReturnType__markdown_description | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_url', b'_url']) -> typing.Literal['url'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__url) -> _WhichOneofReturnType__url | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['metadata', b'metadata']) -> typing.Literal['update_module_metadata', 'update_ml_model_metadata', 'update_ml_training_metadata'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType_metadata) -> _WhichOneofReturnType_metadata | None: ... -global___UpdateRegistryItemRequest = UpdateRegistryItemRequest +Global___UpdateRegistryItemRequest: _TypeAlias = UpdateRegistryItemRequest -@typing.final -class UpdateRegistryItemResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateRegistryItemResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UpdateRegistryItemResponse = UpdateRegistryItemResponse - -@typing.final -class ListRegistryItemsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - TYPES_FIELD_NUMBER: builtins.int - VISIBILITIES_FIELD_NUMBER: builtins.int - PLATFORMS_FIELD_NUMBER: builtins.int - STATUSES_FIELD_NUMBER: builtins.int - SEARCH_TERM_FIELD_NUMBER: builtins.int - PAGE_TOKEN_FIELD_NUMBER: builtins.int - PUBLIC_NAMESPACES_FIELD_NUMBER: builtins.int - INCLUDE_MARKDOWN_DOCUMENTATION_FIELD_NUMBER: builtins.int - MODULE_SOURCE_TYPES_FIELD_NUMBER: builtins.int - MODULE_LANGUAGES_FIELD_NUMBER: builtins.int - organization_id: builtins.str +Global___UpdateRegistryItemResponse: _TypeAlias = UpdateRegistryItemResponse + +@_typing.final +class ListRegistryItemsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + TYPES_FIELD_NUMBER: _builtins.int + VISIBILITIES_FIELD_NUMBER: _builtins.int + PLATFORMS_FIELD_NUMBER: _builtins.int + STATUSES_FIELD_NUMBER: _builtins.int + SEARCH_TERM_FIELD_NUMBER: _builtins.int + PAGE_TOKEN_FIELD_NUMBER: _builtins.int + PUBLIC_NAMESPACES_FIELD_NUMBER: _builtins.int + INCLUDE_MARKDOWN_DOCUMENTATION_FIELD_NUMBER: _builtins.int + MODULE_SOURCE_TYPES_FIELD_NUMBER: _builtins.int + MODULE_LANGUAGES_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str 'The id of the organization to return registry items for.' - search_term: builtins.str - page_token: builtins.str - include_markdown_documentation: builtins.bool + search_term: _builtins.str + page_token: _builtins.str + include_markdown_documentation: _builtins.bool - @property - def types(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[app.packages.v1.packages_pb2.PackageType.ValueType]: + @_builtins.property + def types(self) -> _containers.RepeatedScalarFieldContainer[_packages_pb2.PackageType.ValueType]: ... - @property - def visibilities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___Visibility.ValueType]: + @_builtins.property + def visibilities(self) -> _containers.RepeatedScalarFieldContainer[Global___Visibility.ValueType]: ... - @property - def platforms(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def platforms(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def statuses(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___RegistryItemStatus.ValueType]: + @_builtins.property + def statuses(self) -> _containers.RepeatedScalarFieldContainer[Global___RegistryItemStatus.ValueType]: ... - @property - def public_namespaces(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def public_namespaces(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """One or more public namespaces to return results for.""" - @property - def module_source_types(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___ModuleSourceType.ValueType]: + @_builtins.property + def module_source_types(self) -> _containers.RepeatedScalarFieldContainer[Global___ModuleSourceType.ValueType]: ... - @property - def module_languages(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___ModuleLanguage.ValueType]: + @_builtins.property + def module_languages(self) -> _containers.RepeatedScalarFieldContainer[Global___ModuleLanguage.ValueType]: ... - def __init__(self, *, organization_id: builtins.str | None=..., types: collections.abc.Iterable[app.packages.v1.packages_pb2.PackageType.ValueType] | None=..., visibilities: collections.abc.Iterable[global___Visibility.ValueType] | None=..., platforms: collections.abc.Iterable[builtins.str] | None=..., statuses: collections.abc.Iterable[global___RegistryItemStatus.ValueType] | None=..., search_term: builtins.str | None=..., page_token: builtins.str | None=..., public_namespaces: collections.abc.Iterable[builtins.str] | None=..., include_markdown_documentation: builtins.bool | None=..., module_source_types: collections.abc.Iterable[global___ModuleSourceType.ValueType] | None=..., module_languages: collections.abc.Iterable[global___ModuleLanguage.ValueType] | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str | None=..., types: _abc.Iterable[_packages_pb2.PackageType.ValueType] | None=..., visibilities: _abc.Iterable[Global___Visibility.ValueType] | None=..., platforms: _abc.Iterable[_builtins.str] | None=..., statuses: _abc.Iterable[Global___RegistryItemStatus.ValueType] | None=..., search_term: _builtins.str | None=..., page_token: _builtins.str | None=..., public_namespaces: _abc.Iterable[_builtins.str] | None=..., include_markdown_documentation: _builtins.bool | None=..., module_source_types: _abc.Iterable[Global___ModuleSourceType.ValueType] | None=..., module_languages: _abc.Iterable[Global___ModuleLanguage.ValueType] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', '_organization_id', b'_organization_id', '_page_token', b'_page_token', '_search_term', b'_search_term', 'include_markdown_documentation', b'include_markdown_documentation', 'organization_id', b'organization_id', 'page_token', b'page_token', 'search_term', b'search_term'] - def HasField(self, field_name: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', '_organization_id', b'_organization_id', '_page_token', b'_page_token', '_search_term', b'_search_term', 'include_markdown_documentation', b'include_markdown_documentation', 'organization_id', b'organization_id', 'page_token', b'page_token', 'search_term', b'search_term']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', '_organization_id', b'_organization_id', '_page_token', b'_page_token', '_search_term', b'_search_term', 'include_markdown_documentation', b'include_markdown_documentation', 'module_languages', b'module_languages', 'module_source_types', b'module_source_types', 'organization_id', b'organization_id', 'page_token', b'page_token', 'platforms', b'platforms', 'public_namespaces', b'public_namespaces', 'search_term', b'search_term', 'statuses', b'statuses', 'types', b'types', 'visibilities', b'visibilities'] - def ClearField(self, field_name: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', '_organization_id', b'_organization_id', '_page_token', b'_page_token', '_search_term', b'_search_term', 'include_markdown_documentation', b'include_markdown_documentation', 'module_languages', b'module_languages', 'module_source_types', b'module_source_types', 'organization_id', b'organization_id', 'page_token', b'page_token', 'platforms', b'platforms', 'public_namespaces', b'public_namespaces', 'search_term', b'search_term', 'statuses', b'statuses', 'types', b'types', 'visibilities', b'visibilities']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__include_markdown_documentation: _TypeAlias = _typing.Literal['include_markdown_documentation'] + _WhichOneofArgType__include_markdown_documentation: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation'] + _WhichOneofReturnType__organization_id: _TypeAlias = _typing.Literal['organization_id'] + _WhichOneofArgType__organization_id: _TypeAlias = _typing.Literal['_organization_id', b'_organization_id'] + _WhichOneofReturnType__page_token: _TypeAlias = _typing.Literal['page_token'] + _WhichOneofArgType__page_token: _TypeAlias = _typing.Literal['_page_token', b'_page_token'] + _WhichOneofReturnType__search_term: _TypeAlias = _typing.Literal['search_term'] + _WhichOneofArgType__search_term: _TypeAlias = _typing.Literal['_search_term', b'_search_term'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation']) -> typing.Literal['include_markdown_documentation'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__include_markdown_documentation) -> _WhichOneofReturnType__include_markdown_documentation | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_organization_id', b'_organization_id']) -> typing.Literal['organization_id'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__organization_id) -> _WhichOneofReturnType__organization_id | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_page_token', b'_page_token']) -> typing.Literal['page_token'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__page_token) -> _WhichOneofReturnType__page_token | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_search_term', b'_search_term']) -> typing.Literal['search_term'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__search_term) -> _WhichOneofReturnType__search_term | None: ... -global___ListRegistryItemsRequest = ListRegistryItemsRequest +Global___ListRegistryItemsRequest: _TypeAlias = ListRegistryItemsRequest -@typing.final -class ListRegistryItemsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ITEMS_FIELD_NUMBER: builtins.int +@_typing.final +class ListRegistryItemsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ITEMS_FIELD_NUMBER: _builtins.int - @property - def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RegistryItem]: + @_builtins.property + def items(self) -> _containers.RepeatedCompositeFieldContainer[Global___RegistryItem]: ... - def __init__(self, *, items: collections.abc.Iterable[global___RegistryItem] | None=...) -> None: + def __init__(self, *, items: _abc.Iterable[Global___RegistryItem] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['items', b'items'] - def ClearField(self, field_name: typing.Literal['items', b'items']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListRegistryItemsResponse = ListRegistryItemsResponse +Global___ListRegistryItemsResponse: _TypeAlias = ListRegistryItemsResponse -@typing.final -class DeleteRegistryItemRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ITEM_ID_FIELD_NUMBER: builtins.int - item_id: builtins.str +@_typing.final +class DeleteRegistryItemRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ITEM_ID_FIELD_NUMBER: _builtins.int + item_id: _builtins.str "The id of the item (formatted as prefix:name where prefix is the owner's orgid or namespace)" - def __init__(self, *, item_id: builtins.str=...) -> None: + def __init__(self, *, item_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['item_id', b'item_id'] - def ClearField(self, field_name: typing.Literal['item_id', b'item_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteRegistryItemRequest = DeleteRegistryItemRequest +Global___DeleteRegistryItemRequest: _TypeAlias = DeleteRegistryItemRequest -@typing.final -class DeleteRegistryItemResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteRegistryItemResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteRegistryItemResponse = DeleteRegistryItemResponse +Global___DeleteRegistryItemResponse: _TypeAlias = DeleteRegistryItemResponse -@typing.final -class RenameRegistryItemRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ITEM_ID_FIELD_NUMBER: builtins.int - NEW_NAME_FIELD_NUMBER: builtins.int - item_id: builtins.str - new_name: builtins.str +@_typing.final +class RenameRegistryItemRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ITEM_ID_FIELD_NUMBER: _builtins.int + NEW_NAME_FIELD_NUMBER: _builtins.int + item_id: _builtins.str + new_name: _builtins.str - def __init__(self, *, item_id: builtins.str=..., new_name: builtins.str=...) -> None: + def __init__(self, *, item_id: _builtins.str=..., new_name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['item_id', b'item_id', 'new_name', b'new_name'] - def ClearField(self, field_name: typing.Literal['item_id', b'item_id', 'new_name', b'new_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RenameRegistryItemRequest = RenameRegistryItemRequest +Global___RenameRegistryItemRequest: _TypeAlias = RenameRegistryItemRequest -@typing.final -class RenameRegistryItemResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ITEM_FIELD_NUMBER: builtins.int +@_typing.final +class RenameRegistryItemResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ITEM_FIELD_NUMBER: _builtins.int - @property - def item(self) -> global___RegistryItem: + @_builtins.property + def item(self) -> Global___RegistryItem: ... - def __init__(self, *, item: global___RegistryItem | None=...) -> None: + def __init__(self, *, item: Global___RegistryItem | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['item', b'item'] - def HasField(self, field_name: typing.Literal['item', b'item']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['item', b'item'] - def ClearField(self, field_name: typing.Literal['item', b'item']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RenameRegistryItemResponse = RenameRegistryItemResponse +Global___RenameRegistryItemResponse: _TypeAlias = RenameRegistryItemResponse -@typing.final -class TransferRegistryItemRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ITEM_ID_FIELD_NUMBER: builtins.int - NEW_PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int - item_id: builtins.str - new_public_namespace: builtins.str +@_typing.final +class TransferRegistryItemRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ITEM_ID_FIELD_NUMBER: _builtins.int + NEW_PUBLIC_NAMESPACE_FIELD_NUMBER: _builtins.int + item_id: _builtins.str + new_public_namespace: _builtins.str - def __init__(self, *, item_id: builtins.str=..., new_public_namespace: builtins.str=...) -> None: + def __init__(self, *, item_id: _builtins.str=..., new_public_namespace: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['item_id', b'item_id', 'new_public_namespace', b'new_public_namespace'] - def ClearField(self, field_name: typing.Literal['item_id', b'item_id', 'new_public_namespace', b'new_public_namespace']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TransferRegistryItemRequest = TransferRegistryItemRequest +Global___TransferRegistryItemRequest: _TypeAlias = TransferRegistryItemRequest -@typing.final -class TransferRegistryItemResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class TransferRegistryItemResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___TransferRegistryItemResponse = TransferRegistryItemResponse +Global___TransferRegistryItemResponse: _TypeAlias = TransferRegistryItemResponse -@typing.final -class CreateModuleRequest(google.protobuf.message.Message): +@_typing.final +class CreateModuleRequest(_message.Message): """Modules""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - organization_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str 'The organization to create the module under' - name: builtins.str + name: _builtins.str 'The name of the module, which must be unique within your org' - def __init__(self, *, organization_id: builtins.str=..., name: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['name', b'name', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateModuleRequest = CreateModuleRequest +Global___CreateModuleRequest: _TypeAlias = CreateModuleRequest -@typing.final -class CreateModuleResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODULE_ID_FIELD_NUMBER: builtins.int - URL_FIELD_NUMBER: builtins.int - module_id: builtins.str +@_typing.final +class CreateModuleResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODULE_ID_FIELD_NUMBER: _builtins.int + URL_FIELD_NUMBER: _builtins.int + module_id: _builtins.str "The id of the module (formatted as prefix:name where prefix is the module owner's orgid or namespace)" - url: builtins.str + url: _builtins.str 'The detail page of the module' - def __init__(self, *, module_id: builtins.str=..., url: builtins.str=...) -> None: + def __init__(self, *, module_id: _builtins.str=..., url: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['module_id', b'module_id', 'url', b'url'] - def ClearField(self, field_name: typing.Literal['module_id', b'module_id', 'url', b'url']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateModuleResponse = CreateModuleResponse +Global___CreateModuleResponse: _TypeAlias = CreateModuleResponse -@typing.final -class UpdateModuleRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODULE_ID_FIELD_NUMBER: builtins.int - VISIBILITY_FIELD_NUMBER: builtins.int - URL_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - MODELS_FIELD_NUMBER: builtins.int - ENTRYPOINT_FIELD_NUMBER: builtins.int - FIRST_RUN_FIELD_NUMBER: builtins.int - APPS_FIELD_NUMBER: builtins.int - MARKDOWN_DESCRIPTION_FIELD_NUMBER: builtins.int - module_id: builtins.str +@_typing.final +class UpdateModuleRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODULE_ID_FIELD_NUMBER: _builtins.int + VISIBILITY_FIELD_NUMBER: _builtins.int + URL_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + MODELS_FIELD_NUMBER: _builtins.int + ENTRYPOINT_FIELD_NUMBER: _builtins.int + FIRST_RUN_FIELD_NUMBER: _builtins.int + APPS_FIELD_NUMBER: _builtins.int + MARKDOWN_DESCRIPTION_FIELD_NUMBER: _builtins.int + module_id: _builtins.str "The id of the module (formatted as prefix:name where prefix is the module owner's orgid or namespace)" - visibility: global___Visibility.ValueType + visibility: Global___Visibility.ValueType 'The visibility that should be set for the module' - url: builtins.str + url: _builtins.str 'The url to reference for documentation, code, etc.' - description: builtins.str + description: _builtins.str 'A short description of the module that explains its purpose' - entrypoint: builtins.str + entrypoint: _builtins.str 'The executable to run to start the module program' - first_run: builtins.str + first_run: _builtins.str 'The path to a setup script that is run before a newly downloaded module starts.' - markdown_description: builtins.str + markdown_description: _builtins.str 'longer documentation provided in markdown format' - @property - def models(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Model]: + @_builtins.property + def models(self) -> _containers.RepeatedCompositeFieldContainer[Global___Model]: """A list of models that are available in the module""" - @property - def apps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___App]: + @_builtins.property + def apps(self) -> _containers.RepeatedCompositeFieldContainer[Global___App]: """A list of applications associated with the module""" - def __init__(self, *, module_id: builtins.str=..., visibility: global___Visibility.ValueType=..., url: builtins.str=..., description: builtins.str=..., models: collections.abc.Iterable[global___Model] | None=..., entrypoint: builtins.str=..., first_run: builtins.str | None=..., apps: collections.abc.Iterable[global___App] | None=..., markdown_description: builtins.str | None=...) -> None: + def __init__(self, *, module_id: _builtins.str=..., visibility: Global___Visibility.ValueType=..., url: _builtins.str=..., description: _builtins.str=..., models: _abc.Iterable[Global___Model] | None=..., entrypoint: _builtins.str=..., first_run: _builtins.str | None=..., apps: _abc.Iterable[Global___App] | None=..., markdown_description: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'first_run', b'first_run', 'markdown_description', b'markdown_description'] - def HasField(self, field_name: typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'first_run', b'first_run', 'markdown_description', b'markdown_description']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'apps', b'apps', 'description', b'description', 'entrypoint', b'entrypoint', 'first_run', b'first_run', 'markdown_description', b'markdown_description', 'models', b'models', 'module_id', b'module_id', 'url', b'url', 'visibility', b'visibility'] - def ClearField(self, field_name: typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'apps', b'apps', 'description', b'description', 'entrypoint', b'entrypoint', 'first_run', b'first_run', 'markdown_description', b'markdown_description', 'models', b'models', 'module_id', b'module_id', 'url', b'url', 'visibility', b'visibility']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__first_run: _TypeAlias = _typing.Literal['first_run'] + _WhichOneofArgType__first_run: _TypeAlias = _typing.Literal['_first_run', b'_first_run'] + _WhichOneofReturnType__markdown_description: _TypeAlias = _typing.Literal['markdown_description'] + _WhichOneofArgType__markdown_description: _TypeAlias = _typing.Literal['_markdown_description', b'_markdown_description'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_first_run', b'_first_run']) -> typing.Literal['first_run'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__first_run) -> _WhichOneofReturnType__first_run | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_markdown_description', b'_markdown_description']) -> typing.Literal['markdown_description'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__markdown_description) -> _WhichOneofReturnType__markdown_description | None: ... -global___UpdateModuleRequest = UpdateModuleRequest +Global___UpdateModuleRequest: _TypeAlias = UpdateModuleRequest -@typing.final -class App(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - ENTRYPOINT_FIELD_NUMBER: builtins.int - FRAGMENT_IDS_FIELD_NUMBER: builtins.int - LOGO_PATH_FIELD_NUMBER: builtins.int - CUSTOMIZATIONS_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class App(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + ENTRYPOINT_FIELD_NUMBER: _builtins.int + FRAGMENT_IDS_FIELD_NUMBER: _builtins.int + LOGO_PATH_FIELD_NUMBER: _builtins.int + CUSTOMIZATIONS_FIELD_NUMBER: _builtins.int + name: _builtins.str 'The name of the application' - type: builtins.str + type: _builtins.str 'The type of the application' - entrypoint: builtins.str + entrypoint: _builtins.str 'The entrypoint of the application' - logo_path: builtins.str + logo_path: _builtins.str 'Optional: path to a custom logo for branding' - @property - def fragment_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def fragment_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Optional: fragment IDs to filter machines in the picker""" - @property - def customizations(self) -> global___AppCustomizations: + @_builtins.property + def customizations(self) -> Global___AppCustomizations: """Optional: structured customizations for the app (e.g., machine picker headings)""" - def __init__(self, *, name: builtins.str=..., type: builtins.str=..., entrypoint: builtins.str=..., fragment_ids: collections.abc.Iterable[builtins.str] | None=..., logo_path: builtins.str | None=..., customizations: global___AppCustomizations | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., type: _builtins.str=..., entrypoint: _builtins.str=..., fragment_ids: _abc.Iterable[_builtins.str] | None=..., logo_path: _builtins.str | None=..., customizations: Global___AppCustomizations | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_logo_path', b'_logo_path', 'customizations', b'customizations', 'logo_path', b'logo_path'] - def HasField(self, field_name: typing.Literal['_logo_path', b'_logo_path', 'customizations', b'customizations', 'logo_path', b'logo_path']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_logo_path', b'_logo_path', 'customizations', b'customizations', 'entrypoint', b'entrypoint', 'fragment_ids', b'fragment_ids', 'logo_path', b'logo_path', 'name', b'name', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['_logo_path', b'_logo_path', 'customizations', b'customizations', 'entrypoint', b'entrypoint', 'fragment_ids', b'fragment_ids', 'logo_path', b'logo_path', 'name', b'name', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__logo_path: _TypeAlias = _typing.Literal['logo_path'] + _WhichOneofArgType__logo_path: _TypeAlias = _typing.Literal['_logo_path', b'_logo_path'] - def WhichOneof(self, oneof_group: typing.Literal['_logo_path', b'_logo_path']) -> typing.Literal['logo_path'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__logo_path) -> _WhichOneofReturnType__logo_path | None: ... -global___App = App +Global___App: _TypeAlias = App -@typing.final -class UpdateModuleResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - URL_FIELD_NUMBER: builtins.int - url: builtins.str +@_typing.final +class UpdateModuleResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + URL_FIELD_NUMBER: _builtins.int + url: _builtins.str 'The detail page of the module' - def __init__(self, *, url: builtins.str=...) -> None: + def __init__(self, *, url: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['url', b'url'] - def ClearField(self, field_name: typing.Literal['url', b'url']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateModuleResponse = UpdateModuleResponse +Global___UpdateModuleResponse: _TypeAlias = UpdateModuleResponse -@typing.final -class UpdateModuleMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODELS_FIELD_NUMBER: builtins.int - ENTRYPOINT_FIELD_NUMBER: builtins.int - APPS_FIELD_NUMBER: builtins.int - SOURCE_TYPE_FIELD_NUMBER: builtins.int - LANGUAGE_FIELD_NUMBER: builtins.int - entrypoint: builtins.str +@_typing.final +class UpdateModuleMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODELS_FIELD_NUMBER: _builtins.int + ENTRYPOINT_FIELD_NUMBER: _builtins.int + APPS_FIELD_NUMBER: _builtins.int + SOURCE_TYPE_FIELD_NUMBER: _builtins.int + LANGUAGE_FIELD_NUMBER: _builtins.int + entrypoint: _builtins.str 'The executable to run to start the module program' - source_type: global___ModuleSourceType.ValueType + source_type: Global___ModuleSourceType.ValueType 'Determines where the source code of module is managed, either externally or hosted by viam.' - language: global___ModuleLanguage.ValueType + language: Global___ModuleLanguage.ValueType 'The language the module is written in' - @property - def models(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Model]: + @_builtins.property + def models(self) -> _containers.RepeatedCompositeFieldContainer[Global___Model]: """A list of models that are available in the module""" - @property - def apps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___App]: + @_builtins.property + def apps(self) -> _containers.RepeatedCompositeFieldContainer[Global___App]: """A list of applications associated with the module""" - def __init__(self, *, models: collections.abc.Iterable[global___Model] | None=..., entrypoint: builtins.str=..., apps: collections.abc.Iterable[global___App] | None=..., source_type: global___ModuleSourceType.ValueType | None=..., language: global___ModuleLanguage.ValueType | None=...) -> None: + def __init__(self, *, models: _abc.Iterable[Global___Model] | None=..., entrypoint: _builtins.str=..., apps: _abc.Iterable[Global___App] | None=..., source_type: Global___ModuleSourceType.ValueType | None=..., language: Global___ModuleLanguage.ValueType | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_language', b'_language', '_source_type', b'_source_type', 'language', b'language', 'source_type', b'source_type'] - def HasField(self, field_name: typing.Literal['_language', b'_language', '_source_type', b'_source_type', 'language', b'language', 'source_type', b'source_type']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_language', b'_language', '_source_type', b'_source_type', 'apps', b'apps', 'entrypoint', b'entrypoint', 'language', b'language', 'models', b'models', 'source_type', b'source_type'] - def ClearField(self, field_name: typing.Literal['_language', b'_language', '_source_type', b'_source_type', 'apps', b'apps', 'entrypoint', b'entrypoint', 'language', b'language', 'models', b'models', 'source_type', b'source_type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__language: _TypeAlias = _typing.Literal['language'] + _WhichOneofArgType__language: _TypeAlias = _typing.Literal['_language', b'_language'] + _WhichOneofReturnType__source_type: _TypeAlias = _typing.Literal['source_type'] + _WhichOneofArgType__source_type: _TypeAlias = _typing.Literal['_source_type', b'_source_type'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_language', b'_language']) -> typing.Literal['language'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__language) -> _WhichOneofReturnType__language | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_source_type', b'_source_type']) -> typing.Literal['source_type'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__source_type) -> _WhichOneofReturnType__source_type | None: ... -global___UpdateModuleMetadata = UpdateModuleMetadata +Global___UpdateModuleMetadata: _TypeAlias = UpdateModuleMetadata -@typing.final -class UpdateMLModelMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODEL_TYPE_FIELD_NUMBER: builtins.int - MODEL_FRAMEWORK_FIELD_NUMBER: builtins.int - model_type: app.mltraining.v1.ml_training_pb2.ModelType.ValueType - model_framework: app.mltraining.v1.ml_training_pb2.ModelFramework.ValueType +@_typing.final +class UpdateMLModelMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODEL_TYPE_FIELD_NUMBER: _builtins.int + MODEL_FRAMEWORK_FIELD_NUMBER: _builtins.int + model_type: _ml_training_pb2.ModelType.ValueType + model_framework: _ml_training_pb2.ModelFramework.ValueType - def __init__(self, *, model_type: app.mltraining.v1.ml_training_pb2.ModelType.ValueType=..., model_framework: app.mltraining.v1.ml_training_pb2.ModelFramework.ValueType=...) -> None: + def __init__(self, *, model_type: _ml_training_pb2.ModelType.ValueType=..., model_framework: _ml_training_pb2.ModelFramework.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['model_framework', b'model_framework', 'model_type', b'model_type'] - def ClearField(self, field_name: typing.Literal['model_framework', b'model_framework', 'model_type', b'model_type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateMLModelMetadata = UpdateMLModelMetadata +Global___UpdateMLModelMetadata: _TypeAlias = UpdateMLModelMetadata -@typing.final -class UpdateMLTrainingMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODEL_TYPE_FIELD_NUMBER: builtins.int - MODEL_FRAMEWORK_FIELD_NUMBER: builtins.int - DRAFT_FIELD_NUMBER: builtins.int - model_type: app.mltraining.v1.ml_training_pb2.ModelType.ValueType - model_framework: app.mltraining.v1.ml_training_pb2.ModelFramework.ValueType - draft: builtins.bool +@_typing.final +class UpdateMLTrainingMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODEL_TYPE_FIELD_NUMBER: _builtins.int + MODEL_FRAMEWORK_FIELD_NUMBER: _builtins.int + DRAFT_FIELD_NUMBER: _builtins.int + model_type: _ml_training_pb2.ModelType.ValueType + model_framework: _ml_training_pb2.ModelFramework.ValueType + draft: _builtins.bool - def __init__(self, *, model_type: app.mltraining.v1.ml_training_pb2.ModelType.ValueType=..., model_framework: app.mltraining.v1.ml_training_pb2.ModelFramework.ValueType=..., draft: builtins.bool=...) -> None: + def __init__(self, *, model_type: _ml_training_pb2.ModelType.ValueType=..., model_framework: _ml_training_pb2.ModelFramework.ValueType=..., draft: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['draft', b'draft', 'model_framework', b'model_framework', 'model_type', b'model_type'] - def ClearField(self, field_name: typing.Literal['draft', b'draft', 'model_framework', b'model_framework', 'model_type', b'model_type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateMLTrainingMetadata = UpdateMLTrainingMetadata +Global___UpdateMLTrainingMetadata: _TypeAlias = UpdateMLTrainingMetadata -@typing.final -class Model(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - API_FIELD_NUMBER: builtins.int - MODEL_FIELD_NUMBER: builtins.int - MARKDOWN_DOCUMENTATION_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - SUPPORTED_HARDWARE_FIELD_NUMBER: builtins.int - api: builtins.str +@_typing.final +class Model(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + API_FIELD_NUMBER: _builtins.int + MODEL_FIELD_NUMBER: _builtins.int + MARKDOWN_DOCUMENTATION_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + SUPPORTED_HARDWARE_FIELD_NUMBER: _builtins.int + api: _builtins.str 'The colon-delimited-triplet of the api implemented by the model' - model: builtins.str + model: _builtins.str 'The colon-delimited-triplet of the model' - markdown_documentation: builtins.str + markdown_documentation: _builtins.str 'The markdown content describing the usage of the model' - description: builtins.str + description: _builtins.str 'A short description of the model that explains its purpose' - @property - def supported_hardware(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def supported_hardware(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """A list of supported hardware names""" - def __init__(self, *, api: builtins.str=..., model: builtins.str=..., markdown_documentation: builtins.str | None=..., description: builtins.str | None=..., supported_hardware: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, api: _builtins.str=..., model: _builtins.str=..., markdown_documentation: _builtins.str | None=..., description: _builtins.str | None=..., supported_hardware: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_description', b'_description', '_markdown_documentation', b'_markdown_documentation', 'description', b'description', 'markdown_documentation', b'markdown_documentation'] - def HasField(self, field_name: typing.Literal['_description', b'_description', '_markdown_documentation', b'_markdown_documentation', 'description', b'description', 'markdown_documentation', b'markdown_documentation']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_description', b'_description', '_markdown_documentation', b'_markdown_documentation', 'api', b'api', 'description', b'description', 'markdown_documentation', b'markdown_documentation', 'model', b'model', 'supported_hardware', b'supported_hardware'] - def ClearField(self, field_name: typing.Literal['_description', b'_description', '_markdown_documentation', b'_markdown_documentation', 'api', b'api', 'description', b'description', 'markdown_documentation', b'markdown_documentation', 'model', b'model', 'supported_hardware', b'supported_hardware']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__description: _TypeAlias = _typing.Literal['description'] + _WhichOneofArgType__description: _TypeAlias = _typing.Literal['_description', b'_description'] + _WhichOneofReturnType__markdown_documentation: _TypeAlias = _typing.Literal['markdown_documentation'] + _WhichOneofArgType__markdown_documentation: _TypeAlias = _typing.Literal['_markdown_documentation', b'_markdown_documentation'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_description', b'_description']) -> typing.Literal['description'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__description) -> _WhichOneofReturnType__description | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_markdown_documentation', b'_markdown_documentation']) -> typing.Literal['markdown_documentation'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__markdown_documentation) -> _WhichOneofReturnType__markdown_documentation | None: ... -global___Model = Model +Global___Model: _TypeAlias = Model -@typing.final -class ModuleFileInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODULE_ID_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - PLATFORM_FIELD_NUMBER: builtins.int - PLATFORM_TAGS_FIELD_NUMBER: builtins.int - module_id: builtins.str +@_typing.final +class ModuleFileInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODULE_ID_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + PLATFORM_FIELD_NUMBER: _builtins.int + PLATFORM_TAGS_FIELD_NUMBER: _builtins.int + module_id: _builtins.str "The id of the module (formatted as prefix:name where prefix is the module owner's orgid or namespace)" - version: builtins.str + version: _builtins.str 'The semver string that represents the new major/minor/patch version of the module' - platform: builtins.str + platform: _builtins.str 'The platform that the file is built to run on' - @property - def platform_tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def platform_tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Platform tag constraints. When a robot requests its config, it uploads a platform and a list of platform tags. The platform is checked against `platform` above, and the tags are checked against this list. """ - def __init__(self, *, module_id: builtins.str=..., version: builtins.str=..., platform: builtins.str=..., platform_tags: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, module_id: _builtins.str=..., version: _builtins.str=..., platform: _builtins.str=..., platform_tags: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['module_id', b'module_id', 'platform', b'platform', 'platform_tags', b'platform_tags', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['module_id', b'module_id', 'platform', b'platform', 'platform_tags', b'platform_tags', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ModuleFileInfo = ModuleFileInfo +Global___ModuleFileInfo: _TypeAlias = ModuleFileInfo -@typing.final -class UploadModuleFileRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODULE_FILE_INFO_FIELD_NUMBER: builtins.int - FILE_FIELD_NUMBER: builtins.int - file: builtins.bytes +@_typing.final +class UploadModuleFileRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODULE_FILE_INFO_FIELD_NUMBER: _builtins.int + FILE_FIELD_NUMBER: _builtins.int + file: _builtins.bytes 'The file contents to be uploaded' - @property - def module_file_info(self) -> global___ModuleFileInfo: + @_builtins.property + def module_file_info(self) -> Global___ModuleFileInfo: """The information about the module file being uploaded""" - def __init__(self, *, module_file_info: global___ModuleFileInfo | None=..., file: builtins.bytes=...) -> None: + def __init__(self, *, module_file_info: Global___ModuleFileInfo | None=..., file: _builtins.bytes=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['file', b'file', 'module_file', b'module_file', 'module_file_info', b'module_file_info'] - def HasField(self, field_name: typing.Literal['file', b'file', 'module_file', b'module_file', 'module_file_info', b'module_file_info']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['file', b'file', 'module_file', b'module_file', 'module_file_info', b'module_file_info'] - def ClearField(self, field_name: typing.Literal['file', b'file', 'module_file', b'module_file', 'module_file_info', b'module_file_info']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_module_file: _TypeAlias = _typing.Literal['module_file_info', 'file'] + _WhichOneofArgType_module_file: _TypeAlias = _typing.Literal['module_file', b'module_file'] - def WhichOneof(self, oneof_group: typing.Literal['module_file', b'module_file']) -> typing.Literal['module_file_info', 'file'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_module_file) -> _WhichOneofReturnType_module_file | None: ... -global___UploadModuleFileRequest = UploadModuleFileRequest +Global___UploadModuleFileRequest: _TypeAlias = UploadModuleFileRequest -@typing.final -class UploadModuleFileResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - URL_FIELD_NUMBER: builtins.int - url: builtins.str +@_typing.final +class UploadModuleFileResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + URL_FIELD_NUMBER: _builtins.int + url: _builtins.str 'The detail page of the module' - def __init__(self, *, url: builtins.str=...) -> None: + def __init__(self, *, url: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['url', b'url'] - def ClearField(self, field_name: typing.Literal['url', b'url']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UploadModuleFileResponse = UploadModuleFileResponse +Global___UploadModuleFileResponse: _TypeAlias = UploadModuleFileResponse -@typing.final -class GetModuleRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODULE_ID_FIELD_NUMBER: builtins.int - INCLUDE_MARKDOWN_DOCUMENTATION_FIELD_NUMBER: builtins.int - module_id: builtins.str +@_typing.final +class GetModuleRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODULE_ID_FIELD_NUMBER: _builtins.int + INCLUDE_MARKDOWN_DOCUMENTATION_FIELD_NUMBER: _builtins.int + module_id: _builtins.str "The id of the module (formatted as prefix:name where prefix is the module owner's orgid or namespace)" - include_markdown_documentation: builtins.bool + include_markdown_documentation: _builtins.bool - def __init__(self, *, module_id: builtins.str=..., include_markdown_documentation: builtins.bool | None=...) -> None: + def __init__(self, *, module_id: _builtins.str=..., include_markdown_documentation: _builtins.bool | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', 'include_markdown_documentation', b'include_markdown_documentation'] - def HasField(self, field_name: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', 'include_markdown_documentation', b'include_markdown_documentation']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', 'include_markdown_documentation', b'include_markdown_documentation', 'module_id', b'module_id'] - def ClearField(self, field_name: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', 'include_markdown_documentation', b'include_markdown_documentation', 'module_id', b'module_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__include_markdown_documentation: _TypeAlias = _typing.Literal['include_markdown_documentation'] + _WhichOneofArgType__include_markdown_documentation: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation'] - def WhichOneof(self, oneof_group: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation']) -> typing.Literal['include_markdown_documentation'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__include_markdown_documentation) -> _WhichOneofReturnType__include_markdown_documentation | None: ... -global___GetModuleRequest = GetModuleRequest +Global___GetModuleRequest: _TypeAlias = GetModuleRequest -@typing.final -class GetModuleResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODULE_FIELD_NUMBER: builtins.int +@_typing.final +class GetModuleResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODULE_FIELD_NUMBER: _builtins.int - @property - def module(self) -> global___Module: + @_builtins.property + def module(self) -> Global___Module: """The module object""" - def __init__(self, *, module: global___Module | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['module', b'module']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['module', b'module']) -> None: - ... -global___GetModuleResponse = GetModuleResponse - -@typing.final -class Module(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODULE_ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - VISIBILITY_FIELD_NUMBER: builtins.int - VERSIONS_FIELD_NUMBER: builtins.int - URL_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - MODELS_FIELD_NUMBER: builtins.int - TOTAL_ROBOT_USAGE_FIELD_NUMBER: builtins.int - TOTAL_ORGANIZATION_USAGE_FIELD_NUMBER: builtins.int - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - ENTRYPOINT_FIELD_NUMBER: builtins.int - PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int - FIRST_RUN_FIELD_NUMBER: builtins.int - MARKDOWN_DESCRIPTION_FIELD_NUMBER: builtins.int - APPS_FIELD_NUMBER: builtins.int - module_id: builtins.str + def __init__(self, *, module: Global___Module | None=...) -> None: + ... + _HasFieldArgType: _TypeAlias = _typing.Literal['module', b'module'] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['module', b'module'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___GetModuleResponse: _TypeAlias = GetModuleResponse + +@_typing.final +class Module(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODULE_ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + VISIBILITY_FIELD_NUMBER: _builtins.int + VERSIONS_FIELD_NUMBER: _builtins.int + URL_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + MODELS_FIELD_NUMBER: _builtins.int + TOTAL_ROBOT_USAGE_FIELD_NUMBER: _builtins.int + TOTAL_ORGANIZATION_USAGE_FIELD_NUMBER: _builtins.int + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + ENTRYPOINT_FIELD_NUMBER: _builtins.int + PUBLIC_NAMESPACE_FIELD_NUMBER: _builtins.int + FIRST_RUN_FIELD_NUMBER: _builtins.int + MARKDOWN_DESCRIPTION_FIELD_NUMBER: _builtins.int + APPS_FIELD_NUMBER: _builtins.int + module_id: _builtins.str "The id of the module (formatted as prefix:name where prefix is the module owner's orgid or namespace)" - name: builtins.str + name: _builtins.str 'The name of the module' - visibility: global___Visibility.ValueType + visibility: Global___Visibility.ValueType 'The visibility of the module' - url: builtins.str + url: _builtins.str 'The url to reference for documentation, code, etc.' - description: builtins.str + description: _builtins.str 'A short description of the module that explains its purpose' - total_robot_usage: builtins.int + total_robot_usage: _builtins.int 'The total number of robots using this module' - total_organization_usage: builtins.int + total_organization_usage: _builtins.int 'The total number of organizations using this module' - organization_id: builtins.str + organization_id: _builtins.str 'The id of the organization that owns the module' - entrypoint: builtins.str + entrypoint: _builtins.str 'The executable to run to start the module program' - public_namespace: builtins.str + public_namespace: _builtins.str 'The public namespace of the organization that owns the module\n This is empty if no public namespace is set\n ' - first_run: builtins.str + first_run: _builtins.str 'The path to a setup script that is run before a newly downloaded module starts.' - markdown_description: builtins.str + markdown_description: _builtins.str 'Longer documentation provided in markdown format' - @property - def versions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VersionHistory]: + @_builtins.property + def versions(self) -> _containers.RepeatedCompositeFieldContainer[Global___VersionHistory]: """The versions of the module that are available When this is returned from the backend, the versions are sorted in ascending order by the semver version """ - @property - def models(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Model]: + @_builtins.property + def models(self) -> _containers.RepeatedCompositeFieldContainer[Global___Model]: """A list of models that are available in the module""" - @property - def apps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___App]: + @_builtins.property + def apps(self) -> _containers.RepeatedCompositeFieldContainer[Global___App]: """A list of applications associated with the module""" - def __init__(self, *, module_id: builtins.str=..., name: builtins.str=..., visibility: global___Visibility.ValueType=..., versions: collections.abc.Iterable[global___VersionHistory] | None=..., url: builtins.str=..., description: builtins.str=..., models: collections.abc.Iterable[global___Model] | None=..., total_robot_usage: builtins.int=..., total_organization_usage: builtins.int=..., organization_id: builtins.str=..., entrypoint: builtins.str=..., public_namespace: builtins.str=..., first_run: builtins.str | None=..., markdown_description: builtins.str | None=..., apps: collections.abc.Iterable[global___App] | None=...) -> None: + def __init__(self, *, module_id: _builtins.str=..., name: _builtins.str=..., visibility: Global___Visibility.ValueType=..., versions: _abc.Iterable[Global___VersionHistory] | None=..., url: _builtins.str=..., description: _builtins.str=..., models: _abc.Iterable[Global___Model] | None=..., total_robot_usage: _builtins.int=..., total_organization_usage: _builtins.int=..., organization_id: _builtins.str=..., entrypoint: _builtins.str=..., public_namespace: _builtins.str=..., first_run: _builtins.str | None=..., markdown_description: _builtins.str | None=..., apps: _abc.Iterable[Global___App] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'first_run', b'first_run', 'markdown_description', b'markdown_description'] - def HasField(self, field_name: typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'first_run', b'first_run', 'markdown_description', b'markdown_description']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'apps', b'apps', 'description', b'description', 'entrypoint', b'entrypoint', 'first_run', b'first_run', 'markdown_description', b'markdown_description', 'models', b'models', 'module_id', b'module_id', 'name', b'name', 'organization_id', b'organization_id', 'public_namespace', b'public_namespace', 'total_organization_usage', b'total_organization_usage', 'total_robot_usage', b'total_robot_usage', 'url', b'url', 'versions', b'versions', 'visibility', b'visibility'] - def ClearField(self, field_name: typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'apps', b'apps', 'description', b'description', 'entrypoint', b'entrypoint', 'first_run', b'first_run', 'markdown_description', b'markdown_description', 'models', b'models', 'module_id', b'module_id', 'name', b'name', 'organization_id', b'organization_id', 'public_namespace', b'public_namespace', 'total_organization_usage', b'total_organization_usage', 'total_robot_usage', b'total_robot_usage', 'url', b'url', 'versions', b'versions', 'visibility', b'visibility']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__first_run: _TypeAlias = _typing.Literal['first_run'] + _WhichOneofArgType__first_run: _TypeAlias = _typing.Literal['_first_run', b'_first_run'] + _WhichOneofReturnType__markdown_description: _TypeAlias = _typing.Literal['markdown_description'] + _WhichOneofArgType__markdown_description: _TypeAlias = _typing.Literal['_markdown_description', b'_markdown_description'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_first_run', b'_first_run']) -> typing.Literal['first_run'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__first_run) -> _WhichOneofReturnType__first_run | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_markdown_description', b'_markdown_description']) -> typing.Literal['markdown_description'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__markdown_description) -> _WhichOneofReturnType__markdown_description | None: ... -global___Module = Module +Global___Module: _TypeAlias = Module -@typing.final -class VersionHistory(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSION_FIELD_NUMBER: builtins.int - FILES_FIELD_NUMBER: builtins.int - MODELS_FIELD_NUMBER: builtins.int - ENTRYPOINT_FIELD_NUMBER: builtins.int - FIRST_RUN_FIELD_NUMBER: builtins.int - MARKDOWN_DESCRIPTION_FIELD_NUMBER: builtins.int - APPS_FIELD_NUMBER: builtins.int - version: builtins.str +@_typing.final +class VersionHistory(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VERSION_FIELD_NUMBER: _builtins.int + FILES_FIELD_NUMBER: _builtins.int + MODELS_FIELD_NUMBER: _builtins.int + ENTRYPOINT_FIELD_NUMBER: _builtins.int + FIRST_RUN_FIELD_NUMBER: _builtins.int + MARKDOWN_DESCRIPTION_FIELD_NUMBER: _builtins.int + APPS_FIELD_NUMBER: _builtins.int + version: _builtins.str 'The semver string that represents the major/minor/patch version of the module' - entrypoint: builtins.str + entrypoint: _builtins.str 'The entrypoint for this version of the module' - first_run: builtins.str + first_run: _builtins.str 'The path to a setup script that is run before a newly downloaded module starts.' - markdown_description: builtins.str + markdown_description: _builtins.str 'The markdown documentation for this version of the module' - @property - def files(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Uploads]: + @_builtins.property + def files(self) -> _containers.RepeatedCompositeFieldContainer[Global___Uploads]: """The uploads that are available for this module version""" - @property - def models(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Model]: + @_builtins.property + def models(self) -> _containers.RepeatedCompositeFieldContainer[Global___Model]: """The models that this verion of the module provides""" - @property - def apps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___App]: + @_builtins.property + def apps(self) -> _containers.RepeatedCompositeFieldContainer[Global___App]: """A list of applications associated with the module""" - def __init__(self, *, version: builtins.str=..., files: collections.abc.Iterable[global___Uploads] | None=..., models: collections.abc.Iterable[global___Model] | None=..., entrypoint: builtins.str=..., first_run: builtins.str | None=..., markdown_description: builtins.str | None=..., apps: collections.abc.Iterable[global___App] | None=...) -> None: + def __init__(self, *, version: _builtins.str=..., files: _abc.Iterable[Global___Uploads] | None=..., models: _abc.Iterable[Global___Model] | None=..., entrypoint: _builtins.str=..., first_run: _builtins.str | None=..., markdown_description: _builtins.str | None=..., apps: _abc.Iterable[Global___App] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'first_run', b'first_run', 'markdown_description', b'markdown_description'] - def HasField(self, field_name: typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'first_run', b'first_run', 'markdown_description', b'markdown_description']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'apps', b'apps', 'entrypoint', b'entrypoint', 'files', b'files', 'first_run', b'first_run', 'markdown_description', b'markdown_description', 'models', b'models', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['_first_run', b'_first_run', '_markdown_description', b'_markdown_description', 'apps', b'apps', 'entrypoint', b'entrypoint', 'files', b'files', 'first_run', b'first_run', 'markdown_description', b'markdown_description', 'models', b'models', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__first_run: _TypeAlias = _typing.Literal['first_run'] + _WhichOneofArgType__first_run: _TypeAlias = _typing.Literal['_first_run', b'_first_run'] + _WhichOneofReturnType__markdown_description: _TypeAlias = _typing.Literal['markdown_description'] + _WhichOneofArgType__markdown_description: _TypeAlias = _typing.Literal['_markdown_description', b'_markdown_description'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_first_run', b'_first_run']) -> typing.Literal['first_run'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__first_run) -> _WhichOneofReturnType__first_run | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_markdown_description', b'_markdown_description']) -> typing.Literal['markdown_description'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__markdown_description) -> _WhichOneofReturnType__markdown_description | None: ... -global___VersionHistory = VersionHistory +Global___VersionHistory: _TypeAlias = VersionHistory -@typing.final -class Uploads(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PLATFORM_FIELD_NUMBER: builtins.int - UPLOADED_AT_FIELD_NUMBER: builtins.int - platform: builtins.str +@_typing.final +class Uploads(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PLATFORM_FIELD_NUMBER: _builtins.int + UPLOADED_AT_FIELD_NUMBER: _builtins.int + platform: _builtins.str 'The OS and architecture the module is built to run on' - @property - def uploaded_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def uploaded_at(self) -> _timestamp_pb2.Timestamp: """The time when the file was uploaded""" - def __init__(self, *, platform: builtins.str=..., uploaded_at: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, platform: _builtins.str=..., uploaded_at: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['uploaded_at', b'uploaded_at'] - def HasField(self, field_name: typing.Literal['uploaded_at', b'uploaded_at']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['platform', b'platform', 'uploaded_at', b'uploaded_at'] - def ClearField(self, field_name: typing.Literal['platform', b'platform', 'uploaded_at', b'uploaded_at']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Uploads = Uploads +Global___Uploads: _TypeAlias = Uploads -@typing.final -class ListModulesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - INCLUDE_MARKDOWN_DOCUMENTATION_FIELD_NUMBER: builtins.int - organization_id: builtins.str +@_typing.final +class ListModulesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + INCLUDE_MARKDOWN_DOCUMENTATION_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str 'The id of the organization to return private modules for.' - include_markdown_documentation: builtins.bool + include_markdown_documentation: _builtins.bool - def __init__(self, *, organization_id: builtins.str | None=..., include_markdown_documentation: builtins.bool | None=...) -> None: + def __init__(self, *, organization_id: _builtins.str | None=..., include_markdown_documentation: _builtins.bool | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', '_organization_id', b'_organization_id', 'include_markdown_documentation', b'include_markdown_documentation', 'organization_id', b'organization_id'] - def HasField(self, field_name: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', '_organization_id', b'_organization_id', 'include_markdown_documentation', b'include_markdown_documentation', 'organization_id', b'organization_id']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', '_organization_id', b'_organization_id', 'include_markdown_documentation', b'include_markdown_documentation', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation', '_organization_id', b'_organization_id', 'include_markdown_documentation', b'include_markdown_documentation', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__include_markdown_documentation: _TypeAlias = _typing.Literal['include_markdown_documentation'] + _WhichOneofArgType__include_markdown_documentation: _TypeAlias = _typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation'] + _WhichOneofReturnType__organization_id: _TypeAlias = _typing.Literal['organization_id'] + _WhichOneofArgType__organization_id: _TypeAlias = _typing.Literal['_organization_id', b'_organization_id'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_include_markdown_documentation', b'_include_markdown_documentation']) -> typing.Literal['include_markdown_documentation'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__include_markdown_documentation) -> _WhichOneofReturnType__include_markdown_documentation | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_organization_id', b'_organization_id']) -> typing.Literal['organization_id'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__organization_id) -> _WhichOneofReturnType__organization_id | None: ... -global___ListModulesRequest = ListModulesRequest +Global___ListModulesRequest: _TypeAlias = ListModulesRequest -@typing.final -class ListModulesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODULES_FIELD_NUMBER: builtins.int +@_typing.final +class ListModulesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODULES_FIELD_NUMBER: _builtins.int - @property - def modules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Module]: + @_builtins.property + def modules(self) -> _containers.RepeatedCompositeFieldContainer[Global___Module]: """A listed of modules. When authenticated, this API will return modules that are private for this org. Public modules are always returned.""" - def __init__(self, *, modules: collections.abc.Iterable[global___Module] | None=...) -> None: + def __init__(self, *, modules: _abc.Iterable[Global___Module] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['modules', b'modules'] - def ClearField(self, field_name: typing.Literal['modules', b'modules']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListModulesResponse = ListModulesResponse +Global___ListModulesResponse: _TypeAlias = ListModulesResponse -@typing.final -class GetUserIDByEmailRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EMAIL_FIELD_NUMBER: builtins.int - email: builtins.str +@_typing.final +class GetUserIDByEmailRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + EMAIL_FIELD_NUMBER: _builtins.int + email: _builtins.str - def __init__(self, *, email: builtins.str=...) -> None: + def __init__(self, *, email: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['email', b'email'] - def ClearField(self, field_name: typing.Literal['email', b'email']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetUserIDByEmailRequest = GetUserIDByEmailRequest +Global___GetUserIDByEmailRequest: _TypeAlias = GetUserIDByEmailRequest -@typing.final -class GetUserIDByEmailResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - USER_ID_FIELD_NUMBER: builtins.int - user_id: builtins.str +@_typing.final +class GetUserIDByEmailResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + USER_ID_FIELD_NUMBER: _builtins.int + user_id: _builtins.str - def __init__(self, *, user_id: builtins.str=...) -> None: + def __init__(self, *, user_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['user_id', b'user_id'] - def ClearField(self, field_name: typing.Literal['user_id', b'user_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetUserIDByEmailResponse = GetUserIDByEmailResponse +Global___GetUserIDByEmailResponse: _TypeAlias = GetUserIDByEmailResponse -@typing.final -class ListOrganizationsByUserRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - USER_ID_FIELD_NUMBER: builtins.int - user_id: builtins.str +@_typing.final +class ListOrganizationsByUserRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + USER_ID_FIELD_NUMBER: _builtins.int + user_id: _builtins.str - def __init__(self, *, user_id: builtins.str=...) -> None: + def __init__(self, *, user_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['user_id', b'user_id'] - def ClearField(self, field_name: typing.Literal['user_id', b'user_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListOrganizationsByUserRequest = ListOrganizationsByUserRequest +Global___ListOrganizationsByUserRequest: _TypeAlias = ListOrganizationsByUserRequest -@typing.final -class OrgDetails(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - ORG_NAME_FIELD_NUMBER: builtins.int - ORG_CID_FIELD_NUMBER: builtins.int - PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int - BILLING_TIER_FIELD_NUMBER: builtins.int - org_id: builtins.str - org_name: builtins.str - org_cid: builtins.str - public_namespace: builtins.str - billing_tier: builtins.str +@_typing.final +class OrgDetails(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + ORG_NAME_FIELD_NUMBER: _builtins.int + ORG_CID_FIELD_NUMBER: _builtins.int + PUBLIC_NAMESPACE_FIELD_NUMBER: _builtins.int + BILLING_TIER_FIELD_NUMBER: _builtins.int + org_id: _builtins.str + org_name: _builtins.str + org_cid: _builtins.str + public_namespace: _builtins.str + billing_tier: _builtins.str - def __init__(self, *, org_id: builtins.str=..., org_name: builtins.str=..., org_cid: builtins.str | None=..., public_namespace: builtins.str | None=..., billing_tier: builtins.str | None=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., org_name: _builtins.str=..., org_cid: _builtins.str | None=..., public_namespace: _builtins.str | None=..., billing_tier: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_billing_tier', b'_billing_tier', '_org_cid', b'_org_cid', '_public_namespace', b'_public_namespace', 'billing_tier', b'billing_tier', 'org_cid', b'org_cid', 'public_namespace', b'public_namespace'] - def HasField(self, field_name: typing.Literal['_billing_tier', b'_billing_tier', '_org_cid', b'_org_cid', '_public_namespace', b'_public_namespace', 'billing_tier', b'billing_tier', 'org_cid', b'org_cid', 'public_namespace', b'public_namespace']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_billing_tier', b'_billing_tier', '_org_cid', b'_org_cid', '_public_namespace', b'_public_namespace', 'billing_tier', b'billing_tier', 'org_cid', b'org_cid', 'org_id', b'org_id', 'org_name', b'org_name', 'public_namespace', b'public_namespace'] - def ClearField(self, field_name: typing.Literal['_billing_tier', b'_billing_tier', '_org_cid', b'_org_cid', '_public_namespace', b'_public_namespace', 'billing_tier', b'billing_tier', 'org_cid', b'org_cid', 'org_id', b'org_id', 'org_name', b'org_name', 'public_namespace', b'public_namespace']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__billing_tier: _TypeAlias = _typing.Literal['billing_tier'] + _WhichOneofArgType__billing_tier: _TypeAlias = _typing.Literal['_billing_tier', b'_billing_tier'] + _WhichOneofReturnType__org_cid: _TypeAlias = _typing.Literal['org_cid'] + _WhichOneofArgType__org_cid: _TypeAlias = _typing.Literal['_org_cid', b'_org_cid'] + _WhichOneofReturnType__public_namespace: _TypeAlias = _typing.Literal['public_namespace'] + _WhichOneofArgType__public_namespace: _TypeAlias = _typing.Literal['_public_namespace', b'_public_namespace'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_billing_tier', b'_billing_tier']) -> typing.Literal['billing_tier'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__billing_tier) -> _WhichOneofReturnType__billing_tier | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_org_cid', b'_org_cid']) -> typing.Literal['org_cid'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__org_cid) -> _WhichOneofReturnType__org_cid | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_public_namespace', b'_public_namespace']) -> typing.Literal['public_namespace'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__public_namespace) -> _WhichOneofReturnType__public_namespace | None: ... -global___OrgDetails = OrgDetails +Global___OrgDetails: _TypeAlias = OrgDetails -@typing.final -class ListOrganizationsByUserResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGS_FIELD_NUMBER: builtins.int +@_typing.final +class ListOrganizationsByUserResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGS_FIELD_NUMBER: _builtins.int - @property - def orgs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___OrgDetails]: + @_builtins.property + def orgs(self) -> _containers.RepeatedCompositeFieldContainer[Global___OrgDetails]: ... - def __init__(self, *, orgs: collections.abc.Iterable[global___OrgDetails] | None=...) -> None: + def __init__(self, *, orgs: _abc.Iterable[Global___OrgDetails] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['orgs', b'orgs'] - def ClearField(self, field_name: typing.Literal['orgs', b'orgs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListOrganizationsByUserResponse = ListOrganizationsByUserResponse +Global___ListOrganizationsByUserResponse: _TypeAlias = ListOrganizationsByUserResponse -@typing.final -class SearchOrganizationsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - ORG_NAME_FIELD_NUMBER: builtins.int - CID_FIELD_NUMBER: builtins.int - PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int - org_id: builtins.str - org_name: builtins.str - cid: builtins.str - public_namespace: builtins.str +@_typing.final +class SearchOrganizationsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + ORG_NAME_FIELD_NUMBER: _builtins.int + CID_FIELD_NUMBER: _builtins.int + PUBLIC_NAMESPACE_FIELD_NUMBER: _builtins.int + org_id: _builtins.str + org_name: _builtins.str + cid: _builtins.str + public_namespace: _builtins.str - def __init__(self, *, org_id: builtins.str | None=..., org_name: builtins.str | None=..., cid: builtins.str | None=..., public_namespace: builtins.str | None=...) -> None: + def __init__(self, *, org_id: _builtins.str | None=..., org_name: _builtins.str | None=..., cid: _builtins.str | None=..., public_namespace: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_cid', b'_cid', '_org_id', b'_org_id', '_org_name', b'_org_name', '_public_namespace', b'_public_namespace', 'cid', b'cid', 'org_id', b'org_id', 'org_name', b'org_name', 'public_namespace', b'public_namespace'] - def HasField(self, field_name: typing.Literal['_cid', b'_cid', '_org_id', b'_org_id', '_org_name', b'_org_name', '_public_namespace', b'_public_namespace', 'cid', b'cid', 'org_id', b'org_id', 'org_name', b'org_name', 'public_namespace', b'public_namespace']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_cid', b'_cid', '_org_id', b'_org_id', '_org_name', b'_org_name', '_public_namespace', b'_public_namespace', 'cid', b'cid', 'org_id', b'org_id', 'org_name', b'org_name', 'public_namespace', b'public_namespace'] - def ClearField(self, field_name: typing.Literal['_cid', b'_cid', '_org_id', b'_org_id', '_org_name', b'_org_name', '_public_namespace', b'_public_namespace', 'cid', b'cid', 'org_id', b'org_id', 'org_name', b'org_name', 'public_namespace', b'public_namespace']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__cid: _TypeAlias = _typing.Literal['cid'] + _WhichOneofArgType__cid: _TypeAlias = _typing.Literal['_cid', b'_cid'] + _WhichOneofReturnType__org_id: _TypeAlias = _typing.Literal['org_id'] + _WhichOneofArgType__org_id: _TypeAlias = _typing.Literal['_org_id', b'_org_id'] + _WhichOneofReturnType__org_name: _TypeAlias = _typing.Literal['org_name'] + _WhichOneofArgType__org_name: _TypeAlias = _typing.Literal['_org_name', b'_org_name'] + _WhichOneofReturnType__public_namespace: _TypeAlias = _typing.Literal['public_namespace'] + _WhichOneofArgType__public_namespace: _TypeAlias = _typing.Literal['_public_namespace', b'_public_namespace'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_cid', b'_cid']) -> typing.Literal['cid'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__cid) -> _WhichOneofReturnType__cid | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_org_id', b'_org_id']) -> typing.Literal['org_id'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__org_id) -> _WhichOneofReturnType__org_id | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_org_name', b'_org_name']) -> typing.Literal['org_name'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__org_name) -> _WhichOneofReturnType__org_name | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_public_namespace', b'_public_namespace']) -> typing.Literal['public_namespace'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__public_namespace) -> _WhichOneofReturnType__public_namespace | None: ... -global___SearchOrganizationsRequest = SearchOrganizationsRequest +Global___SearchOrganizationsRequest: _TypeAlias = SearchOrganizationsRequest -@typing.final -class SearchOrganizationsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATIONS_FIELD_NUMBER: builtins.int +@_typing.final +class SearchOrganizationsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATIONS_FIELD_NUMBER: _builtins.int - @property - def organizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___OrgDetails]: + @_builtins.property + def organizations(self) -> _containers.RepeatedCompositeFieldContainer[Global___OrgDetails]: ... - def __init__(self, *, organizations: collections.abc.Iterable[global___OrgDetails] | None=...) -> None: + def __init__(self, *, organizations: _abc.Iterable[Global___OrgDetails] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['organizations', b'organizations'] - def ClearField(self, field_name: typing.Literal['organizations', b'organizations']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SearchOrganizationsResponse = SearchOrganizationsResponse +Global___SearchOrganizationsResponse: _TypeAlias = SearchOrganizationsResponse -@typing.final -class CreateKeyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AUTHORIZATIONS_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class CreateKeyRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AUTHORIZATIONS_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def authorizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Authorization]: + @_builtins.property + def authorizations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Authorization]: ... - def __init__(self, *, authorizations: collections.abc.Iterable[global___Authorization] | None=..., name: builtins.str=...) -> None: + def __init__(self, *, authorizations: _abc.Iterable[Global___Authorization] | None=..., name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['authorizations', b'authorizations', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['authorizations', b'authorizations', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateKeyRequest = CreateKeyRequest +Global___CreateKeyRequest: _TypeAlias = CreateKeyRequest -@typing.final -class CreateKeyResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - ID_FIELD_NUMBER: builtins.int - key: builtins.str - id: builtins.str +@_typing.final +class CreateKeyResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + ID_FIELD_NUMBER: _builtins.int + key: _builtins.str + id: _builtins.str - def __init__(self, *, key: builtins.str=..., id: builtins.str=...) -> None: + def __init__(self, *, key: _builtins.str=..., id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'key', b'key'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'key', b'key']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateKeyResponse = CreateKeyResponse +Global___CreateKeyResponse: _TypeAlias = CreateKeyResponse -@typing.final -class DeleteKeyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class DeleteKeyRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteKeyRequest = DeleteKeyRequest +Global___DeleteKeyRequest: _TypeAlias = DeleteKeyRequest -@typing.final -class DeleteKeyResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteKeyResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteKeyResponse = DeleteKeyResponse +Global___DeleteKeyResponse: _TypeAlias = DeleteKeyResponse -@typing.final -class RenameKeyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str +@_typing.final +class RenameKeyRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str - def __init__(self, *, id: builtins.str=..., name: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RenameKeyRequest = RenameKeyRequest +Global___RenameKeyRequest: _TypeAlias = RenameKeyRequest -@typing.final -class RenameKeyResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str +@_typing.final +class RenameKeyResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str - def __init__(self, *, id: builtins.str=..., name: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RenameKeyResponse = RenameKeyResponse +Global___RenameKeyResponse: _TypeAlias = RenameKeyResponse -@typing.final -class AuthorizationDetails(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AUTHORIZATION_TYPE_FIELD_NUMBER: builtins.int - AUTHORIZATION_ID_FIELD_NUMBER: builtins.int - RESOURCE_TYPE_FIELD_NUMBER: builtins.int - RESOURCE_ID_FIELD_NUMBER: builtins.int - ORG_ID_FIELD_NUMBER: builtins.int - authorization_type: builtins.str - authorization_id: builtins.str - resource_type: builtins.str - resource_id: builtins.str - org_id: builtins.str +@_typing.final +class AuthorizationDetails(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AUTHORIZATION_TYPE_FIELD_NUMBER: _builtins.int + AUTHORIZATION_ID_FIELD_NUMBER: _builtins.int + RESOURCE_TYPE_FIELD_NUMBER: _builtins.int + RESOURCE_ID_FIELD_NUMBER: _builtins.int + ORG_ID_FIELD_NUMBER: _builtins.int + authorization_type: _builtins.str + authorization_id: _builtins.str + resource_type: _builtins.str + resource_id: _builtins.str + org_id: _builtins.str - def __init__(self, *, authorization_type: builtins.str=..., authorization_id: builtins.str=..., resource_type: builtins.str=..., resource_id: builtins.str=..., org_id: builtins.str=...) -> None: + def __init__(self, *, authorization_type: _builtins.str=..., authorization_id: _builtins.str=..., resource_type: _builtins.str=..., resource_id: _builtins.str=..., org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['authorization_id', b'authorization_id', 'authorization_type', b'authorization_type', 'org_id', b'org_id', 'resource_id', b'resource_id', 'resource_type', b'resource_type'] - def ClearField(self, field_name: typing.Literal['authorization_id', b'authorization_id', 'authorization_type', b'authorization_type', 'org_id', b'org_id', 'resource_id', b'resource_id', 'resource_type', b'resource_type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AuthorizationDetails = AuthorizationDetails +Global___AuthorizationDetails: _TypeAlias = AuthorizationDetails -@typing.final -class APIKeyWithAuthorizations(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - API_KEY_FIELD_NUMBER: builtins.int - AUTHORIZATIONS_FIELD_NUMBER: builtins.int +@_typing.final +class APIKeyWithAuthorizations(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + API_KEY_FIELD_NUMBER: _builtins.int + AUTHORIZATIONS_FIELD_NUMBER: _builtins.int - @property - def api_key(self) -> global___APIKey: + @_builtins.property + def api_key(self) -> Global___APIKey: ... - @property - def authorizations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AuthorizationDetails]: + @_builtins.property + def authorizations(self) -> _containers.RepeatedCompositeFieldContainer[Global___AuthorizationDetails]: ... - def __init__(self, *, api_key: global___APIKey | None=..., authorizations: collections.abc.Iterable[global___AuthorizationDetails] | None=...) -> None: + def __init__(self, *, api_key: Global___APIKey | None=..., authorizations: _abc.Iterable[Global___AuthorizationDetails] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['api_key', b'api_key'] - def HasField(self, field_name: typing.Literal['api_key', b'api_key']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['api_key', b'api_key', 'authorizations', b'authorizations'] - def ClearField(self, field_name: typing.Literal['api_key', b'api_key', 'authorizations', b'authorizations']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___APIKeyWithAuthorizations = APIKeyWithAuthorizations +Global___APIKeyWithAuthorizations: _TypeAlias = APIKeyWithAuthorizations -@typing.final -class ListKeysRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class ListKeysRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListKeysRequest = ListKeysRequest +Global___ListKeysRequest: _TypeAlias = ListKeysRequest -@typing.final -class ListKeysResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - API_KEYS_FIELD_NUMBER: builtins.int +@_typing.final +class ListKeysResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + API_KEYS_FIELD_NUMBER: _builtins.int - @property - def api_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___APIKeyWithAuthorizations]: + @_builtins.property + def api_keys(self) -> _containers.RepeatedCompositeFieldContainer[Global___APIKeyWithAuthorizations]: ... - def __init__(self, *, api_keys: collections.abc.Iterable[global___APIKeyWithAuthorizations] | None=...) -> None: + def __init__(self, *, api_keys: _abc.Iterable[Global___APIKeyWithAuthorizations] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['api_keys', b'api_keys'] - def ClearField(self, field_name: typing.Literal['api_keys', b'api_keys']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListKeysResponse = ListKeysResponse +Global___ListKeysResponse: _TypeAlias = ListKeysResponse -@typing.final -class RotateKeyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class RotateKeyRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RotateKeyRequest = RotateKeyRequest +Global___RotateKeyRequest: _TypeAlias = RotateKeyRequest -@typing.final -class RotateKeyResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - KEY_FIELD_NUMBER: builtins.int - id: builtins.str - key: builtins.str +@_typing.final +class RotateKeyResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + KEY_FIELD_NUMBER: _builtins.int + id: _builtins.str + key: _builtins.str - def __init__(self, *, id: builtins.str=..., key: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., key: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'key', b'key'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'key', b'key']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RotateKeyResponse = RotateKeyResponse +Global___RotateKeyResponse: _TypeAlias = RotateKeyResponse -@typing.final -class CreateKeyFromExistingKeyAuthorizationsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class CreateKeyFromExistingKeyAuthorizationsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateKeyFromExistingKeyAuthorizationsRequest = CreateKeyFromExistingKeyAuthorizationsRequest +Global___CreateKeyFromExistingKeyAuthorizationsRequest: _TypeAlias = CreateKeyFromExistingKeyAuthorizationsRequest -@typing.final -class CreateKeyFromExistingKeyAuthorizationsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - KEY_FIELD_NUMBER: builtins.int - id: builtins.str - key: builtins.str +@_typing.final +class CreateKeyFromExistingKeyAuthorizationsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + KEY_FIELD_NUMBER: _builtins.int + id: _builtins.str + key: _builtins.str - def __init__(self, *, id: builtins.str=..., key: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., key: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'key', b'key'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'key', b'key']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateKeyFromExistingKeyAuthorizationsResponse = CreateKeyFromExistingKeyAuthorizationsResponse +Global___CreateKeyFromExistingKeyAuthorizationsResponse: _TypeAlias = CreateKeyFromExistingKeyAuthorizationsResponse -@typing.final -class GetAppContentRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - public_namespace: builtins.str - name: builtins.str +@_typing.final +class GetAppContentRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PUBLIC_NAMESPACE_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + public_namespace: _builtins.str + name: _builtins.str - def __init__(self, *, public_namespace: builtins.str=..., name: builtins.str=...) -> None: + def __init__(self, *, public_namespace: _builtins.str=..., name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'public_namespace', b'public_namespace'] - def ClearField(self, field_name: typing.Literal['name', b'name', 'public_namespace', b'public_namespace']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAppContentRequest = GetAppContentRequest +Global___GetAppContentRequest: _TypeAlias = GetAppContentRequest -@typing.final -class GetAppContentResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BLOB_PATH_FIELD_NUMBER: builtins.int - ENTRYPOINT_FIELD_NUMBER: builtins.int - APP_TYPE_FIELD_NUMBER: builtins.int - PUBLIC_FIELD_NUMBER: builtins.int - blob_path: builtins.str - entrypoint: builtins.str - app_type: global___AppType.ValueType - public: builtins.bool +@_typing.final +class GetAppContentResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + BLOB_PATH_FIELD_NUMBER: _builtins.int + ENTRYPOINT_FIELD_NUMBER: _builtins.int + APP_TYPE_FIELD_NUMBER: _builtins.int + PUBLIC_FIELD_NUMBER: _builtins.int + blob_path: _builtins.str + entrypoint: _builtins.str + app_type: Global___AppType.ValueType + public: _builtins.bool - def __init__(self, *, blob_path: builtins.str=..., entrypoint: builtins.str=..., app_type: global___AppType.ValueType=..., public: builtins.bool=...) -> None: + def __init__(self, *, blob_path: _builtins.str=..., entrypoint: _builtins.str=..., app_type: Global___AppType.ValueType=..., public: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['app_type', b'app_type', 'blob_path', b'blob_path', 'entrypoint', b'entrypoint', 'public', b'public'] - def ClearField(self, field_name: typing.Literal['app_type', b'app_type', 'blob_path', b'blob_path', 'entrypoint', b'entrypoint', 'public', b'public']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAppContentResponse = GetAppContentResponse +Global___GetAppContentResponse: _TypeAlias = GetAppContentResponse -@typing.final -class OrganizationSetLogoRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - LOGO_FIELD_NUMBER: builtins.int - org_id: builtins.str - logo: builtins.bytes +@_typing.final +class OrganizationSetLogoRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + LOGO_FIELD_NUMBER: _builtins.int + org_id: _builtins.str + logo: _builtins.bytes - def __init__(self, *, org_id: builtins.str=..., logo: builtins.bytes=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., logo: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['logo', b'logo', 'org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['logo', b'logo', 'org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OrganizationSetLogoRequest = OrganizationSetLogoRequest +Global___OrganizationSetLogoRequest: _TypeAlias = OrganizationSetLogoRequest -@typing.final -class OrganizationSetLogoResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class OrganizationSetLogoResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___OrganizationSetLogoResponse = OrganizationSetLogoResponse +Global___OrganizationSetLogoResponse: _TypeAlias = OrganizationSetLogoResponse -@typing.final -class OrganizationGetLogoRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class OrganizationGetLogoRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OrganizationGetLogoRequest = OrganizationGetLogoRequest +Global___OrganizationGetLogoRequest: _TypeAlias = OrganizationGetLogoRequest -@typing.final -class OrganizationGetLogoResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - URL_FIELD_NUMBER: builtins.int - url: builtins.str +@_typing.final +class OrganizationGetLogoResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + URL_FIELD_NUMBER: _builtins.int + url: _builtins.str - def __init__(self, *, url: builtins.str=...) -> None: + def __init__(self, *, url: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['url', b'url'] - def ClearField(self, field_name: typing.Literal['url', b'url']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OrganizationGetLogoResponse = OrganizationGetLogoResponse +Global___OrganizationGetLogoResponse: _TypeAlias = OrganizationGetLogoResponse -@typing.final -class EnableAuthServiceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class EnableAuthServiceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EnableAuthServiceRequest = EnableAuthServiceRequest +Global___EnableAuthServiceRequest: _TypeAlias = EnableAuthServiceRequest -@typing.final -class EnableAuthServiceResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class EnableAuthServiceResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___EnableAuthServiceResponse = EnableAuthServiceResponse +Global___EnableAuthServiceResponse: _TypeAlias = EnableAuthServiceResponse -@typing.final -class DisableAuthServiceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class DisableAuthServiceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DisableAuthServiceRequest = DisableAuthServiceRequest +Global___DisableAuthServiceRequest: _TypeAlias = DisableAuthServiceRequest -@typing.final -class DisableAuthServiceResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DisableAuthServiceResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DisableAuthServiceResponse = DisableAuthServiceResponse +Global___DisableAuthServiceResponse: _TypeAlias = DisableAuthServiceResponse -@typing.final -class CreateOAuthAppRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - CLIENT_NAME_FIELD_NUMBER: builtins.int - OAUTH_CONFIG_FIELD_NUMBER: builtins.int - org_id: builtins.str - client_name: builtins.str +@_typing.final +class CreateOAuthAppRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + CLIENT_NAME_FIELD_NUMBER: _builtins.int + OAUTH_CONFIG_FIELD_NUMBER: _builtins.int + org_id: _builtins.str + client_name: _builtins.str - @property - def oauth_config(self) -> global___OAuthConfig: + @_builtins.property + def oauth_config(self) -> Global___OAuthConfig: ... - def __init__(self, *, org_id: builtins.str=..., client_name: builtins.str=..., oauth_config: global___OAuthConfig | None=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., client_name: _builtins.str=..., oauth_config: Global___OAuthConfig | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['oauth_config', b'oauth_config'] - def HasField(self, field_name: typing.Literal['oauth_config', b'oauth_config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['client_name', b'client_name', 'oauth_config', b'oauth_config', 'org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['client_name', b'client_name', 'oauth_config', b'oauth_config', 'org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateOAuthAppRequest = CreateOAuthAppRequest +Global___CreateOAuthAppRequest: _TypeAlias = CreateOAuthAppRequest -@typing.final -class CreateOAuthAppResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLIENT_ID_FIELD_NUMBER: builtins.int - CLIENT_SECRET_FIELD_NUMBER: builtins.int - client_id: builtins.str - client_secret: builtins.str +@_typing.final +class CreateOAuthAppResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CLIENT_ID_FIELD_NUMBER: _builtins.int + CLIENT_SECRET_FIELD_NUMBER: _builtins.int + client_id: _builtins.str + client_secret: _builtins.str - def __init__(self, *, client_id: builtins.str=..., client_secret: builtins.str=...) -> None: + def __init__(self, *, client_id: _builtins.str=..., client_secret: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['client_id', b'client_id', 'client_secret', b'client_secret'] - def ClearField(self, field_name: typing.Literal['client_id', b'client_id', 'client_secret', b'client_secret']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateOAuthAppResponse = CreateOAuthAppResponse +Global___CreateOAuthAppResponse: _TypeAlias = CreateOAuthAppResponse -@typing.final -class ReadOAuthAppRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - CLIENT_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str - client_id: builtins.str +@_typing.final +class ReadOAuthAppRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + CLIENT_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str + client_id: _builtins.str - def __init__(self, *, org_id: builtins.str=..., client_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., client_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['client_id', b'client_id', 'org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['client_id', b'client_id', 'org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ReadOAuthAppRequest = ReadOAuthAppRequest +Global___ReadOAuthAppRequest: _TypeAlias = ReadOAuthAppRequest -@typing.final -class ReadOAuthAppResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLIENT_NAME_FIELD_NUMBER: builtins.int - CLIENT_SECRET_FIELD_NUMBER: builtins.int - OAUTH_CONFIG_FIELD_NUMBER: builtins.int - client_name: builtins.str - client_secret: builtins.str +@_typing.final +class ReadOAuthAppResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CLIENT_NAME_FIELD_NUMBER: _builtins.int + CLIENT_SECRET_FIELD_NUMBER: _builtins.int + OAUTH_CONFIG_FIELD_NUMBER: _builtins.int + client_name: _builtins.str + client_secret: _builtins.str - @property - def oauth_config(self) -> global___OAuthConfig: + @_builtins.property + def oauth_config(self) -> Global___OAuthConfig: ... - def __init__(self, *, client_name: builtins.str=..., client_secret: builtins.str=..., oauth_config: global___OAuthConfig | None=...) -> None: + def __init__(self, *, client_name: _builtins.str=..., client_secret: _builtins.str=..., oauth_config: Global___OAuthConfig | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['oauth_config', b'oauth_config'] - def HasField(self, field_name: typing.Literal['oauth_config', b'oauth_config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['client_name', b'client_name', 'client_secret', b'client_secret', 'oauth_config', b'oauth_config'] - def ClearField(self, field_name: typing.Literal['client_name', b'client_name', 'client_secret', b'client_secret', 'oauth_config', b'oauth_config']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ReadOAuthAppResponse = ReadOAuthAppResponse +Global___ReadOAuthAppResponse: _TypeAlias = ReadOAuthAppResponse -@typing.final -class UpdateOAuthAppRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - CLIENT_ID_FIELD_NUMBER: builtins.int - CLIENT_NAME_FIELD_NUMBER: builtins.int - OAUTH_CONFIG_FIELD_NUMBER: builtins.int - org_id: builtins.str - client_id: builtins.str - client_name: builtins.str +@_typing.final +class UpdateOAuthAppRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + CLIENT_ID_FIELD_NUMBER: _builtins.int + CLIENT_NAME_FIELD_NUMBER: _builtins.int + OAUTH_CONFIG_FIELD_NUMBER: _builtins.int + org_id: _builtins.str + client_id: _builtins.str + client_name: _builtins.str - @property - def oauth_config(self) -> global___OAuthConfig: + @_builtins.property + def oauth_config(self) -> Global___OAuthConfig: ... - def __init__(self, *, org_id: builtins.str=..., client_id: builtins.str=..., client_name: builtins.str=..., oauth_config: global___OAuthConfig | None=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., client_id: _builtins.str=..., client_name: _builtins.str=..., oauth_config: Global___OAuthConfig | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['oauth_config', b'oauth_config'] - def HasField(self, field_name: typing.Literal['oauth_config', b'oauth_config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['client_id', b'client_id', 'client_name', b'client_name', 'oauth_config', b'oauth_config', 'org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['client_id', b'client_id', 'client_name', b'client_name', 'oauth_config', b'oauth_config', 'org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateOAuthAppRequest = UpdateOAuthAppRequest +Global___UpdateOAuthAppRequest: _TypeAlias = UpdateOAuthAppRequest -@typing.final -class UpdateOAuthAppResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateOAuthAppResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UpdateOAuthAppResponse = UpdateOAuthAppResponse +Global___UpdateOAuthAppResponse: _TypeAlias = UpdateOAuthAppResponse -@typing.final -class DeleteOAuthAppRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - CLIENT_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str - client_id: builtins.str +@_typing.final +class DeleteOAuthAppRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + CLIENT_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str + client_id: _builtins.str - def __init__(self, *, org_id: builtins.str=..., client_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., client_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['client_id', b'client_id', 'org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['client_id', b'client_id', 'org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DeleteOAuthAppRequest = DeleteOAuthAppRequest +Global___DeleteOAuthAppRequest: _TypeAlias = DeleteOAuthAppRequest -@typing.final -class DeleteOAuthAppResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class DeleteOAuthAppResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___DeleteOAuthAppResponse = DeleteOAuthAppResponse +Global___DeleteOAuthAppResponse: _TypeAlias = DeleteOAuthAppResponse -@typing.final -class ListOAuthAppsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class ListOAuthAppsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListOAuthAppsRequest = ListOAuthAppsRequest +Global___ListOAuthAppsRequest: _TypeAlias = ListOAuthAppsRequest -@typing.final -class ListOAuthAppsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLIENT_IDS_FIELD_NUMBER: builtins.int +@_typing.final +class ListOAuthAppsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CLIENT_IDS_FIELD_NUMBER: _builtins.int - @property - def client_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def client_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, client_ids: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, client_ids: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['client_ids', b'client_ids'] - def ClearField(self, field_name: typing.Literal['client_ids', b'client_ids']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListOAuthAppsResponse = ListOAuthAppsResponse +Global___ListOAuthAppsResponse: _TypeAlias = ListOAuthAppsResponse -@typing.final -class OAuthConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLIENT_AUTHENTICATION_FIELD_NUMBER: builtins.int - PKCE_FIELD_NUMBER: builtins.int - URL_VALIDATION_FIELD_NUMBER: builtins.int - ORIGIN_URIS_FIELD_NUMBER: builtins.int - REDIRECT_URIS_FIELD_NUMBER: builtins.int - LOGOUT_URI_FIELD_NUMBER: builtins.int - ENABLED_GRANTS_FIELD_NUMBER: builtins.int - INVITE_REDIRECT_URI_FIELD_NUMBER: builtins.int - client_authentication: global___ClientAuthentication.ValueType - pkce: global___PKCE.ValueType - url_validation: global___URLValidation.ValueType - logout_uri: builtins.str - invite_redirect_uri: builtins.str +@_typing.final +class OAuthConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CLIENT_AUTHENTICATION_FIELD_NUMBER: _builtins.int + PKCE_FIELD_NUMBER: _builtins.int + URL_VALIDATION_FIELD_NUMBER: _builtins.int + ORIGIN_URIS_FIELD_NUMBER: _builtins.int + REDIRECT_URIS_FIELD_NUMBER: _builtins.int + LOGOUT_URI_FIELD_NUMBER: _builtins.int + ENABLED_GRANTS_FIELD_NUMBER: _builtins.int + INVITE_REDIRECT_URI_FIELD_NUMBER: _builtins.int + client_authentication: Global___ClientAuthentication.ValueType + pkce: Global___PKCE.ValueType + url_validation: Global___URLValidation.ValueType + logout_uri: _builtins.str + invite_redirect_uri: _builtins.str - @property - def origin_uris(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def origin_uris(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def redirect_uris(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def redirect_uris(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def enabled_grants(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___EnabledGrant.ValueType]: + @_builtins.property + def enabled_grants(self) -> _containers.RepeatedScalarFieldContainer[Global___EnabledGrant.ValueType]: ... - def __init__(self, *, client_authentication: global___ClientAuthentication.ValueType=..., pkce: global___PKCE.ValueType=..., url_validation: global___URLValidation.ValueType=..., origin_uris: collections.abc.Iterable[builtins.str] | None=..., redirect_uris: collections.abc.Iterable[builtins.str] | None=..., logout_uri: builtins.str=..., enabled_grants: collections.abc.Iterable[global___EnabledGrant.ValueType] | None=..., invite_redirect_uri: builtins.str=...) -> None: + def __init__(self, *, client_authentication: Global___ClientAuthentication.ValueType=..., pkce: Global___PKCE.ValueType=..., url_validation: Global___URLValidation.ValueType=..., origin_uris: _abc.Iterable[_builtins.str] | None=..., redirect_uris: _abc.Iterable[_builtins.str] | None=..., logout_uri: _builtins.str=..., enabled_grants: _abc.Iterable[Global___EnabledGrant.ValueType] | None=..., invite_redirect_uri: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['client_authentication', b'client_authentication', 'enabled_grants', b'enabled_grants', 'invite_redirect_uri', b'invite_redirect_uri', 'logout_uri', b'logout_uri', 'origin_uris', b'origin_uris', 'pkce', b'pkce', 'redirect_uris', b'redirect_uris', 'url_validation', b'url_validation'] - def ClearField(self, field_name: typing.Literal['client_authentication', b'client_authentication', 'enabled_grants', b'enabled_grants', 'invite_redirect_uri', b'invite_redirect_uri', 'logout_uri', b'logout_uri', 'origin_uris', b'origin_uris', 'pkce', b'pkce', 'redirect_uris', b'redirect_uris', 'url_validation', b'url_validation']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OAuthConfig = OAuthConfig +Global___OAuthConfig: _TypeAlias = OAuthConfig -@typing.final -class GetAppBrandingRequest(google.protobuf.message.Message): +@_typing.final +class GetAppBrandingRequest(_message.Message): """Branding and customization for app machine picker""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PUBLIC_NAMESPACE_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - public_namespace: builtins.str - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + PUBLIC_NAMESPACE_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + public_namespace: _builtins.str + name: _builtins.str - def __init__(self, *, public_namespace: builtins.str=..., name: builtins.str=...) -> None: + def __init__(self, *, public_namespace: _builtins.str=..., name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'public_namespace', b'public_namespace'] - def ClearField(self, field_name: typing.Literal['name', b'name', 'public_namespace', b'public_namespace']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAppBrandingRequest = GetAppBrandingRequest +Global___GetAppBrandingRequest: _TypeAlias = GetAppBrandingRequest -@typing.final -class TextOverrides(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class TextOverrides(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class FieldsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + @_typing.final + class FieldsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str - def __init__(self, *, key: builtins.str=..., value: builtins.str=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - FIELDS_FIELD_NUMBER: builtins.int + FIELDS_FIELD_NUMBER: _builtins.int - @property - def fields(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + @_builtins.property + def fields(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: ... - def __init__(self, *, fields: collections.abc.Mapping[builtins.str, builtins.str] | None=...) -> None: + def __init__(self, *, fields: _abc.Mapping[_builtins.str, _builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fields', b'fields'] - def ClearField(self, field_name: typing.Literal['fields', b'fields']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TextOverrides = TextOverrides +Global___TextOverrides: _TypeAlias = TextOverrides -@typing.final -class GetAppBrandingResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetAppBrandingResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class TextCustomizationsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class TextCustomizationsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> global___TextOverrides: + @_builtins.property + def value(self) -> Global___TextOverrides: ... - def __init__(self, *, key: builtins.str=..., value: global___TextOverrides | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: Global___TextOverrides | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - LOGO_PATH_FIELD_NUMBER: builtins.int - TEXT_CUSTOMIZATIONS_FIELD_NUMBER: builtins.int - FRAGMENT_IDS_FIELD_NUMBER: builtins.int - logo_path: builtins.str + LOGO_PATH_FIELD_NUMBER: _builtins.int + TEXT_CUSTOMIZATIONS_FIELD_NUMBER: _builtins.int + FRAGMENT_IDS_FIELD_NUMBER: _builtins.int + logo_path: _builtins.str - @property - def text_customizations(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___TextOverrides]: + @_builtins.property + def text_customizations(self) -> _containers.MessageMap[_builtins.str, Global___TextOverrides]: ... - @property - def fragment_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def fragment_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, logo_path: builtins.str | None=..., text_customizations: collections.abc.Mapping[builtins.str, global___TextOverrides] | None=..., fragment_ids: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, logo_path: _builtins.str | None=..., text_customizations: _abc.Mapping[_builtins.str, Global___TextOverrides] | None=..., fragment_ids: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_logo_path', b'_logo_path', 'logo_path', b'logo_path'] - def HasField(self, field_name: typing.Literal['_logo_path', b'_logo_path', 'logo_path', b'logo_path']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_logo_path', b'_logo_path', 'fragment_ids', b'fragment_ids', 'logo_path', b'logo_path', 'text_customizations', b'text_customizations'] - def ClearField(self, field_name: typing.Literal['_logo_path', b'_logo_path', 'fragment_ids', b'fragment_ids', 'logo_path', b'logo_path', 'text_customizations', b'text_customizations']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__logo_path: _TypeAlias = _typing.Literal['logo_path'] + _WhichOneofArgType__logo_path: _TypeAlias = _typing.Literal['_logo_path', b'_logo_path'] - def WhichOneof(self, oneof_group: typing.Literal['_logo_path', b'_logo_path']) -> typing.Literal['logo_path'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__logo_path) -> _WhichOneofReturnType__logo_path | None: ... -global___GetAppBrandingResponse = GetAppBrandingResponse +Global___GetAppBrandingResponse: _TypeAlias = GetAppBrandingResponse -@typing.final -class AppCustomizations(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MACHINE_PICKER_FIELD_NUMBER: builtins.int +@_typing.final +class AppCustomizations(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MACHINE_PICKER_FIELD_NUMBER: _builtins.int - @property - def machine_picker(self) -> global___MachinePickerCustomizations: + @_builtins.property + def machine_picker(self) -> Global___MachinePickerCustomizations: ... - def __init__(self, *, machine_picker: global___MachinePickerCustomizations | None=...) -> None: + def __init__(self, *, machine_picker: Global___MachinePickerCustomizations | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['machine_picker', b'machine_picker'] - def HasField(self, field_name: typing.Literal['machine_picker', b'machine_picker']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['machine_picker', b'machine_picker'] - def ClearField(self, field_name: typing.Literal['machine_picker', b'machine_picker']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AppCustomizations = AppCustomizations +Global___AppCustomizations: _TypeAlias = AppCustomizations -@typing.final -class MachinePickerCustomizations(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HEADING_FIELD_NUMBER: builtins.int - SUBHEADING_FIELD_NUMBER: builtins.int - heading: builtins.str - subheading: builtins.str +@_typing.final +class MachinePickerCustomizations(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + HEADING_FIELD_NUMBER: _builtins.int + SUBHEADING_FIELD_NUMBER: _builtins.int + heading: _builtins.str + subheading: _builtins.str - def __init__(self, *, heading: builtins.str | None=..., subheading: builtins.str | None=...) -> None: + def __init__(self, *, heading: _builtins.str | None=..., subheading: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_heading', b'_heading', '_subheading', b'_subheading', 'heading', b'heading', 'subheading', b'subheading'] - def HasField(self, field_name: typing.Literal['_heading', b'_heading', '_subheading', b'_subheading', 'heading', b'heading', 'subheading', b'subheading']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_heading', b'_heading', '_subheading', b'_subheading', 'heading', b'heading', 'subheading', b'subheading'] - def ClearField(self, field_name: typing.Literal['_heading', b'_heading', '_subheading', b'_subheading', 'heading', b'heading', 'subheading', b'subheading']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__heading: _TypeAlias = _typing.Literal['heading'] + _WhichOneofArgType__heading: _TypeAlias = _typing.Literal['_heading', b'_heading'] + _WhichOneofReturnType__subheading: _TypeAlias = _typing.Literal['subheading'] + _WhichOneofArgType__subheading: _TypeAlias = _typing.Literal['_subheading', b'_subheading'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_heading', b'_heading']) -> typing.Literal['heading'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__heading) -> _WhichOneofReturnType__heading | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_subheading', b'_subheading']) -> typing.Literal['subheading'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__subheading) -> _WhichOneofReturnType__subheading | None: ... -global___MachinePickerCustomizations = MachinePickerCustomizations \ No newline at end of file +Global___MachinePickerCustomizations: _TypeAlias = MachinePickerCustomizations \ No newline at end of file diff --git a/src/viam/gen/app/v1/billing_pb2.py b/src/viam/gen/app/v1/billing_pb2.py index d1ae179ec6..47c909537f 100644 --- a/src/viam/gen/app/v1/billing_pb2.py +++ b/src/viam/gen/app/v1/billing_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/v1/billing.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/v1/billing.proto') _sym_db = _symbol_database.Default() from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14app/v1/billing.proto\x12\x0bviam.app.v1\x1a\x1fgoogle/protobuf/timestamp.proto"\x8e\x02\n\x0eInvoiceSummary\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12=\n\x0cinvoice_date\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0binvoiceDate\x12%\n\x0einvoice_amount\x18\x03 \x01(\x01R\rinvoiceAmount\x12\x16\n\x06status\x18\x04 \x01(\tR\x06status\x125\n\x08due_date\x18\x05 \x01(\x0b2\x1a.google.protobuf.TimestampR\x07dueDate\x127\n\tpaid_date\x18\x06 \x01(\x0b2\x1a.google.protobuf.TimestampR\x08paidDate"S\n\x11PaymentMethodCard\x12\x14\n\x05brand\x18\x01 \x01(\tR\x05brand\x12(\n\x10last_four_digits\x18\x02 \x01(\tR\x0elastFourDigits"v\n\x10VerificationInfo\x12!\n\x0carrival_date\x18\x01 \x01(\x03R\x0barrivalDate\x12?\n\x1chosted_verification_page_url\x18\x02 \x01(\tR\x19hostedVerificationPageUrl"\xb0\x02\n\x1aPaymentMethodUSBankAccount\x12\x1b\n\tbank_name\x18\x01 \x01(\tR\x08bankName\x12D\n\x1flast_four_digits_account_number\x18\x02 \x01(\tR\x1blastFourDigitsAccountNumber\x12%\n\x0erouting_number\x18\x03 \x01(\tR\rroutingNumber\x12!\n\x0caccount_type\x18\x04 \x01(\tR\x0baccountType\x12O\n\x11verification_info\x18\x05 \x01(\x0b2\x1d.viam.app.v1.VerificationInfoH\x00R\x10verificationInfo\x88\x01\x01B\x14\n\x12_verification_info"4\n\x1bGetCurrentMonthUsageRequest\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId"`\n\tUsageCost\x12?\n\rresource_type\x18\x01 \x01(\x0e2\x1a.viam.app.v1.UsageCostTypeR\x0cresourceType\x12\x12\n\x04cost\x18\x02 \x01(\x01R\x04cost"\xc6\x01\n\x1aResourceUsageCostsBySource\x128\n\x0bsource_type\x18\x01 \x01(\x0e2\x17.viam.app.v1.SourceTypeR\nsourceType\x12Q\n\x14resource_usage_costs\x18\x02 \x01(\x0b2\x1f.viam.app.v1.ResourceUsageCostsR\x12resourceUsageCosts\x12\x1b\n\ttier_name\x18\x03 \x01(\tR\x08tierName"\xcf\x01\n\x12ResourceUsageCosts\x127\n\x0busage_costs\x18\x01 \x03(\x0b2\x16.viam.app.v1.UsageCostR\nusageCosts\x12\x1a\n\x08discount\x18\x02 \x01(\x01R\x08discount\x12.\n\x13total_with_discount\x18\x03 \x01(\x01R\x11totalWithDiscount\x124\n\x16total_without_discount\x18\x04 \x01(\x01R\x14totalWithoutDiscount"\xcd\x07\n\x1cGetCurrentMonthUsageResponse\x129\n\nstart_date\x18\x01 \x01(\x0b2\x1a.google.protobuf.TimestampR\tstartDate\x125\n\x08end_date\x18\x02 \x01(\x0b2\x1a.google.protobuf.TimestampR\x07endDate\x12k\n\x1eresource_usage_costs_by_source\x18\x0e \x03(\x0b2\'.viam.app.v1.ResourceUsageCostsBySourceR\x1aresourceUsageCostsBySource\x12\x1a\n\x08subtotal\x18\x0f \x01(\x01R\x08subtotal\x12;\n\x18cloud_storage_usage_cost\x18\x03 \x01(\x01B\x02\x18\x01R\x15cloudStorageUsageCost\x127\n\x16data_upload_usage_cost\x18\x04 \x01(\x01B\x02\x18\x01R\x13dataUploadUsageCost\x125\n\x15data_egres_usage_cost\x18\x05 \x01(\x01B\x02\x18\x01R\x12dataEgresUsageCost\x12=\n\x19remote_control_usage_cost\x18\x06 \x01(\x01B\x02\x18\x01R\x16remoteControlUsageCost\x12A\n\x1bstandard_compute_usage_cost\x18\x07 \x01(\x01B\x02\x18\x01R\x18standardComputeUsageCost\x12+\n\x0fdiscount_amount\x18\x08 \x01(\x01B\x02\x18\x01R\x0ediscountAmount\x12=\n\x19total_usage_with_discount\x18\t \x01(\x01B\x02\x18\x01R\x16totalUsageWithDiscount\x12C\n\x1ctotal_usage_without_discount\x18\n \x01(\x01B\x02\x18\x01R\x19totalUsageWithoutDiscount\x127\n\x16per_machine_usage_cost\x18\x0b \x01(\x01B\x02\x18\x01R\x13perMachineUsageCost\x12Q\n$binary_data_cloud_storage_usage_cost\x18\x0c \x01(\x01B\x02\x18\x01R\x1fbinaryDataCloudStorageUsageCost\x12F\n\x1eother_cloud_storage_usage_cost\x18\r \x01(\x01B\x02\x18\x01R\x1aotherCloudStorageUsageCost"8\n\x1fGetOrgBillingInformationRequest\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId"\xfa\x02\n GetOrgBillingInformationResponse\x122\n\x04type\x18\x01 \x01(\x0e2\x1e.viam.app.v1.PaymentMethodTypeR\x04type\x12#\n\rbilling_email\x18\x02 \x01(\tR\x0cbillingEmail\x12;\n\x06method\x18\x03 \x01(\x0b2\x1e.viam.app.v1.PaymentMethodCardH\x00R\x06method\x88\x01\x01\x12&\n\x0cbilling_tier\x18\x04 \x01(\tH\x01R\x0bbillingTier\x88\x01\x01\x12a\n\x16method_us_bank_account\x18\x05 \x01(\x0b2\'.viam.app.v1.PaymentMethodUSBankAccountH\x02R\x13methodUsBankAccount\x88\x01\x01B\t\n\x07_methodB\x0f\n\r_billing_tierB\x19\n\x17_method_us_bank_account"2\n\x19GetInvoicesSummaryRequest\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId"\x86\x01\n\x1aGetInvoicesSummaryResponse\x12/\n\x13outstanding_balance\x18\x01 \x01(\x01R\x12outstandingBalance\x127\n\x08invoices\x18\x02 \x03(\x0b2\x1b.viam.app.v1.InvoiceSummaryR\x08invoices"=\n\x14GetInvoicePdfRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x15\n\x06org_id\x18\x02 \x01(\tR\x05orgId"-\n\x15GetInvoicePdfResponse\x12\x14\n\x05chunk\x18\x01 \x01(\x0cR\x05chunk"z\n\x1fSendPaymentRequiredEmailRequest\x12&\n\x0fcustomer_org_id\x18\x01 \x01(\tR\rcustomerOrgId\x12/\n\x14billing_owner_org_id\x18\x02 \x01(\tR\x11billingOwnerOrgId""\n SendPaymentRequiredEmailResponse"!\n\x1fGetAvailableBillingTiersRequest"8\n GetAvailableBillingTiersResponse\x12\x14\n\x05tiers\x18\x01 \x03(\tR\x05tiers"r\n$UpdateOrganizationBillingTierRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12!\n\x0cbilling_tier\x18\x02 \x01(\tR\x0bbillingTier"\'\n%UpdateOrganizationBillingTierResponse"H\n%GetLocationBillingOrganizationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId"`\n&GetLocationBillingOrganizationResponse\x126\n\x17billing_organization_id\x18\x01 \x01(\tR\x15billingOrganizationId"\x83\x01\n(UpdateLocationBillingOrganizationRequest\x12\x1f\n\x0blocation_id\x18\x01 \x01(\tR\nlocationId\x126\n\x17billing_organization_id\x18\x02 \x01(\tR\x15billingOrganizationId"+\n)UpdateLocationBillingOrganizationResponse"\xb3\x02\n\x19ChargeOrganizationRequest\x12\'\n\x10org_id_to_charge\x18\x01 \x01(\tR\rorgIdToCharge\x12%\n\x0bdescription\x18\x02 \x01(\tH\x00R\x0bdescription\x88\x01\x01\x12\x1a\n\x08subtotal\x18\x03 \x01(\x01R\x08subtotal\x12\x10\n\x03tax\x18\x04 \x01(\x01R\x03tax\x122\n\x13org_id_for_branding\x18\x05 \x01(\tH\x01R\x10orgIdForBranding\x88\x01\x01\x12<\n\x1adisable_confirmation_email\x18\x06 \x01(\x08R\x18disableConfirmationEmailB\x0e\n\x0c_descriptionB\x16\n\x14_org_id_for_branding";\n\x1aChargeOrganizationResponse\x12\x1d\n\ninvoice_id\x18\x01 \x01(\tR\tinvoiceId"\x93\x02\n(CreateInvoiceAndChargeImmediatelyRequest\x12\'\n\x10org_id_to_charge\x18\x01 \x01(\tR\rorgIdToCharge\x12\x16\n\x06amount\x18\x02 \x01(\x01R\x06amount\x12%\n\x0bdescription\x18\x03 \x01(\tH\x00R\x0bdescription\x88\x01\x01\x122\n\x13org_id_for_branding\x18\x04 \x01(\tH\x01R\x10orgIdForBranding\x88\x01\x01\x12#\n\rdisable_email\x18\x05 \x01(\x08R\x0cdisableEmailB\x0e\n\x0c_descriptionB\x16\n\x14_org_id_for_branding"J\n)CreateInvoiceAndChargeImmediatelyResponse\x12\x1d\n\ninvoice_id\x18\x01 \x01(\tR\tinvoiceId*}\n\x11PaymentMethodType\x12#\n\x1fPAYMENT_METHOD_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18PAYMENT_METHOD_TYPE_CARD\x10\x01\x12%\n!PAYMENT_METHOD_TYPE_USBANKACCOUNT\x10\x02*\x84\t\n\rUsageCostType\x12\x1f\n\x1bUSAGE_COST_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1bUSAGE_COST_TYPE_DATA_UPLOAD\x10\x01\x1a\x02\x08\x01\x12#\n\x1bUSAGE_COST_TYPE_DATA_EGRESS\x10\x02\x1a\x02\x08\x01\x12"\n\x1eUSAGE_COST_TYPE_REMOTE_CONTROL\x10\x03\x12$\n USAGE_COST_TYPE_STANDARD_COMPUTE\x10\x04\x12%\n\x1dUSAGE_COST_TYPE_CLOUD_STORAGE\x10\x05\x1a\x02\x08\x01\x12-\n)USAGE_COST_TYPE_BINARY_DATA_CLOUD_STORAGE\x10\x06\x12+\n#USAGE_COST_TYPE_OTHER_CLOUD_STORAGE\x10\x07\x1a\x02\x08\x01\x12\x1f\n\x1bUSAGE_COST_TYPE_PER_MACHINE\x10\x08\x12(\n$USAGE_COST_TYPE_TRIGGER_NOTIFICATION\x10\t\x12.\n*USAGE_COST_TYPE_TABULAR_DATA_CLOUD_STORAGE\x10\n\x120\n,USAGE_COST_TYPE_CONFIG_HISTORY_CLOUD_STORAGE\x10\x0b\x12&\n"USAGE_COST_TYPE_LOGS_CLOUD_STORAGE\x10\x0c\x12/\n+USAGE_COST_TYPE_TRAINING_LOGS_CLOUD_STORAGE\x10\r\x12*\n&USAGE_COST_TYPE_PACKAGES_CLOUD_STORAGE\x10\x0e\x12&\n"USAGE_COST_TYPE_BINARY_DATA_UPLOAD\x10\x0f\x12\'\n#USAGE_COST_TYPE_TABULAR_DATA_UPLOAD\x10\x10\x12\x1f\n\x1bUSAGE_COST_TYPE_LOGS_UPLOAD\x10\x11\x12&\n"USAGE_COST_TYPE_BINARY_DATA_EGRESS\x10\x12\x12\'\n#USAGE_COST_TYPE_TABULAR_DATA_EGRESS\x10\x13\x12\x1f\n\x1bUSAGE_COST_TYPE_LOGS_EGRESS\x10\x14\x12(\n$USAGE_COST_TYPE_TRAINING_LOGS_EGRESS\x10\x15\x127\n3USAGE_COST_TYPE_TABULAR_DATA_DATABASE_CLOUD_STORAGE\x10\x16\x121\n-USAGE_COST_TYPE_TABULAR_DATA_DATABASE_COMPUTE\x10\x17\x123\n/USAGE_COST_TYPE_BINARY_DATA_CROSS_REGION_EGRESS\x10\x18\x12/\n+USAGE_COST_TYPE_PIPELINE_SINK_CLOUD_STORAGE\x10\x19\x12)\n%USAGE_COST_TYPE_PIPELINE_SINK_COMPUTE\x10\x1a*X\n\nSourceType\x12\x1b\n\x17SOURCE_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fSOURCE_TYPE_ORG\x10\x01\x12\x18\n\x14SOURCE_TYPE_FRAGMENT\x10\x022\xcf\n\n\x0eBillingService\x12k\n\x14GetCurrentMonthUsage\x12(.viam.app.v1.GetCurrentMonthUsageRequest\x1a).viam.app.v1.GetCurrentMonthUsageResponse\x12w\n\x18GetOrgBillingInformation\x12,.viam.app.v1.GetOrgBillingInformationRequest\x1a-.viam.app.v1.GetOrgBillingInformationResponse\x12e\n\x12GetInvoicesSummary\x12&.viam.app.v1.GetInvoicesSummaryRequest\x1a\'.viam.app.v1.GetInvoicesSummaryResponse\x12X\n\rGetInvoicePdf\x12!.viam.app.v1.GetInvoicePdfRequest\x1a".viam.app.v1.GetInvoicePdfResponse0\x01\x12w\n\x18SendPaymentRequiredEmail\x12,.viam.app.v1.SendPaymentRequiredEmailRequest\x1a-.viam.app.v1.SendPaymentRequiredEmailResponse\x12w\n\x18GetAvailableBillingTiers\x12,.viam.app.v1.GetAvailableBillingTiersRequest\x1a-.viam.app.v1.GetAvailableBillingTiersResponse\x12\x86\x01\n\x1dUpdateOrganizationBillingTier\x121.viam.app.v1.UpdateOrganizationBillingTierRequest\x1a2.viam.app.v1.UpdateOrganizationBillingTierResponse\x12\x89\x01\n\x1eGetLocationBillingOrganization\x122.viam.app.v1.GetLocationBillingOrganizationRequest\x1a3.viam.app.v1.GetLocationBillingOrganizationResponse\x12\x92\x01\n!UpdateLocationBillingOrganization\x125.viam.app.v1.UpdateLocationBillingOrganizationRequest\x1a6.viam.app.v1.UpdateLocationBillingOrganizationResponse\x12e\n\x12ChargeOrganization\x12&.viam.app.v1.ChargeOrganizationRequest\x1a\'.viam.app.v1.ChargeOrganizationResponse\x12\x92\x01\n!CreateInvoiceAndChargeImmediately\x125.viam.app.v1.CreateInvoiceAndChargeImmediatelyRequest\x1a6.viam.app.v1.CreateInvoiceAndChargeImmediatelyResponseB\x18Z\x16go.viam.com/api/app/v1b\x06proto3') diff --git a/src/viam/gen/app/v1/billing_pb2.pyi b/src/viam/gen/app/v1/billing_pb2.pyi index 268b7ddee1..90874e83a2 100644 --- a/src/viam/gen/app/v1/billing_pb2.pyi +++ b/src/viam/gen/app/v1/billing_pb2.pyi @@ -2,27 +2,31 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.timestamp_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated +else: + from typing_extensions import deprecated as _deprecated +DESCRIPTOR: _descriptor.FileDescriptor class _PaymentMethodType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _PaymentMethodTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PaymentMethodType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _PaymentMethodTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_PaymentMethodType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor PAYMENT_METHOD_TYPE_UNSPECIFIED: _PaymentMethodType.ValueType PAYMENT_METHOD_TYPE_CARD: _PaymentMethodType.ValueType PAYMENT_METHOD_TYPE_USBANKACCOUNT: _PaymentMethodType.ValueType @@ -32,22 +36,38 @@ class PaymentMethodType(_PaymentMethodType, metaclass=_PaymentMethodTypeEnumType PAYMENT_METHOD_TYPE_UNSPECIFIED: PaymentMethodType.ValueType PAYMENT_METHOD_TYPE_CARD: PaymentMethodType.ValueType PAYMENT_METHOD_TYPE_USBANKACCOUNT: PaymentMethodType.ValueType -global___PaymentMethodType = PaymentMethodType +Global___PaymentMethodType: _TypeAlias = PaymentMethodType class _UsageCostType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _UsageCostTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_UsageCostType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _UsageCostTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_UsageCostType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor USAGE_COST_TYPE_UNSPECIFIED: _UsageCostType.ValueType - USAGE_COST_TYPE_DATA_UPLOAD: _UsageCostType.ValueType - USAGE_COST_TYPE_DATA_EGRESS: _UsageCostType.ValueType + + @_builtins.property + @_deprecated('This enum value has been marked as deprecated using proto enum value options.') + def USAGE_COST_TYPE_DATA_UPLOAD(self) -> _UsageCostType.ValueType: + ... + + @_builtins.property + @_deprecated('This enum value has been marked as deprecated using proto enum value options.') + def USAGE_COST_TYPE_DATA_EGRESS(self) -> _UsageCostType.ValueType: + ... USAGE_COST_TYPE_REMOTE_CONTROL: _UsageCostType.ValueType USAGE_COST_TYPE_STANDARD_COMPUTE: _UsageCostType.ValueType - USAGE_COST_TYPE_CLOUD_STORAGE: _UsageCostType.ValueType + + @_builtins.property + @_deprecated('This enum value has been marked as deprecated using proto enum value options.') + def USAGE_COST_TYPE_CLOUD_STORAGE(self) -> _UsageCostType.ValueType: + ... USAGE_COST_TYPE_BINARY_DATA_CLOUD_STORAGE: _UsageCostType.ValueType - USAGE_COST_TYPE_OTHER_CLOUD_STORAGE: _UsageCostType.ValueType + + @_builtins.property + @_deprecated('This enum value has been marked as deprecated using proto enum value options.') + def USAGE_COST_TYPE_OTHER_CLOUD_STORAGE(self) -> _UsageCostType.ValueType: + ... USAGE_COST_TYPE_PER_MACHINE: _UsageCostType.ValueType USAGE_COST_TYPE_TRIGGER_NOTIFICATION: _UsageCostType.ValueType USAGE_COST_TYPE_TABULAR_DATA_CLOUD_STORAGE: _UsageCostType.ValueType @@ -97,14 +117,14 @@ USAGE_COST_TYPE_TABULAR_DATA_DATABASE_COMPUTE: UsageCostType.ValueType USAGE_COST_TYPE_BINARY_DATA_CROSS_REGION_EGRESS: UsageCostType.ValueType USAGE_COST_TYPE_PIPELINE_SINK_CLOUD_STORAGE: UsageCostType.ValueType USAGE_COST_TYPE_PIPELINE_SINK_COMPUTE: UsageCostType.ValueType -global___UsageCostType = UsageCostType +Global___UsageCostType: _TypeAlias = UsageCostType class _SourceType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _SourceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SourceType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _SourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_SourceType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor SOURCE_TYPE_UNSPECIFIED: _SourceType.ValueType SOURCE_TYPE_ORG: _SourceType.ValueType SOURCE_TYPE_FRAGMENT: _SourceType.ValueType @@ -114,555 +134,701 @@ class SourceType(_SourceType, metaclass=_SourceTypeEnumTypeWrapper): SOURCE_TYPE_UNSPECIFIED: SourceType.ValueType SOURCE_TYPE_ORG: SourceType.ValueType SOURCE_TYPE_FRAGMENT: SourceType.ValueType -global___SourceType = SourceType +Global___SourceType: _TypeAlias = SourceType -@typing.final -class InvoiceSummary(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - INVOICE_DATE_FIELD_NUMBER: builtins.int - INVOICE_AMOUNT_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - DUE_DATE_FIELD_NUMBER: builtins.int - PAID_DATE_FIELD_NUMBER: builtins.int - id: builtins.str - invoice_amount: builtins.float - status: builtins.str +@_typing.final +class InvoiceSummary(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + INVOICE_DATE_FIELD_NUMBER: _builtins.int + INVOICE_AMOUNT_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + DUE_DATE_FIELD_NUMBER: _builtins.int + PAID_DATE_FIELD_NUMBER: _builtins.int + id: _builtins.str + invoice_amount: _builtins.float + status: _builtins.str - @property - def invoice_date(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def invoice_date(self) -> _timestamp_pb2.Timestamp: ... - @property - def due_date(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def due_date(self) -> _timestamp_pb2.Timestamp: ... - @property - def paid_date(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def paid_date(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, id: builtins.str=..., invoice_date: google.protobuf.timestamp_pb2.Timestamp | None=..., invoice_amount: builtins.float=..., status: builtins.str=..., due_date: google.protobuf.timestamp_pb2.Timestamp | None=..., paid_date: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., invoice_date: _timestamp_pb2.Timestamp | None=..., invoice_amount: _builtins.float=..., status: _builtins.str=..., due_date: _timestamp_pb2.Timestamp | None=..., paid_date: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['due_date', b'due_date', 'invoice_date', b'invoice_date', 'paid_date', b'paid_date'] - def HasField(self, field_name: typing.Literal['due_date', b'due_date', 'invoice_date', b'invoice_date', 'paid_date', b'paid_date']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['due_date', b'due_date', 'id', b'id', 'invoice_amount', b'invoice_amount', 'invoice_date', b'invoice_date', 'paid_date', b'paid_date', 'status', b'status'] - def ClearField(self, field_name: typing.Literal['due_date', b'due_date', 'id', b'id', 'invoice_amount', b'invoice_amount', 'invoice_date', b'invoice_date', 'paid_date', b'paid_date', 'status', b'status']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___InvoiceSummary = InvoiceSummary +Global___InvoiceSummary: _TypeAlias = InvoiceSummary -@typing.final -class PaymentMethodCard(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BRAND_FIELD_NUMBER: builtins.int - LAST_FOUR_DIGITS_FIELD_NUMBER: builtins.int - brand: builtins.str - last_four_digits: builtins.str +@_typing.final +class PaymentMethodCard(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + BRAND_FIELD_NUMBER: _builtins.int + LAST_FOUR_DIGITS_FIELD_NUMBER: _builtins.int + brand: _builtins.str + last_four_digits: _builtins.str - def __init__(self, *, brand: builtins.str=..., last_four_digits: builtins.str=...) -> None: + def __init__(self, *, brand: _builtins.str=..., last_four_digits: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['brand', b'brand', 'last_four_digits', b'last_four_digits'] - def ClearField(self, field_name: typing.Literal['brand', b'brand', 'last_four_digits', b'last_four_digits']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PaymentMethodCard = PaymentMethodCard +Global___PaymentMethodCard: _TypeAlias = PaymentMethodCard -@typing.final -class VerificationInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ARRIVAL_DATE_FIELD_NUMBER: builtins.int - HOSTED_VERIFICATION_PAGE_URL_FIELD_NUMBER: builtins.int - arrival_date: builtins.int - hosted_verification_page_url: builtins.str +@_typing.final +class VerificationInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ARRIVAL_DATE_FIELD_NUMBER: _builtins.int + HOSTED_VERIFICATION_PAGE_URL_FIELD_NUMBER: _builtins.int + arrival_date: _builtins.int + hosted_verification_page_url: _builtins.str - def __init__(self, *, arrival_date: builtins.int=..., hosted_verification_page_url: builtins.str=...) -> None: + def __init__(self, *, arrival_date: _builtins.int=..., hosted_verification_page_url: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['arrival_date', b'arrival_date', 'hosted_verification_page_url', b'hosted_verification_page_url'] - def ClearField(self, field_name: typing.Literal['arrival_date', b'arrival_date', 'hosted_verification_page_url', b'hosted_verification_page_url']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___VerificationInfo = VerificationInfo +Global___VerificationInfo: _TypeAlias = VerificationInfo -@typing.final -class PaymentMethodUSBankAccount(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BANK_NAME_FIELD_NUMBER: builtins.int - LAST_FOUR_DIGITS_ACCOUNT_NUMBER_FIELD_NUMBER: builtins.int - ROUTING_NUMBER_FIELD_NUMBER: builtins.int - ACCOUNT_TYPE_FIELD_NUMBER: builtins.int - VERIFICATION_INFO_FIELD_NUMBER: builtins.int - bank_name: builtins.str - last_four_digits_account_number: builtins.str - routing_number: builtins.str - account_type: builtins.str +@_typing.final +class PaymentMethodUSBankAccount(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + BANK_NAME_FIELD_NUMBER: _builtins.int + LAST_FOUR_DIGITS_ACCOUNT_NUMBER_FIELD_NUMBER: _builtins.int + ROUTING_NUMBER_FIELD_NUMBER: _builtins.int + ACCOUNT_TYPE_FIELD_NUMBER: _builtins.int + VERIFICATION_INFO_FIELD_NUMBER: _builtins.int + bank_name: _builtins.str + last_four_digits_account_number: _builtins.str + routing_number: _builtins.str + account_type: _builtins.str - @property - def verification_info(self) -> global___VerificationInfo: + @_builtins.property + def verification_info(self) -> Global___VerificationInfo: """this is only set if the account is not verified""" - def __init__(self, *, bank_name: builtins.str=..., last_four_digits_account_number: builtins.str=..., routing_number: builtins.str=..., account_type: builtins.str=..., verification_info: global___VerificationInfo | None=...) -> None: + def __init__(self, *, bank_name: _builtins.str=..., last_four_digits_account_number: _builtins.str=..., routing_number: _builtins.str=..., account_type: _builtins.str=..., verification_info: Global___VerificationInfo | None=...) -> None: + ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_verification_info', b'_verification_info', 'verification_info', b'verification_info'] + + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_verification_info', b'_verification_info', 'account_type', b'account_type', 'bank_name', b'bank_name', 'last_four_digits_account_number', b'last_four_digits_account_number', 'routing_number', b'routing_number', 'verification_info', b'verification_info'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__verification_info: _TypeAlias = _typing.Literal['verification_info'] + _WhichOneofArgType__verification_info: _TypeAlias = _typing.Literal['_verification_info', b'_verification_info'] - def HasField(self, field_name: typing.Literal['_verification_info', b'_verification_info', 'verification_info', b'verification_info']) -> builtins.bool: + def WhichOneof(self, oneof_group: _WhichOneofArgType__verification_info) -> _WhichOneofReturnType__verification_info | None: ... +Global___PaymentMethodUSBankAccount: _TypeAlias = PaymentMethodUSBankAccount - def ClearField(self, field_name: typing.Literal['_verification_info', b'_verification_info', 'account_type', b'account_type', 'bank_name', b'bank_name', 'last_four_digits_account_number', b'last_four_digits_account_number', 'routing_number', b'routing_number', 'verification_info', b'verification_info']) -> None: +@_typing.final +class GetCurrentMonthUsageRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str + + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def WhichOneof(self, oneof_group: typing.Literal['_verification_info', b'_verification_info']) -> typing.Literal['verification_info'] | None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PaymentMethodUSBankAccount = PaymentMethodUSBankAccount +Global___GetCurrentMonthUsageRequest: _TypeAlias = GetCurrentMonthUsageRequest -@typing.final -class GetCurrentMonthUsageRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class UsageCost(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + RESOURCE_TYPE_FIELD_NUMBER: _builtins.int + COST_FIELD_NUMBER: _builtins.int + resource_type: Global___UsageCostType.ValueType + cost: _builtins.float - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, resource_type: Global___UsageCostType.ValueType=..., cost: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['cost', b'cost', 'resource_type', b'resource_type'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetCurrentMonthUsageRequest = GetCurrentMonthUsageRequest +Global___UsageCost: _TypeAlias = UsageCost -@typing.final -class UsageCost(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESOURCE_TYPE_FIELD_NUMBER: builtins.int - COST_FIELD_NUMBER: builtins.int - resource_type: global___UsageCostType.ValueType - cost: builtins.float +@_typing.final +class ResourceUsageCostsBySource(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SOURCE_TYPE_FIELD_NUMBER: _builtins.int + RESOURCE_USAGE_COSTS_FIELD_NUMBER: _builtins.int + TIER_NAME_FIELD_NUMBER: _builtins.int + source_type: Global___SourceType.ValueType + tier_name: _builtins.str - def __init__(self, *, resource_type: global___UsageCostType.ValueType=..., cost: builtins.float=...) -> None: + @_builtins.property + def resource_usage_costs(self) -> Global___ResourceUsageCosts: ... - def ClearField(self, field_name: typing.Literal['cost', b'cost', 'resource_type', b'resource_type']) -> None: + def __init__(self, *, source_type: Global___SourceType.ValueType=..., resource_usage_costs: Global___ResourceUsageCosts | None=..., tier_name: _builtins.str=...) -> None: ... -global___UsageCost = UsageCost + _HasFieldArgType: _TypeAlias = _typing.Literal['resource_usage_costs', b'resource_usage_costs'] -@typing.final -class ResourceUsageCostsBySource(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SOURCE_TYPE_FIELD_NUMBER: builtins.int - RESOURCE_USAGE_COSTS_FIELD_NUMBER: builtins.int - TIER_NAME_FIELD_NUMBER: builtins.int - source_type: global___SourceType.ValueType - tier_name: builtins.str + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['resource_usage_costs', b'resource_usage_costs', 'source_type', b'source_type', 'tier_name', b'tier_name'] - @property - def resource_usage_costs(self) -> global___ResourceUsageCosts: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... +Global___ResourceUsageCostsBySource: _TypeAlias = ResourceUsageCostsBySource - def __init__(self, *, source_type: global___SourceType.ValueType=..., resource_usage_costs: global___ResourceUsageCosts | None=..., tier_name: builtins.str=...) -> None: +@_typing.final +class ResourceUsageCosts(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + USAGE_COSTS_FIELD_NUMBER: _builtins.int + DISCOUNT_FIELD_NUMBER: _builtins.int + TOTAL_WITH_DISCOUNT_FIELD_NUMBER: _builtins.int + TOTAL_WITHOUT_DISCOUNT_FIELD_NUMBER: _builtins.int + discount: _builtins.float + total_with_discount: _builtins.float + total_without_discount: _builtins.float + + @_builtins.property + def usage_costs(self) -> _containers.RepeatedCompositeFieldContainer[Global___UsageCost]: ... - def HasField(self, field_name: typing.Literal['resource_usage_costs', b'resource_usage_costs']) -> builtins.bool: + def __init__(self, *, usage_costs: _abc.Iterable[Global___UsageCost] | None=..., discount: _builtins.float=..., total_with_discount: _builtins.float=..., total_without_discount: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['discount', b'discount', 'total_with_discount', b'total_with_discount', 'total_without_discount', b'total_without_discount', 'usage_costs', b'usage_costs'] - def ClearField(self, field_name: typing.Literal['resource_usage_costs', b'resource_usage_costs', 'source_type', b'source_type', 'tier_name', b'tier_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResourceUsageCostsBySource = ResourceUsageCostsBySource +Global___ResourceUsageCosts: _TypeAlias = ResourceUsageCosts + +@_typing.final +class GetCurrentMonthUsageResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + START_DATE_FIELD_NUMBER: _builtins.int + END_DATE_FIELD_NUMBER: _builtins.int + RESOURCE_USAGE_COSTS_BY_SOURCE_FIELD_NUMBER: _builtins.int + SUBTOTAL_FIELD_NUMBER: _builtins.int + CLOUD_STORAGE_USAGE_COST_FIELD_NUMBER: _builtins.int + DATA_UPLOAD_USAGE_COST_FIELD_NUMBER: _builtins.int + DATA_EGRES_USAGE_COST_FIELD_NUMBER: _builtins.int + REMOTE_CONTROL_USAGE_COST_FIELD_NUMBER: _builtins.int + STANDARD_COMPUTE_USAGE_COST_FIELD_NUMBER: _builtins.int + DISCOUNT_AMOUNT_FIELD_NUMBER: _builtins.int + TOTAL_USAGE_WITH_DISCOUNT_FIELD_NUMBER: _builtins.int + TOTAL_USAGE_WITHOUT_DISCOUNT_FIELD_NUMBER: _builtins.int + PER_MACHINE_USAGE_COST_FIELD_NUMBER: _builtins.int + BINARY_DATA_CLOUD_STORAGE_USAGE_COST_FIELD_NUMBER: _builtins.int + OTHER_CLOUD_STORAGE_USAGE_COST_FIELD_NUMBER: _builtins.int + subtotal: _builtins.float -@typing.final -class ResourceUsageCosts(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - USAGE_COSTS_FIELD_NUMBER: builtins.int - DISCOUNT_FIELD_NUMBER: builtins.int - TOTAL_WITH_DISCOUNT_FIELD_NUMBER: builtins.int - TOTAL_WITHOUT_DISCOUNT_FIELD_NUMBER: builtins.int - discount: builtins.float - total_with_discount: builtins.float - total_without_discount: builtins.float + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def cloud_storage_usage_cost(self) -> _builtins.float: + """all fields below are deprecated""" + + @cloud_storage_usage_cost.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def cloud_storage_usage_cost(self, value: _builtins.float) -> None: + """all fields below are deprecated""" + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def data_upload_usage_cost(self) -> _builtins.float: + ... + + @data_upload_usage_cost.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def data_upload_usage_cost(self, value: _builtins.float) -> None: + ... + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def data_egres_usage_cost(self) -> _builtins.float: + ... + + @data_egres_usage_cost.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def data_egres_usage_cost(self, value: _builtins.float) -> None: + ... - @property - def usage_costs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___UsageCost]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def remote_control_usage_cost(self) -> _builtins.float: ... - def __init__(self, *, usage_costs: collections.abc.Iterable[global___UsageCost] | None=..., discount: builtins.float=..., total_with_discount: builtins.float=..., total_without_discount: builtins.float=...) -> None: + @remote_control_usage_cost.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def remote_control_usage_cost(self, value: _builtins.float) -> None: ... - def ClearField(self, field_name: typing.Literal['discount', b'discount', 'total_with_discount', b'total_with_discount', 'total_without_discount', b'total_without_discount', 'usage_costs', b'usage_costs']) -> None: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def standard_compute_usage_cost(self) -> _builtins.float: ... -global___ResourceUsageCosts = ResourceUsageCosts -@typing.final -class GetCurrentMonthUsageResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - START_DATE_FIELD_NUMBER: builtins.int - END_DATE_FIELD_NUMBER: builtins.int - RESOURCE_USAGE_COSTS_BY_SOURCE_FIELD_NUMBER: builtins.int - SUBTOTAL_FIELD_NUMBER: builtins.int - CLOUD_STORAGE_USAGE_COST_FIELD_NUMBER: builtins.int - DATA_UPLOAD_USAGE_COST_FIELD_NUMBER: builtins.int - DATA_EGRES_USAGE_COST_FIELD_NUMBER: builtins.int - REMOTE_CONTROL_USAGE_COST_FIELD_NUMBER: builtins.int - STANDARD_COMPUTE_USAGE_COST_FIELD_NUMBER: builtins.int - DISCOUNT_AMOUNT_FIELD_NUMBER: builtins.int - TOTAL_USAGE_WITH_DISCOUNT_FIELD_NUMBER: builtins.int - TOTAL_USAGE_WITHOUT_DISCOUNT_FIELD_NUMBER: builtins.int - PER_MACHINE_USAGE_COST_FIELD_NUMBER: builtins.int - BINARY_DATA_CLOUD_STORAGE_USAGE_COST_FIELD_NUMBER: builtins.int - OTHER_CLOUD_STORAGE_USAGE_COST_FIELD_NUMBER: builtins.int - subtotal: builtins.float - cloud_storage_usage_cost: builtins.float - 'all fields below are deprecated' - data_upload_usage_cost: builtins.float - data_egres_usage_cost: builtins.float - remote_control_usage_cost: builtins.float - standard_compute_usage_cost: builtins.float - discount_amount: builtins.float - total_usage_with_discount: builtins.float - total_usage_without_discount: builtins.float - per_machine_usage_cost: builtins.float - binary_data_cloud_storage_usage_cost: builtins.float - other_cloud_storage_usage_cost: builtins.float + @standard_compute_usage_cost.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def standard_compute_usage_cost(self, value: _builtins.float) -> None: + ... + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def discount_amount(self) -> _builtins.float: + ... + + @discount_amount.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def discount_amount(self, value: _builtins.float) -> None: + ... + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def total_usage_with_discount(self) -> _builtins.float: + ... + + @total_usage_with_discount.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def total_usage_with_discount(self, value: _builtins.float) -> None: + ... + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def total_usage_without_discount(self) -> _builtins.float: + ... + + @total_usage_without_discount.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def total_usage_without_discount(self, value: _builtins.float) -> None: + ... + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def per_machine_usage_cost(self) -> _builtins.float: + ... + + @per_machine_usage_cost.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def per_machine_usage_cost(self, value: _builtins.float) -> None: + ... + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def binary_data_cloud_storage_usage_cost(self) -> _builtins.float: + ... + + @binary_data_cloud_storage_usage_cost.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def binary_data_cloud_storage_usage_cost(self, value: _builtins.float) -> None: + ... + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def other_cloud_storage_usage_cost(self) -> _builtins.float: + ... + + @other_cloud_storage_usage_cost.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def other_cloud_storage_usage_cost(self, value: _builtins.float) -> None: + ... - @property - def start_date(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def start_date(self) -> _timestamp_pb2.Timestamp: ... - @property - def end_date(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def end_date(self) -> _timestamp_pb2.Timestamp: ... - @property - def resource_usage_costs_by_source(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceUsageCostsBySource]: + @_builtins.property + def resource_usage_costs_by_source(self) -> _containers.RepeatedCompositeFieldContainer[Global___ResourceUsageCostsBySource]: ... - def __init__(self, *, start_date: google.protobuf.timestamp_pb2.Timestamp | None=..., end_date: google.protobuf.timestamp_pb2.Timestamp | None=..., resource_usage_costs_by_source: collections.abc.Iterable[global___ResourceUsageCostsBySource] | None=..., subtotal: builtins.float=..., cloud_storage_usage_cost: builtins.float=..., data_upload_usage_cost: builtins.float=..., data_egres_usage_cost: builtins.float=..., remote_control_usage_cost: builtins.float=..., standard_compute_usage_cost: builtins.float=..., discount_amount: builtins.float=..., total_usage_with_discount: builtins.float=..., total_usage_without_discount: builtins.float=..., per_machine_usage_cost: builtins.float=..., binary_data_cloud_storage_usage_cost: builtins.float=..., other_cloud_storage_usage_cost: builtins.float=...) -> None: + def __init__(self, *, start_date: _timestamp_pb2.Timestamp | None=..., end_date: _timestamp_pb2.Timestamp | None=..., resource_usage_costs_by_source: _abc.Iterable[Global___ResourceUsageCostsBySource] | None=..., subtotal: _builtins.float=..., cloud_storage_usage_cost: _builtins.float=..., data_upload_usage_cost: _builtins.float=..., data_egres_usage_cost: _builtins.float=..., remote_control_usage_cost: _builtins.float=..., standard_compute_usage_cost: _builtins.float=..., discount_amount: _builtins.float=..., total_usage_with_discount: _builtins.float=..., total_usage_without_discount: _builtins.float=..., per_machine_usage_cost: _builtins.float=..., binary_data_cloud_storage_usage_cost: _builtins.float=..., other_cloud_storage_usage_cost: _builtins.float=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['end_date', b'end_date', 'start_date', b'start_date'] - def HasField(self, field_name: typing.Literal['end_date', b'end_date', 'start_date', b'start_date']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data_cloud_storage_usage_cost', b'binary_data_cloud_storage_usage_cost', 'cloud_storage_usage_cost', b'cloud_storage_usage_cost', 'data_egres_usage_cost', b'data_egres_usage_cost', 'data_upload_usage_cost', b'data_upload_usage_cost', 'discount_amount', b'discount_amount', 'end_date', b'end_date', 'other_cloud_storage_usage_cost', b'other_cloud_storage_usage_cost', 'per_machine_usage_cost', b'per_machine_usage_cost', 'remote_control_usage_cost', b'remote_control_usage_cost', 'resource_usage_costs_by_source', b'resource_usage_costs_by_source', 'standard_compute_usage_cost', b'standard_compute_usage_cost', 'start_date', b'start_date', 'subtotal', b'subtotal', 'total_usage_with_discount', b'total_usage_with_discount', 'total_usage_without_discount', b'total_usage_without_discount'] - def ClearField(self, field_name: typing.Literal['binary_data_cloud_storage_usage_cost', b'binary_data_cloud_storage_usage_cost', 'cloud_storage_usage_cost', b'cloud_storage_usage_cost', 'data_egres_usage_cost', b'data_egres_usage_cost', 'data_upload_usage_cost', b'data_upload_usage_cost', 'discount_amount', b'discount_amount', 'end_date', b'end_date', 'other_cloud_storage_usage_cost', b'other_cloud_storage_usage_cost', 'per_machine_usage_cost', b'per_machine_usage_cost', 'remote_control_usage_cost', b'remote_control_usage_cost', 'resource_usage_costs_by_source', b'resource_usage_costs_by_source', 'standard_compute_usage_cost', b'standard_compute_usage_cost', 'start_date', b'start_date', 'subtotal', b'subtotal', 'total_usage_with_discount', b'total_usage_with_discount', 'total_usage_without_discount', b'total_usage_without_discount']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetCurrentMonthUsageResponse = GetCurrentMonthUsageResponse +Global___GetCurrentMonthUsageResponse: _TypeAlias = GetCurrentMonthUsageResponse -@typing.final -class GetOrgBillingInformationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class GetOrgBillingInformationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOrgBillingInformationRequest = GetOrgBillingInformationRequest +Global___GetOrgBillingInformationRequest: _TypeAlias = GetOrgBillingInformationRequest -@typing.final -class GetOrgBillingInformationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - BILLING_EMAIL_FIELD_NUMBER: builtins.int - METHOD_FIELD_NUMBER: builtins.int - BILLING_TIER_FIELD_NUMBER: builtins.int - METHOD_US_BANK_ACCOUNT_FIELD_NUMBER: builtins.int - type: global___PaymentMethodType.ValueType - billing_email: builtins.str - billing_tier: builtins.str +@_typing.final +class GetOrgBillingInformationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TYPE_FIELD_NUMBER: _builtins.int + BILLING_EMAIL_FIELD_NUMBER: _builtins.int + METHOD_FIELD_NUMBER: _builtins.int + BILLING_TIER_FIELD_NUMBER: _builtins.int + METHOD_US_BANK_ACCOUNT_FIELD_NUMBER: _builtins.int + type: Global___PaymentMethodType.ValueType + billing_email: _builtins.str + billing_tier: _builtins.str 'Only return billing_tier for billing dashboard admin users' - @property - def method(self) -> global___PaymentMethodCard: + @_builtins.property + def method(self) -> Global___PaymentMethodCard: """defined if type is PAYMENT_METHOD_TYPE_CARD""" - @property - def method_us_bank_account(self) -> global___PaymentMethodUSBankAccount: + @_builtins.property + def method_us_bank_account(self) -> Global___PaymentMethodUSBankAccount: """defined if type is PAYMENT_METHOD_TYPE_USBANKACCOUNT""" - def __init__(self, *, type: global___PaymentMethodType.ValueType=..., billing_email: builtins.str=..., method: global___PaymentMethodCard | None=..., billing_tier: builtins.str | None=..., method_us_bank_account: global___PaymentMethodUSBankAccount | None=...) -> None: + def __init__(self, *, type: Global___PaymentMethodType.ValueType=..., billing_email: _builtins.str=..., method: Global___PaymentMethodCard | None=..., billing_tier: _builtins.str | None=..., method_us_bank_account: Global___PaymentMethodUSBankAccount | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_billing_tier', b'_billing_tier', '_method', b'_method', '_method_us_bank_account', b'_method_us_bank_account', 'billing_tier', b'billing_tier', 'method', b'method', 'method_us_bank_account', b'method_us_bank_account'] - def HasField(self, field_name: typing.Literal['_billing_tier', b'_billing_tier', '_method', b'_method', '_method_us_bank_account', b'_method_us_bank_account', 'billing_tier', b'billing_tier', 'method', b'method', 'method_us_bank_account', b'method_us_bank_account']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_billing_tier', b'_billing_tier', '_method', b'_method', '_method_us_bank_account', b'_method_us_bank_account', 'billing_email', b'billing_email', 'billing_tier', b'billing_tier', 'method', b'method', 'method_us_bank_account', b'method_us_bank_account', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['_billing_tier', b'_billing_tier', '_method', b'_method', '_method_us_bank_account', b'_method_us_bank_account', 'billing_email', b'billing_email', 'billing_tier', b'billing_tier', 'method', b'method', 'method_us_bank_account', b'method_us_bank_account', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__billing_tier: _TypeAlias = _typing.Literal['billing_tier'] + _WhichOneofArgType__billing_tier: _TypeAlias = _typing.Literal['_billing_tier', b'_billing_tier'] + _WhichOneofReturnType__method: _TypeAlias = _typing.Literal['method'] + _WhichOneofArgType__method: _TypeAlias = _typing.Literal['_method', b'_method'] + _WhichOneofReturnType__method_us_bank_account: _TypeAlias = _typing.Literal['method_us_bank_account'] + _WhichOneofArgType__method_us_bank_account: _TypeAlias = _typing.Literal['_method_us_bank_account', b'_method_us_bank_account'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_billing_tier', b'_billing_tier']) -> typing.Literal['billing_tier'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__billing_tier) -> _WhichOneofReturnType__billing_tier | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_method', b'_method']) -> typing.Literal['method'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__method) -> _WhichOneofReturnType__method | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_method_us_bank_account', b'_method_us_bank_account']) -> typing.Literal['method_us_bank_account'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__method_us_bank_account) -> _WhichOneofReturnType__method_us_bank_account | None: ... -global___GetOrgBillingInformationResponse = GetOrgBillingInformationResponse +Global___GetOrgBillingInformationResponse: _TypeAlias = GetOrgBillingInformationResponse -@typing.final -class GetInvoicesSummaryRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str +@_typing.final +class GetInvoicesSummaryRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str - def __init__(self, *, org_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetInvoicesSummaryRequest = GetInvoicesSummaryRequest +Global___GetInvoicesSummaryRequest: _TypeAlias = GetInvoicesSummaryRequest -@typing.final -class GetInvoicesSummaryResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OUTSTANDING_BALANCE_FIELD_NUMBER: builtins.int - INVOICES_FIELD_NUMBER: builtins.int - outstanding_balance: builtins.float +@_typing.final +class GetInvoicesSummaryResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + OUTSTANDING_BALANCE_FIELD_NUMBER: _builtins.int + INVOICES_FIELD_NUMBER: _builtins.int + outstanding_balance: _builtins.float 'all unpaid balances at the end of the last billing cycle' - @property - def invoices(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___InvoiceSummary]: + @_builtins.property + def invoices(self) -> _containers.RepeatedCompositeFieldContainer[Global___InvoiceSummary]: """all previous invoices""" - def __init__(self, *, outstanding_balance: builtins.float=..., invoices: collections.abc.Iterable[global___InvoiceSummary] | None=...) -> None: + def __init__(self, *, outstanding_balance: _builtins.float=..., invoices: _abc.Iterable[Global___InvoiceSummary] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['invoices', b'invoices', 'outstanding_balance', b'outstanding_balance'] - def ClearField(self, field_name: typing.Literal['invoices', b'invoices', 'outstanding_balance', b'outstanding_balance']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetInvoicesSummaryResponse = GetInvoicesSummaryResponse +Global___GetInvoicesSummaryResponse: _TypeAlias = GetInvoicesSummaryResponse -@typing.final -class GetInvoicePdfRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - ORG_ID_FIELD_NUMBER: builtins.int - id: builtins.str - org_id: builtins.str +@_typing.final +class GetInvoicePdfRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + ORG_ID_FIELD_NUMBER: _builtins.int + id: _builtins.str + org_id: _builtins.str - def __init__(self, *, id: builtins.str=..., org_id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetInvoicePdfRequest = GetInvoicePdfRequest +Global___GetInvoicePdfRequest: _TypeAlias = GetInvoicePdfRequest -@typing.final -class GetInvoicePdfResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CHUNK_FIELD_NUMBER: builtins.int - chunk: builtins.bytes +@_typing.final +class GetInvoicePdfResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CHUNK_FIELD_NUMBER: _builtins.int + chunk: _builtins.bytes - def __init__(self, *, chunk: builtins.bytes=...) -> None: + def __init__(self, *, chunk: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['chunk', b'chunk'] - def ClearField(self, field_name: typing.Literal['chunk', b'chunk']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetInvoicePdfResponse = GetInvoicePdfResponse +Global___GetInvoicePdfResponse: _TypeAlias = GetInvoicePdfResponse -@typing.final -class SendPaymentRequiredEmailRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CUSTOMER_ORG_ID_FIELD_NUMBER: builtins.int - BILLING_OWNER_ORG_ID_FIELD_NUMBER: builtins.int - customer_org_id: builtins.str - billing_owner_org_id: builtins.str +@_typing.final +class SendPaymentRequiredEmailRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CUSTOMER_ORG_ID_FIELD_NUMBER: _builtins.int + BILLING_OWNER_ORG_ID_FIELD_NUMBER: _builtins.int + customer_org_id: _builtins.str + billing_owner_org_id: _builtins.str - def __init__(self, *, customer_org_id: builtins.str=..., billing_owner_org_id: builtins.str=...) -> None: + def __init__(self, *, customer_org_id: _builtins.str=..., billing_owner_org_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['billing_owner_org_id', b'billing_owner_org_id', 'customer_org_id', b'customer_org_id'] - def ClearField(self, field_name: typing.Literal['billing_owner_org_id', b'billing_owner_org_id', 'customer_org_id', b'customer_org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SendPaymentRequiredEmailRequest = SendPaymentRequiredEmailRequest +Global___SendPaymentRequiredEmailRequest: _TypeAlias = SendPaymentRequiredEmailRequest -@typing.final -class SendPaymentRequiredEmailResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SendPaymentRequiredEmailResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SendPaymentRequiredEmailResponse = SendPaymentRequiredEmailResponse +Global___SendPaymentRequiredEmailResponse: _TypeAlias = SendPaymentRequiredEmailResponse -@typing.final -class GetAvailableBillingTiersRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetAvailableBillingTiersRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___GetAvailableBillingTiersRequest = GetAvailableBillingTiersRequest +Global___GetAvailableBillingTiersRequest: _TypeAlias = GetAvailableBillingTiersRequest -@typing.final -class GetAvailableBillingTiersResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TIERS_FIELD_NUMBER: builtins.int +@_typing.final +class GetAvailableBillingTiersResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TIERS_FIELD_NUMBER: _builtins.int - @property - def tiers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tiers(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, tiers: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, tiers: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['tiers', b'tiers'] - def ClearField(self, field_name: typing.Literal['tiers', b'tiers']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAvailableBillingTiersResponse = GetAvailableBillingTiersResponse +Global___GetAvailableBillingTiersResponse: _TypeAlias = GetAvailableBillingTiersResponse -@typing.final -class UpdateOrganizationBillingTierRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORGANIZATION_ID_FIELD_NUMBER: builtins.int - BILLING_TIER_FIELD_NUMBER: builtins.int - organization_id: builtins.str - billing_tier: builtins.str +@_typing.final +class UpdateOrganizationBillingTierRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + BILLING_TIER_FIELD_NUMBER: _builtins.int + organization_id: _builtins.str + billing_tier: _builtins.str - def __init__(self, *, organization_id: builtins.str=..., billing_tier: builtins.str=...) -> None: + def __init__(self, *, organization_id: _builtins.str=..., billing_tier: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['billing_tier', b'billing_tier', 'organization_id', b'organization_id'] - def ClearField(self, field_name: typing.Literal['billing_tier', b'billing_tier', 'organization_id', b'organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateOrganizationBillingTierRequest = UpdateOrganizationBillingTierRequest +Global___UpdateOrganizationBillingTierRequest: _TypeAlias = UpdateOrganizationBillingTierRequest -@typing.final -class UpdateOrganizationBillingTierResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateOrganizationBillingTierResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UpdateOrganizationBillingTierResponse = UpdateOrganizationBillingTierResponse +Global___UpdateOrganizationBillingTierResponse: _TypeAlias = UpdateOrganizationBillingTierResponse -@typing.final -class GetLocationBillingOrganizationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str +@_typing.final +class GetLocationBillingOrganizationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str - def __init__(self, *, location_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id'] - def ClearField(self, field_name: typing.Literal['location_id', b'location_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLocationBillingOrganizationRequest = GetLocationBillingOrganizationRequest +Global___GetLocationBillingOrganizationRequest: _TypeAlias = GetLocationBillingOrganizationRequest -@typing.final -class GetLocationBillingOrganizationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BILLING_ORGANIZATION_ID_FIELD_NUMBER: builtins.int - billing_organization_id: builtins.str +@_typing.final +class GetLocationBillingOrganizationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + BILLING_ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + billing_organization_id: _builtins.str - def __init__(self, *, billing_organization_id: builtins.str=...) -> None: + def __init__(self, *, billing_organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['billing_organization_id', b'billing_organization_id'] - def ClearField(self, field_name: typing.Literal['billing_organization_id', b'billing_organization_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLocationBillingOrganizationResponse = GetLocationBillingOrganizationResponse +Global___GetLocationBillingOrganizationResponse: _TypeAlias = GetLocationBillingOrganizationResponse -@typing.final -class UpdateLocationBillingOrganizationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_ID_FIELD_NUMBER: builtins.int - BILLING_ORGANIZATION_ID_FIELD_NUMBER: builtins.int - location_id: builtins.str - billing_organization_id: builtins.str +@_typing.final +class UpdateLocationBillingOrganizationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_ID_FIELD_NUMBER: _builtins.int + BILLING_ORGANIZATION_ID_FIELD_NUMBER: _builtins.int + location_id: _builtins.str + billing_organization_id: _builtins.str - def __init__(self, *, location_id: builtins.str=..., billing_organization_id: builtins.str=...) -> None: + def __init__(self, *, location_id: _builtins.str=..., billing_organization_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['billing_organization_id', b'billing_organization_id', 'location_id', b'location_id'] - def ClearField(self, field_name: typing.Literal['billing_organization_id', b'billing_organization_id', 'location_id', b'location_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateLocationBillingOrganizationRequest = UpdateLocationBillingOrganizationRequest +Global___UpdateLocationBillingOrganizationRequest: _TypeAlias = UpdateLocationBillingOrganizationRequest -@typing.final -class UpdateLocationBillingOrganizationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UpdateLocationBillingOrganizationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UpdateLocationBillingOrganizationResponse = UpdateLocationBillingOrganizationResponse +Global___UpdateLocationBillingOrganizationResponse: _TypeAlias = UpdateLocationBillingOrganizationResponse -@typing.final -class ChargeOrganizationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_TO_CHARGE_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - SUBTOTAL_FIELD_NUMBER: builtins.int - TAX_FIELD_NUMBER: builtins.int - ORG_ID_FOR_BRANDING_FIELD_NUMBER: builtins.int - DISABLE_CONFIRMATION_EMAIL_FIELD_NUMBER: builtins.int - org_id_to_charge: builtins.str - description: builtins.str - subtotal: builtins.float - tax: builtins.float - org_id_for_branding: builtins.str - disable_confirmation_email: builtins.bool +@_typing.final +class ChargeOrganizationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_TO_CHARGE_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + SUBTOTAL_FIELD_NUMBER: _builtins.int + TAX_FIELD_NUMBER: _builtins.int + ORG_ID_FOR_BRANDING_FIELD_NUMBER: _builtins.int + DISABLE_CONFIRMATION_EMAIL_FIELD_NUMBER: _builtins.int + org_id_to_charge: _builtins.str + description: _builtins.str + subtotal: _builtins.float + tax: _builtins.float + org_id_for_branding: _builtins.str + disable_confirmation_email: _builtins.bool - def __init__(self, *, org_id_to_charge: builtins.str=..., description: builtins.str | None=..., subtotal: builtins.float=..., tax: builtins.float=..., org_id_for_branding: builtins.str | None=..., disable_confirmation_email: builtins.bool=...) -> None: + def __init__(self, *, org_id_to_charge: _builtins.str=..., description: _builtins.str | None=..., subtotal: _builtins.float=..., tax: _builtins.float=..., org_id_for_branding: _builtins.str | None=..., disable_confirmation_email: _builtins.bool=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_description', b'_description', '_org_id_for_branding', b'_org_id_for_branding', 'description', b'description', 'org_id_for_branding', b'org_id_for_branding'] - def HasField(self, field_name: typing.Literal['_description', b'_description', '_org_id_for_branding', b'_org_id_for_branding', 'description', b'description', 'org_id_for_branding', b'org_id_for_branding']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_description', b'_description', '_org_id_for_branding', b'_org_id_for_branding', 'description', b'description', 'disable_confirmation_email', b'disable_confirmation_email', 'org_id_for_branding', b'org_id_for_branding', 'org_id_to_charge', b'org_id_to_charge', 'subtotal', b'subtotal', 'tax', b'tax'] - def ClearField(self, field_name: typing.Literal['_description', b'_description', '_org_id_for_branding', b'_org_id_for_branding', 'description', b'description', 'disable_confirmation_email', b'disable_confirmation_email', 'org_id_for_branding', b'org_id_for_branding', 'org_id_to_charge', b'org_id_to_charge', 'subtotal', b'subtotal', 'tax', b'tax']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__description: _TypeAlias = _typing.Literal['description'] + _WhichOneofArgType__description: _TypeAlias = _typing.Literal['_description', b'_description'] + _WhichOneofReturnType__org_id_for_branding: _TypeAlias = _typing.Literal['org_id_for_branding'] + _WhichOneofArgType__org_id_for_branding: _TypeAlias = _typing.Literal['_org_id_for_branding', b'_org_id_for_branding'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_description', b'_description']) -> typing.Literal['description'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__description) -> _WhichOneofReturnType__description | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_org_id_for_branding', b'_org_id_for_branding']) -> typing.Literal['org_id_for_branding'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__org_id_for_branding) -> _WhichOneofReturnType__org_id_for_branding | None: ... -global___ChargeOrganizationRequest = ChargeOrganizationRequest +Global___ChargeOrganizationRequest: _TypeAlias = ChargeOrganizationRequest -@typing.final -class ChargeOrganizationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INVOICE_ID_FIELD_NUMBER: builtins.int - invoice_id: builtins.str +@_typing.final +class ChargeOrganizationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + INVOICE_ID_FIELD_NUMBER: _builtins.int + invoice_id: _builtins.str - def __init__(self, *, invoice_id: builtins.str=...) -> None: + def __init__(self, *, invoice_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['invoice_id', b'invoice_id'] - def ClearField(self, field_name: typing.Literal['invoice_id', b'invoice_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ChargeOrganizationResponse = ChargeOrganizationResponse +Global___ChargeOrganizationResponse: _TypeAlias = ChargeOrganizationResponse -@typing.final -class CreateInvoiceAndChargeImmediatelyRequest(google.protobuf.message.Message): +@_typing.final +class CreateInvoiceAndChargeImmediatelyRequest(_message.Message): """Deprecated: Use ChargeOrganizationRequest instead""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_TO_CHARGE_FIELD_NUMBER: builtins.int - AMOUNT_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - ORG_ID_FOR_BRANDING_FIELD_NUMBER: builtins.int - DISABLE_EMAIL_FIELD_NUMBER: builtins.int - org_id_to_charge: builtins.str - amount: builtins.float - description: builtins.str - org_id_for_branding: builtins.str - disable_email: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_TO_CHARGE_FIELD_NUMBER: _builtins.int + AMOUNT_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + ORG_ID_FOR_BRANDING_FIELD_NUMBER: _builtins.int + DISABLE_EMAIL_FIELD_NUMBER: _builtins.int + org_id_to_charge: _builtins.str + amount: _builtins.float + description: _builtins.str + org_id_for_branding: _builtins.str + disable_email: _builtins.bool - def __init__(self, *, org_id_to_charge: builtins.str=..., amount: builtins.float=..., description: builtins.str | None=..., org_id_for_branding: builtins.str | None=..., disable_email: builtins.bool=...) -> None: + def __init__(self, *, org_id_to_charge: _builtins.str=..., amount: _builtins.float=..., description: _builtins.str | None=..., org_id_for_branding: _builtins.str | None=..., disable_email: _builtins.bool=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_description', b'_description', '_org_id_for_branding', b'_org_id_for_branding', 'description', b'description', 'org_id_for_branding', b'org_id_for_branding'] - def HasField(self, field_name: typing.Literal['_description', b'_description', '_org_id_for_branding', b'_org_id_for_branding', 'description', b'description', 'org_id_for_branding', b'org_id_for_branding']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_description', b'_description', '_org_id_for_branding', b'_org_id_for_branding', 'amount', b'amount', 'description', b'description', 'disable_email', b'disable_email', 'org_id_for_branding', b'org_id_for_branding', 'org_id_to_charge', b'org_id_to_charge'] - def ClearField(self, field_name: typing.Literal['_description', b'_description', '_org_id_for_branding', b'_org_id_for_branding', 'amount', b'amount', 'description', b'description', 'disable_email', b'disable_email', 'org_id_for_branding', b'org_id_for_branding', 'org_id_to_charge', b'org_id_to_charge']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__description: _TypeAlias = _typing.Literal['description'] + _WhichOneofArgType__description: _TypeAlias = _typing.Literal['_description', b'_description'] + _WhichOneofReturnType__org_id_for_branding: _TypeAlias = _typing.Literal['org_id_for_branding'] + _WhichOneofArgType__org_id_for_branding: _TypeAlias = _typing.Literal['_org_id_for_branding', b'_org_id_for_branding'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_description', b'_description']) -> typing.Literal['description'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__description) -> _WhichOneofReturnType__description | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_org_id_for_branding', b'_org_id_for_branding']) -> typing.Literal['org_id_for_branding'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__org_id_for_branding) -> _WhichOneofReturnType__org_id_for_branding | None: ... -global___CreateInvoiceAndChargeImmediatelyRequest = CreateInvoiceAndChargeImmediatelyRequest +Global___CreateInvoiceAndChargeImmediatelyRequest: _TypeAlias = CreateInvoiceAndChargeImmediatelyRequest -@typing.final -class CreateInvoiceAndChargeImmediatelyResponse(google.protobuf.message.Message): +@_typing.final +class CreateInvoiceAndChargeImmediatelyResponse(_message.Message): """Deprecated: Use ChargeOrganizationResponse instead""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INVOICE_ID_FIELD_NUMBER: builtins.int - invoice_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + INVOICE_ID_FIELD_NUMBER: _builtins.int + invoice_id: _builtins.str - def __init__(self, *, invoice_id: builtins.str=...) -> None: + def __init__(self, *, invoice_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['invoice_id', b'invoice_id'] - def ClearField(self, field_name: typing.Literal['invoice_id', b'invoice_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CreateInvoiceAndChargeImmediatelyResponse = CreateInvoiceAndChargeImmediatelyResponse \ No newline at end of file +Global___CreateInvoiceAndChargeImmediatelyResponse: _TypeAlias = CreateInvoiceAndChargeImmediatelyResponse \ No newline at end of file diff --git a/src/viam/gen/app/v1/end_user_pb2.py b/src/viam/gen/app/v1/end_user_pb2.py index 5ee6dd8a55..cc072de4da 100644 --- a/src/viam/gen/app/v1/end_user_pb2.py +++ b/src/viam/gen/app/v1/end_user_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/v1/end_user.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/v1/end_user.proto') _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15app/v1/end_user.proto\x12\x0bviam.app.v1"\x18\n\x16IsLegalAcceptedRequest"@\n\x17IsLegalAcceptedResponse\x12%\n\x0eaccepted_legal\x18\x01 \x01(\x08R\racceptedLegal"\x14\n\x12AcceptLegalRequest"\x15\n\x13AcceptLegalResponse"\xcb\x01\n\x1eRegisterAuthApplicationRequest\x12)\n\x10application_name\x18\x01 \x01(\tR\x0fapplicationName\x12\x15\n\x06org_id\x18\x02 \x01(\tR\x05orgId\x12\x1f\n\x0borigin_uris\x18\x03 \x03(\tR\noriginUris\x12#\n\rredirect_uris\x18\x04 \x03(\tR\x0credirectUris\x12\x1d\n\nlogout_uri\x18\x05 \x01(\tR\tlogoutUri:\x02\x18\x01"\x9c\x01\n\x1fRegisterAuthApplicationResponse\x12%\n\x0eapplication_id\x18\x01 \x01(\tR\rapplicationId\x12)\n\x10application_name\x18\x02 \x01(\tR\x0fapplicationName\x12#\n\rclient_secret\x18\x03 \x01(\tR\x0cclientSecret:\x02\x18\x01"\xf0\x01\n\x1cUpdateAuthApplicationRequest\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId\x12%\n\x0eapplication_id\x18\x02 \x01(\tR\rapplicationId\x12)\n\x10application_name\x18\x03 \x01(\tR\x0fapplicationName\x12\x1f\n\x0borigin_uris\x18\x04 \x03(\tR\noriginUris\x12#\n\rredirect_uris\x18\x05 \x03(\tR\x0credirectUris\x12\x1d\n\nlogout_uri\x18\x06 \x01(\tR\tlogoutUri:\x02\x18\x01"u\n\x1dUpdateAuthApplicationResponse\x12%\n\x0eapplication_id\x18\x01 \x01(\tR\rapplicationId\x12)\n\x10application_name\x18\x02 \x01(\tR\x0fapplicationName:\x02\x18\x01"]\n\x19GetAuthApplicationRequest\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId\x12%\n\x0eapplication_id\x18\x02 \x01(\tR\rapplicationId:\x02\x18\x01"\xfc\x01\n\x1aGetAuthApplicationResponse\x12%\n\x0eapplication_id\x18\x01 \x01(\tR\rapplicationId\x12)\n\x10application_name\x18\x02 \x01(\tR\x0fapplicationName\x12#\n\rclient_secret\x18\x03 \x01(\tR\x0cclientSecret\x12\x1f\n\x0borigin_uris\x18\x04 \x03(\tR\noriginUris\x12#\n\rredirect_uris\x18\x05 \x03(\tR\x0credirectUris\x12\x1d\n\nlogout_uri\x18\x06 \x01(\tR\tlogoutUri:\x02\x18\x012\x9c\x04\n\x0eEndUserService\x12\\\n\x0fIsLegalAccepted\x12#.viam.app.v1.IsLegalAcceptedRequest\x1a$.viam.app.v1.IsLegalAcceptedResponse\x12P\n\x0bAcceptLegal\x12\x1f.viam.app.v1.AcceptLegalRequest\x1a .viam.app.v1.AcceptLegalResponse\x12y\n\x17RegisterAuthApplication\x12+.viam.app.v1.RegisterAuthApplicationRequest\x1a,.viam.app.v1.RegisterAuthApplicationResponse"\x03\x88\x02\x01\x12s\n\x15UpdateAuthApplication\x12).viam.app.v1.UpdateAuthApplicationRequest\x1a*.viam.app.v1.UpdateAuthApplicationResponse"\x03\x88\x02\x01\x12j\n\x12GetAuthApplication\x12&.viam.app.v1.GetAuthApplicationRequest\x1a\'.viam.app.v1.GetAuthApplicationResponse"\x03\x88\x02\x01B\x18Z\x16go.viam.com/api/app/v1b\x06proto3') _globals = globals() diff --git a/src/viam/gen/app/v1/end_user_pb2.pyi b/src/viam/gen/app/v1/end_user_pb2.pyi index 350e74d231..3e9b30dcc1 100644 --- a/src/viam/gen/app/v1/end_user_pb2.pyi +++ b/src/viam/gen/app/v1/end_user_pb2.pyi @@ -2,180 +2,202 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class IsLegalAcceptedRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated +else: + from typing_extensions import deprecated as _deprecated +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class IsLegalAcceptedRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___IsLegalAcceptedRequest = IsLegalAcceptedRequest +Global___IsLegalAcceptedRequest: _TypeAlias = IsLegalAcceptedRequest -@typing.final -class IsLegalAcceptedResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ACCEPTED_LEGAL_FIELD_NUMBER: builtins.int - accepted_legal: builtins.bool +@_typing.final +class IsLegalAcceptedResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ACCEPTED_LEGAL_FIELD_NUMBER: _builtins.int + accepted_legal: _builtins.bool 'If false, the user should not be able to use the application.' - def __init__(self, *, accepted_legal: builtins.bool=...) -> None: + def __init__(self, *, accepted_legal: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['accepted_legal', b'accepted_legal'] - def ClearField(self, field_name: typing.Literal['accepted_legal', b'accepted_legal']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsLegalAcceptedResponse = IsLegalAcceptedResponse +Global___IsLegalAcceptedResponse: _TypeAlias = IsLegalAcceptedResponse -@typing.final -class AcceptLegalRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class AcceptLegalRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AcceptLegalRequest = AcceptLegalRequest +Global___AcceptLegalRequest: _TypeAlias = AcceptLegalRequest -@typing.final -class AcceptLegalResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class AcceptLegalResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AcceptLegalResponse = AcceptLegalResponse +Global___AcceptLegalResponse: _TypeAlias = AcceptLegalResponse -@typing.final -class RegisterAuthApplicationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - APPLICATION_NAME_FIELD_NUMBER: builtins.int - ORG_ID_FIELD_NUMBER: builtins.int - ORIGIN_URIS_FIELD_NUMBER: builtins.int - REDIRECT_URIS_FIELD_NUMBER: builtins.int - LOGOUT_URI_FIELD_NUMBER: builtins.int - application_name: builtins.str - org_id: builtins.str - logout_uri: builtins.str +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class RegisterAuthApplicationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + APPLICATION_NAME_FIELD_NUMBER: _builtins.int + ORG_ID_FIELD_NUMBER: _builtins.int + ORIGIN_URIS_FIELD_NUMBER: _builtins.int + REDIRECT_URIS_FIELD_NUMBER: _builtins.int + LOGOUT_URI_FIELD_NUMBER: _builtins.int + application_name: _builtins.str + org_id: _builtins.str + logout_uri: _builtins.str - @property - def origin_uris(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def origin_uris(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def redirect_uris(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def redirect_uris(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, application_name: builtins.str=..., org_id: builtins.str=..., origin_uris: collections.abc.Iterable[builtins.str] | None=..., redirect_uris: collections.abc.Iterable[builtins.str] | None=..., logout_uri: builtins.str=...) -> None: + def __init__(self, *, application_name: _builtins.str=..., org_id: _builtins.str=..., origin_uris: _abc.Iterable[_builtins.str] | None=..., redirect_uris: _abc.Iterable[_builtins.str] | None=..., logout_uri: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['application_name', b'application_name', 'logout_uri', b'logout_uri', 'org_id', b'org_id', 'origin_uris', b'origin_uris', 'redirect_uris', b'redirect_uris'] - def ClearField(self, field_name: typing.Literal['application_name', b'application_name', 'logout_uri', b'logout_uri', 'org_id', b'org_id', 'origin_uris', b'origin_uris', 'redirect_uris', b'redirect_uris']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RegisterAuthApplicationRequest = RegisterAuthApplicationRequest +Global___RegisterAuthApplicationRequest: _TypeAlias = RegisterAuthApplicationRequest -@typing.final -class RegisterAuthApplicationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - APPLICATION_ID_FIELD_NUMBER: builtins.int - APPLICATION_NAME_FIELD_NUMBER: builtins.int - CLIENT_SECRET_FIELD_NUMBER: builtins.int - application_id: builtins.str - application_name: builtins.str - client_secret: builtins.str +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class RegisterAuthApplicationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + APPLICATION_ID_FIELD_NUMBER: _builtins.int + APPLICATION_NAME_FIELD_NUMBER: _builtins.int + CLIENT_SECRET_FIELD_NUMBER: _builtins.int + application_id: _builtins.str + application_name: _builtins.str + client_secret: _builtins.str - def __init__(self, *, application_id: builtins.str=..., application_name: builtins.str=..., client_secret: builtins.str=...) -> None: + def __init__(self, *, application_id: _builtins.str=..., application_name: _builtins.str=..., client_secret: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['application_id', b'application_id', 'application_name', b'application_name', 'client_secret', b'client_secret'] - def ClearField(self, field_name: typing.Literal['application_id', b'application_id', 'application_name', b'application_name', 'client_secret', b'client_secret']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RegisterAuthApplicationResponse = RegisterAuthApplicationResponse +Global___RegisterAuthApplicationResponse: _TypeAlias = RegisterAuthApplicationResponse -@typing.final -class UpdateAuthApplicationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - APPLICATION_ID_FIELD_NUMBER: builtins.int - APPLICATION_NAME_FIELD_NUMBER: builtins.int - ORIGIN_URIS_FIELD_NUMBER: builtins.int - REDIRECT_URIS_FIELD_NUMBER: builtins.int - LOGOUT_URI_FIELD_NUMBER: builtins.int - org_id: builtins.str - application_id: builtins.str - application_name: builtins.str - logout_uri: builtins.str +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class UpdateAuthApplicationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + APPLICATION_ID_FIELD_NUMBER: _builtins.int + APPLICATION_NAME_FIELD_NUMBER: _builtins.int + ORIGIN_URIS_FIELD_NUMBER: _builtins.int + REDIRECT_URIS_FIELD_NUMBER: _builtins.int + LOGOUT_URI_FIELD_NUMBER: _builtins.int + org_id: _builtins.str + application_id: _builtins.str + application_name: _builtins.str + logout_uri: _builtins.str - @property - def origin_uris(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def origin_uris(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def redirect_uris(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def redirect_uris(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, org_id: builtins.str=..., application_id: builtins.str=..., application_name: builtins.str=..., origin_uris: collections.abc.Iterable[builtins.str] | None=..., redirect_uris: collections.abc.Iterable[builtins.str] | None=..., logout_uri: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., application_id: _builtins.str=..., application_name: _builtins.str=..., origin_uris: _abc.Iterable[_builtins.str] | None=..., redirect_uris: _abc.Iterable[_builtins.str] | None=..., logout_uri: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['application_id', b'application_id', 'application_name', b'application_name', 'logout_uri', b'logout_uri', 'org_id', b'org_id', 'origin_uris', b'origin_uris', 'redirect_uris', b'redirect_uris'] - def ClearField(self, field_name: typing.Literal['application_id', b'application_id', 'application_name', b'application_name', 'logout_uri', b'logout_uri', 'org_id', b'org_id', 'origin_uris', b'origin_uris', 'redirect_uris', b'redirect_uris']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateAuthApplicationRequest = UpdateAuthApplicationRequest +Global___UpdateAuthApplicationRequest: _TypeAlias = UpdateAuthApplicationRequest -@typing.final -class UpdateAuthApplicationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - APPLICATION_ID_FIELD_NUMBER: builtins.int - APPLICATION_NAME_FIELD_NUMBER: builtins.int - application_id: builtins.str - application_name: builtins.str +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class UpdateAuthApplicationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + APPLICATION_ID_FIELD_NUMBER: _builtins.int + APPLICATION_NAME_FIELD_NUMBER: _builtins.int + application_id: _builtins.str + application_name: _builtins.str - def __init__(self, *, application_id: builtins.str=..., application_name: builtins.str=...) -> None: + def __init__(self, *, application_id: _builtins.str=..., application_name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['application_id', b'application_id', 'application_name', b'application_name'] - def ClearField(self, field_name: typing.Literal['application_id', b'application_id', 'application_name', b'application_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UpdateAuthApplicationResponse = UpdateAuthApplicationResponse +Global___UpdateAuthApplicationResponse: _TypeAlias = UpdateAuthApplicationResponse -@typing.final -class GetAuthApplicationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORG_ID_FIELD_NUMBER: builtins.int - APPLICATION_ID_FIELD_NUMBER: builtins.int - org_id: builtins.str - application_id: builtins.str +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class GetAuthApplicationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORG_ID_FIELD_NUMBER: _builtins.int + APPLICATION_ID_FIELD_NUMBER: _builtins.int + org_id: _builtins.str + application_id: _builtins.str - def __init__(self, *, org_id: builtins.str=..., application_id: builtins.str=...) -> None: + def __init__(self, *, org_id: _builtins.str=..., application_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['application_id', b'application_id', 'org_id', b'org_id'] - def ClearField(self, field_name: typing.Literal['application_id', b'application_id', 'org_id', b'org_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAuthApplicationRequest = GetAuthApplicationRequest +Global___GetAuthApplicationRequest: _TypeAlias = GetAuthApplicationRequest -@typing.final -class GetAuthApplicationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - APPLICATION_ID_FIELD_NUMBER: builtins.int - APPLICATION_NAME_FIELD_NUMBER: builtins.int - CLIENT_SECRET_FIELD_NUMBER: builtins.int - ORIGIN_URIS_FIELD_NUMBER: builtins.int - REDIRECT_URIS_FIELD_NUMBER: builtins.int - LOGOUT_URI_FIELD_NUMBER: builtins.int - application_id: builtins.str - application_name: builtins.str - client_secret: builtins.str - logout_uri: builtins.str +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class GetAuthApplicationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + APPLICATION_ID_FIELD_NUMBER: _builtins.int + APPLICATION_NAME_FIELD_NUMBER: _builtins.int + CLIENT_SECRET_FIELD_NUMBER: _builtins.int + ORIGIN_URIS_FIELD_NUMBER: _builtins.int + REDIRECT_URIS_FIELD_NUMBER: _builtins.int + LOGOUT_URI_FIELD_NUMBER: _builtins.int + application_id: _builtins.str + application_name: _builtins.str + client_secret: _builtins.str + logout_uri: _builtins.str - @property - def origin_uris(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def origin_uris(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def redirect_uris(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def redirect_uris(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, application_id: builtins.str=..., application_name: builtins.str=..., client_secret: builtins.str=..., origin_uris: collections.abc.Iterable[builtins.str] | None=..., redirect_uris: collections.abc.Iterable[builtins.str] | None=..., logout_uri: builtins.str=...) -> None: + def __init__(self, *, application_id: _builtins.str=..., application_name: _builtins.str=..., client_secret: _builtins.str=..., origin_uris: _abc.Iterable[_builtins.str] | None=..., redirect_uris: _abc.Iterable[_builtins.str] | None=..., logout_uri: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['application_id', b'application_id', 'application_name', b'application_name', 'client_secret', b'client_secret', 'logout_uri', b'logout_uri', 'origin_uris', b'origin_uris', 'redirect_uris', b'redirect_uris'] - def ClearField(self, field_name: typing.Literal['application_id', b'application_id', 'application_name', b'application_name', 'client_secret', b'client_secret', 'logout_uri', b'logout_uri', 'origin_uris', b'origin_uris', 'redirect_uris', b'redirect_uris']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAuthApplicationResponse = GetAuthApplicationResponse \ No newline at end of file +Global___GetAuthApplicationResponse: _TypeAlias = GetAuthApplicationResponse \ No newline at end of file diff --git a/src/viam/gen/app/v1/robot_pb2.py b/src/viam/gen/app/v1/robot_pb2.py index 9683734c12..fae4e2959a 100644 --- a/src/viam/gen/app/v1/robot_pb2.py +++ b/src/viam/gen/app/v1/robot_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/v1/robot.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'app/v1/robot.proto') _sym_db = _symbol_database.Default() from ...common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 diff --git a/src/viam/gen/app/v1/robot_pb2.pyi b/src/viam/gen/app/v1/robot_pb2.pyi index ec2d1d140e..35084b472e 100644 --- a/src/viam/gen/app/v1/robot_pb2.pyi +++ b/src/viam/gen/app/v1/robot_pb2.pyi @@ -2,29 +2,33 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from ... import common -import google.protobuf.descriptor -import google.protobuf.duration_pb2 -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated +else: + from typing_extensions import deprecated as _deprecated +DESCRIPTOR: _descriptor.FileDescriptor class _CredentialsType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _CredentialsTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CredentialsType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _CredentialsTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_CredentialsType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor CREDENTIALS_TYPE_UNSPECIFIED: _CredentialsType.ValueType CREDENTIALS_TYPE_INTERNAL: _CredentialsType.ValueType CREDENTIALS_TYPE_API_KEY: _CredentialsType.ValueType @@ -38,704 +42,762 @@ CREDENTIALS_TYPE_INTERNAL: CredentialsType.ValueType CREDENTIALS_TYPE_API_KEY: CredentialsType.ValueType CREDENTIALS_TYPE_ROBOT_SECRET: CredentialsType.ValueType CREDENTIALS_TYPE_ROBOT_LOCATION_SECRET: CredentialsType.ValueType -global___CredentialsType = CredentialsType - -@typing.final -class RobotConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLOUD_FIELD_NUMBER: builtins.int - REMOTES_FIELD_NUMBER: builtins.int - COMPONENTS_FIELD_NUMBER: builtins.int - PROCESSES_FIELD_NUMBER: builtins.int - SERVICES_FIELD_NUMBER: builtins.int - NETWORK_FIELD_NUMBER: builtins.int - AUTH_FIELD_NUMBER: builtins.int - DEBUG_FIELD_NUMBER: builtins.int - MODULES_FIELD_NUMBER: builtins.int - DISABLE_PARTIAL_START_FIELD_NUMBER: builtins.int - PACKAGES_FIELD_NUMBER: builtins.int - OVERWRITE_FRAGMENT_STATUS_FIELD_NUMBER: builtins.int - ENABLE_WEB_PROFILE_FIELD_NUMBER: builtins.int - LOG_FIELD_NUMBER: builtins.int - REVISION_FIELD_NUMBER: builtins.int - MAINTENANCE_FIELD_NUMBER: builtins.int - DISABLE_LOG_DEDUPLICATION_FIELD_NUMBER: builtins.int - JOBS_FIELD_NUMBER: builtins.int - TRACING_FIELD_NUMBER: builtins.int - debug: builtins.bool +Global___CredentialsType: _TypeAlias = CredentialsType + +@_typing.final +class RobotConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CLOUD_FIELD_NUMBER: _builtins.int + REMOTES_FIELD_NUMBER: _builtins.int + COMPONENTS_FIELD_NUMBER: _builtins.int + PROCESSES_FIELD_NUMBER: _builtins.int + SERVICES_FIELD_NUMBER: _builtins.int + NETWORK_FIELD_NUMBER: _builtins.int + AUTH_FIELD_NUMBER: _builtins.int + DEBUG_FIELD_NUMBER: _builtins.int + MODULES_FIELD_NUMBER: _builtins.int + DISABLE_PARTIAL_START_FIELD_NUMBER: _builtins.int + PACKAGES_FIELD_NUMBER: _builtins.int + OVERWRITE_FRAGMENT_STATUS_FIELD_NUMBER: _builtins.int + ENABLE_WEB_PROFILE_FIELD_NUMBER: _builtins.int + LOG_FIELD_NUMBER: _builtins.int + REVISION_FIELD_NUMBER: _builtins.int + MAINTENANCE_FIELD_NUMBER: _builtins.int + DISABLE_LOG_DEDUPLICATION_FIELD_NUMBER: _builtins.int + JOBS_FIELD_NUMBER: _builtins.int + TRACING_FIELD_NUMBER: _builtins.int + debug: _builtins.bool 'Turns on debug mode for robot, adding an echo server and more logging and tracing. Only works after restart' - disable_partial_start: builtins.bool - enable_web_profile: builtins.bool + disable_partial_start: _builtins.bool + enable_web_profile: _builtins.bool 'Turns on pprof http server on localhost. By default false.' - revision: builtins.str + revision: _builtins.str 'Attributes a particular revision to the config.' - disable_log_deduplication: builtins.bool + disable_log_deduplication: _builtins.bool "Disables the robot's log deduplication (identical, noisy logs will still\n be output individually instead of aggregated.)\n " - @property - def cloud(self) -> global___CloudConfig: + @_builtins.property + def cloud(self) -> Global___CloudConfig: ... - @property - def remotes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RemoteConfig]: + @_builtins.property + def remotes(self) -> _containers.RepeatedCompositeFieldContainer[Global___RemoteConfig]: ... - @property - def components(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ComponentConfig]: + @_builtins.property + def components(self) -> _containers.RepeatedCompositeFieldContainer[Global___ComponentConfig]: ... - @property - def processes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ProcessConfig]: + @_builtins.property + def processes(self) -> _containers.RepeatedCompositeFieldContainer[Global___ProcessConfig]: ... - @property - def services(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ServiceConfig]: + @_builtins.property + def services(self) -> _containers.RepeatedCompositeFieldContainer[Global___ServiceConfig]: ... - @property - def network(self) -> global___NetworkConfig: + @_builtins.property + def network(self) -> Global___NetworkConfig: ... - @property - def auth(self) -> global___AuthConfig: + @_builtins.property + def auth(self) -> Global___AuthConfig: ... - @property - def modules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ModuleConfig]: + @_builtins.property + def modules(self) -> _containers.RepeatedCompositeFieldContainer[Global___ModuleConfig]: ... - @property - def packages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PackageConfig]: + @_builtins.property + def packages(self) -> _containers.RepeatedCompositeFieldContainer[Global___PackageConfig]: ... - @property - def overwrite_fragment_status(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AppValidationStatus]: + @_builtins.property + def overwrite_fragment_status(self) -> _containers.RepeatedCompositeFieldContainer[Global___AppValidationStatus]: ... - @property - def log(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LogPatternConfig]: + @_builtins.property + def log(self) -> _containers.RepeatedCompositeFieldContainer[Global___LogPatternConfig]: ... - @property - def maintenance(self) -> global___MaintenanceConfig: + @_builtins.property + def maintenance(self) -> Global___MaintenanceConfig: ... - @property - def jobs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___JobConfig]: + @_builtins.property + def jobs(self) -> _containers.RepeatedCompositeFieldContainer[Global___JobConfig]: ... - @property - def tracing(self) -> global___TracingConfig: + @_builtins.property + def tracing(self) -> Global___TracingConfig: ... - def __init__(self, *, cloud: global___CloudConfig | None=..., remotes: collections.abc.Iterable[global___RemoteConfig] | None=..., components: collections.abc.Iterable[global___ComponentConfig] | None=..., processes: collections.abc.Iterable[global___ProcessConfig] | None=..., services: collections.abc.Iterable[global___ServiceConfig] | None=..., network: global___NetworkConfig | None=..., auth: global___AuthConfig | None=..., debug: builtins.bool | None=..., modules: collections.abc.Iterable[global___ModuleConfig] | None=..., disable_partial_start: builtins.bool | None=..., packages: collections.abc.Iterable[global___PackageConfig] | None=..., overwrite_fragment_status: collections.abc.Iterable[global___AppValidationStatus] | None=..., enable_web_profile: builtins.bool=..., log: collections.abc.Iterable[global___LogPatternConfig] | None=..., revision: builtins.str=..., maintenance: global___MaintenanceConfig | None=..., disable_log_deduplication: builtins.bool=..., jobs: collections.abc.Iterable[global___JobConfig] | None=..., tracing: global___TracingConfig | None=...) -> None: + def __init__(self, *, cloud: Global___CloudConfig | None=..., remotes: _abc.Iterable[Global___RemoteConfig] | None=..., components: _abc.Iterable[Global___ComponentConfig] | None=..., processes: _abc.Iterable[Global___ProcessConfig] | None=..., services: _abc.Iterable[Global___ServiceConfig] | None=..., network: Global___NetworkConfig | None=..., auth: Global___AuthConfig | None=..., debug: _builtins.bool | None=..., modules: _abc.Iterable[Global___ModuleConfig] | None=..., disable_partial_start: _builtins.bool | None=..., packages: _abc.Iterable[Global___PackageConfig] | None=..., overwrite_fragment_status: _abc.Iterable[Global___AppValidationStatus] | None=..., enable_web_profile: _builtins.bool=..., log: _abc.Iterable[Global___LogPatternConfig] | None=..., revision: _builtins.str=..., maintenance: Global___MaintenanceConfig | None=..., disable_log_deduplication: _builtins.bool=..., jobs: _abc.Iterable[Global___JobConfig] | None=..., tracing: Global___TracingConfig | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_auth', b'_auth', '_debug', b'_debug', '_disable_partial_start', b'_disable_partial_start', '_maintenance', b'_maintenance', '_network', b'_network', '_tracing', b'_tracing', 'auth', b'auth', 'cloud', b'cloud', 'debug', b'debug', 'disable_partial_start', b'disable_partial_start', 'maintenance', b'maintenance', 'network', b'network', 'tracing', b'tracing'] - def HasField(self, field_name: typing.Literal['_auth', b'_auth', '_debug', b'_debug', '_disable_partial_start', b'_disable_partial_start', '_maintenance', b'_maintenance', '_network', b'_network', '_tracing', b'_tracing', 'auth', b'auth', 'cloud', b'cloud', 'debug', b'debug', 'disable_partial_start', b'disable_partial_start', 'maintenance', b'maintenance', 'network', b'network', 'tracing', b'tracing']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_auth', b'_auth', '_debug', b'_debug', '_disable_partial_start', b'_disable_partial_start', '_maintenance', b'_maintenance', '_network', b'_network', '_tracing', b'_tracing', 'auth', b'auth', 'cloud', b'cloud', 'components', b'components', 'debug', b'debug', 'disable_log_deduplication', b'disable_log_deduplication', 'disable_partial_start', b'disable_partial_start', 'enable_web_profile', b'enable_web_profile', 'jobs', b'jobs', 'log', b'log', 'maintenance', b'maintenance', 'modules', b'modules', 'network', b'network', 'overwrite_fragment_status', b'overwrite_fragment_status', 'packages', b'packages', 'processes', b'processes', 'remotes', b'remotes', 'revision', b'revision', 'services', b'services', 'tracing', b'tracing'] - def ClearField(self, field_name: typing.Literal['_auth', b'_auth', '_debug', b'_debug', '_disable_partial_start', b'_disable_partial_start', '_maintenance', b'_maintenance', '_network', b'_network', '_tracing', b'_tracing', 'auth', b'auth', 'cloud', b'cloud', 'components', b'components', 'debug', b'debug', 'disable_log_deduplication', b'disable_log_deduplication', 'disable_partial_start', b'disable_partial_start', 'enable_web_profile', b'enable_web_profile', 'jobs', b'jobs', 'log', b'log', 'maintenance', b'maintenance', 'modules', b'modules', 'network', b'network', 'overwrite_fragment_status', b'overwrite_fragment_status', 'packages', b'packages', 'processes', b'processes', 'remotes', b'remotes', 'revision', b'revision', 'services', b'services', 'tracing', b'tracing']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__auth: _TypeAlias = _typing.Literal['auth'] + _WhichOneofArgType__auth: _TypeAlias = _typing.Literal['_auth', b'_auth'] + _WhichOneofReturnType__debug: _TypeAlias = _typing.Literal['debug'] + _WhichOneofArgType__debug: _TypeAlias = _typing.Literal['_debug', b'_debug'] + _WhichOneofReturnType__disable_partial_start: _TypeAlias = _typing.Literal['disable_partial_start'] + _WhichOneofArgType__disable_partial_start: _TypeAlias = _typing.Literal['_disable_partial_start', b'_disable_partial_start'] + _WhichOneofReturnType__maintenance: _TypeAlias = _typing.Literal['maintenance'] + _WhichOneofArgType__maintenance: _TypeAlias = _typing.Literal['_maintenance', b'_maintenance'] + _WhichOneofReturnType__network: _TypeAlias = _typing.Literal['network'] + _WhichOneofArgType__network: _TypeAlias = _typing.Literal['_network', b'_network'] + _WhichOneofReturnType__tracing: _TypeAlias = _typing.Literal['tracing'] + _WhichOneofArgType__tracing: _TypeAlias = _typing.Literal['_tracing', b'_tracing'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_auth', b'_auth']) -> typing.Literal['auth'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__auth) -> _WhichOneofReturnType__auth | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_debug', b'_debug']) -> typing.Literal['debug'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__debug) -> _WhichOneofReturnType__debug | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_disable_partial_start', b'_disable_partial_start']) -> typing.Literal['disable_partial_start'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__disable_partial_start) -> _WhichOneofReturnType__disable_partial_start | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_maintenance', b'_maintenance']) -> typing.Literal['maintenance'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__maintenance) -> _WhichOneofReturnType__maintenance | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_network', b'_network']) -> typing.Literal['network'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__network) -> _WhichOneofReturnType__network | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_tracing', b'_tracing']) -> typing.Literal['tracing'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__tracing) -> _WhichOneofReturnType__tracing | None: ... -global___RobotConfig = RobotConfig +Global___RobotConfig: _TypeAlias = RobotConfig -@typing.final -class LogPatternConfig(google.protobuf.message.Message): +@_typing.final +class LogPatternConfig(_message.Message): """LogPatternConfig allows you to specify a 2-tuple consisting of a logger name and its corresponding log level. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PATTERN_FIELD_NUMBER: builtins.int - LEVEL_FIELD_NUMBER: builtins.int - pattern: builtins.str - level: builtins.str - - def __init__(self, *, pattern: builtins.str=..., level: builtins.str=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['level', b'level', 'pattern', b'pattern']) -> None: - ... -global___LogPatternConfig = LogPatternConfig - -@typing.final -class JobConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - SCHEDULE_FIELD_NUMBER: builtins.int - RESOURCE_FIELD_NUMBER: builtins.int - METHOD_FIELD_NUMBER: builtins.int - COMMAND_FIELD_NUMBER: builtins.int - LOG_CONFIGURATION_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + PATTERN_FIELD_NUMBER: _builtins.int + LEVEL_FIELD_NUMBER: _builtins.int + pattern: _builtins.str + level: _builtins.str + + def __init__(self, *, pattern: _builtins.str=..., level: _builtins.str=...) -> None: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['level', b'level', 'pattern', b'pattern'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___LogPatternConfig: _TypeAlias = LogPatternConfig + +@_typing.final +class JobConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + SCHEDULE_FIELD_NUMBER: _builtins.int + RESOURCE_FIELD_NUMBER: _builtins.int + METHOD_FIELD_NUMBER: _builtins.int + COMMAND_FIELD_NUMBER: _builtins.int + LOG_CONFIGURATION_FIELD_NUMBER: _builtins.int + name: _builtins.str 'unique name of the job.' - schedule: builtins.str + schedule: _builtins.str 'a unix-cron string or a Golang-parsable duration string,\n specifies the interval at which the job is run.\n ' - resource: builtins.str + resource: _builtins.str 'the resource associated with this job.' - method: builtins.str + method: _builtins.str "the gRPC request of this job's resource." - @property - def command(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def command(self) -> _struct_pb2.Struct: """in case method is "DoCommand", specifies the command argument of the gRPC request. """ - @property - def log_configuration(self) -> global___LogConfiguration: + @_builtins.property + def log_configuration(self) -> Global___LogConfiguration: """configuration for this job's logger.""" - def __init__(self, *, name: builtins.str=..., schedule: builtins.str=..., resource: builtins.str=..., method: builtins.str=..., command: google.protobuf.struct_pb2.Struct | None=..., log_configuration: global___LogConfiguration | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., schedule: _builtins.str=..., resource: _builtins.str=..., method: _builtins.str=..., command: _struct_pb2.Struct | None=..., log_configuration: Global___LogConfiguration | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['command', b'command', 'log_configuration', b'log_configuration'] - def HasField(self, field_name: typing.Literal['command', b'command', 'log_configuration', b'log_configuration']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['command', b'command', 'log_configuration', b'log_configuration', 'method', b'method', 'name', b'name', 'resource', b'resource', 'schedule', b'schedule'] - def ClearField(self, field_name: typing.Literal['command', b'command', 'log_configuration', b'log_configuration', 'method', b'method', 'name', b'name', 'resource', b'resource', 'schedule', b'schedule']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___JobConfig = JobConfig +Global___JobConfig: _TypeAlias = JobConfig -@typing.final -class TracingConfig(google.protobuf.message.Message): +@_typing.final +class TracingConfig(_message.Message): """TracingConfig configures whether viam-server will record traces and if so where it will export them. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ENABLED_FIELD_NUMBER: builtins.int - DISK_FIELD_NUMBER: builtins.int - CONSOLE_FIELD_NUMBER: builtins.int - OTLP_ENDPOINT_FIELD_NUMBER: builtins.int - enabled: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + ENABLED_FIELD_NUMBER: _builtins.int + DISK_FIELD_NUMBER: _builtins.int + CONSOLE_FIELD_NUMBER: _builtins.int + OTLP_ENDPOINT_FIELD_NUMBER: _builtins.int + enabled: _builtins.bool 'Globally enable or disable tracing support.' - disk: builtins.bool + disk: _builtins.bool 'Save trace spans to a file on disk.' - console: builtins.bool + console: _builtins.bool 'Print trace spans to the console.' - otlp_endpoint: builtins.str + otlp_endpoint: _builtins.str 'Send trace spans to an OTLP gRPC endpoint.' - def __init__(self, *, enabled: builtins.bool=..., disk: builtins.bool=..., console: builtins.bool=..., otlp_endpoint: builtins.str=...) -> None: + def __init__(self, *, enabled: _builtins.bool=..., disk: _builtins.bool=..., console: _builtins.bool=..., otlp_endpoint: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['console', b'console', 'disk', b'disk', 'enabled', b'enabled', 'otlp_endpoint', b'otlp_endpoint'] - def ClearField(self, field_name: typing.Literal['console', b'console', 'disk', b'disk', 'enabled', b'enabled', 'otlp_endpoint', b'otlp_endpoint']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TracingConfig = TracingConfig +Global___TracingConfig: _TypeAlias = TracingConfig -@typing.final -class LocationSecret(google.protobuf.message.Message): +@_typing.final +class LocationSecret(_message.Message): """Valid location secret that can be used for authentication to the robot.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - SECRET_FIELD_NUMBER: builtins.int - id: builtins.str - secret: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + SECRET_FIELD_NUMBER: _builtins.int + id: _builtins.str + secret: _builtins.str 'secret payload' - def __init__(self, *, id: builtins.str=..., secret: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., secret: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'secret', b'secret'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'secret', b'secret']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LocationSecret = LocationSecret +Global___LocationSecret: _TypeAlias = LocationSecret -@typing.final -class AppValidationStatus(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ERROR_FIELD_NUMBER: builtins.int - error: builtins.str +@_typing.final +class AppValidationStatus(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ERROR_FIELD_NUMBER: _builtins.int + error: _builtins.str - def __init__(self, *, error: builtins.str=...) -> None: + def __init__(self, *, error: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['error', b'error'] - def ClearField(self, field_name: typing.Literal['error', b'error']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AppValidationStatus = AppValidationStatus +Global___AppValidationStatus: _TypeAlias = AppValidationStatus -@typing.final -class CloudConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - FQDN_FIELD_NUMBER: builtins.int - LOCAL_FQDN_FIELD_NUMBER: builtins.int - MANAGED_BY_FIELD_NUMBER: builtins.int - SIGNALING_ADDRESS_FIELD_NUMBER: builtins.int - SIGNALING_INSECURE_FIELD_NUMBER: builtins.int - LOCATION_SECRET_FIELD_NUMBER: builtins.int - SECRET_FIELD_NUMBER: builtins.int - LOCATION_SECRETS_FIELD_NUMBER: builtins.int - PRIMARY_ORG_ID_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - MACHINE_ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class CloudConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + FQDN_FIELD_NUMBER: _builtins.int + LOCAL_FQDN_FIELD_NUMBER: _builtins.int + MANAGED_BY_FIELD_NUMBER: _builtins.int + SIGNALING_ADDRESS_FIELD_NUMBER: _builtins.int + SIGNALING_INSECURE_FIELD_NUMBER: _builtins.int + LOCATION_SECRET_FIELD_NUMBER: _builtins.int + SECRET_FIELD_NUMBER: _builtins.int + LOCATION_SECRETS_FIELD_NUMBER: _builtins.int + PRIMARY_ORG_ID_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + MACHINE_ID_FIELD_NUMBER: _builtins.int + id: _builtins.str 'Robot part id.' - fqdn: builtins.str - local_fqdn: builtins.str - managed_by: builtins.str - signaling_address: builtins.str - signaling_insecure: builtins.bool - location_secret: builtins.str - 'Deprecated use location_secrets' - secret: builtins.str + fqdn: _builtins.str + local_fqdn: _builtins.str + managed_by: _builtins.str + signaling_address: _builtins.str + signaling_insecure: _builtins.bool + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def location_secret(self) -> _builtins.str: + """Deprecated use location_secrets""" + + @location_secret.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def location_secret(self, value: _builtins.str) -> None: + """Deprecated use location_secrets""" + secret: _builtins.str 'Robot part secret' - primary_org_id: builtins.str - location_id: builtins.str - machine_id: builtins.str + primary_org_id: _builtins.str + location_id: _builtins.str + machine_id: _builtins.str - @property - def location_secrets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LocationSecret]: + @_builtins.property + def location_secrets(self) -> _containers.RepeatedCompositeFieldContainer[Global___LocationSecret]: """All valid location secrets.""" - def __init__(self, *, id: builtins.str=..., fqdn: builtins.str=..., local_fqdn: builtins.str=..., managed_by: builtins.str=..., signaling_address: builtins.str=..., signaling_insecure: builtins.bool=..., location_secret: builtins.str=..., secret: builtins.str=..., location_secrets: collections.abc.Iterable[global___LocationSecret] | None=..., primary_org_id: builtins.str=..., location_id: builtins.str=..., machine_id: builtins.str=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['fqdn', b'fqdn', 'id', b'id', 'local_fqdn', b'local_fqdn', 'location_id', b'location_id', 'location_secret', b'location_secret', 'location_secrets', b'location_secrets', 'machine_id', b'machine_id', 'managed_by', b'managed_by', 'primary_org_id', b'primary_org_id', 'secret', b'secret', 'signaling_address', b'signaling_address', 'signaling_insecure', b'signaling_insecure']) -> None: - ... -global___CloudConfig = CloudConfig - -@typing.final -class ComponentConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - NAMESPACE_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - MODEL_FIELD_NUMBER: builtins.int - FRAME_FIELD_NUMBER: builtins.int - DEPENDS_ON_FIELD_NUMBER: builtins.int - SERVICE_CONFIGS_FIELD_NUMBER: builtins.int - ATTRIBUTES_FIELD_NUMBER: builtins.int - API_FIELD_NUMBER: builtins.int - LOG_CONFIGURATION_FIELD_NUMBER: builtins.int - name: builtins.str - namespace: builtins.str + def __init__(self, *, id: _builtins.str=..., fqdn: _builtins.str=..., local_fqdn: _builtins.str=..., managed_by: _builtins.str=..., signaling_address: _builtins.str=..., signaling_insecure: _builtins.bool=..., location_secret: _builtins.str=..., secret: _builtins.str=..., location_secrets: _abc.Iterable[Global___LocationSecret] | None=..., primary_org_id: _builtins.str=..., location_id: _builtins.str=..., machine_id: _builtins.str=...) -> None: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fqdn', b'fqdn', 'id', b'id', 'local_fqdn', b'local_fqdn', 'location_id', b'location_id', 'location_secret', b'location_secret', 'location_secrets', b'location_secrets', 'machine_id', b'machine_id', 'managed_by', b'managed_by', 'primary_org_id', b'primary_org_id', 'secret', b'secret', 'signaling_address', b'signaling_address', 'signaling_insecure', b'signaling_insecure'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___CloudConfig: _TypeAlias = CloudConfig + +@_typing.final +class ComponentConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + NAMESPACE_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + MODEL_FIELD_NUMBER: _builtins.int + FRAME_FIELD_NUMBER: _builtins.int + DEPENDS_ON_FIELD_NUMBER: _builtins.int + SERVICE_CONFIGS_FIELD_NUMBER: _builtins.int + ATTRIBUTES_FIELD_NUMBER: _builtins.int + API_FIELD_NUMBER: _builtins.int + LOG_CONFIGURATION_FIELD_NUMBER: _builtins.int + name: _builtins.str + namespace: _builtins.str 'deprecated; use api' - type: builtins.str + type: _builtins.str 'deprecated; use api' - model: builtins.str - api: builtins.str + model: _builtins.str + api: _builtins.str - @property - def frame(self) -> global___Frame: + @_builtins.property + def frame(self) -> Global___Frame: ... - @property - def depends_on(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def depends_on(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def service_configs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceLevelServiceConfig]: + @_builtins.property + def service_configs(self) -> _containers.RepeatedCompositeFieldContainer[Global___ResourceLevelServiceConfig]: ... - @property - def attributes(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def attributes(self) -> _struct_pb2.Struct: ... - @property - def log_configuration(self) -> global___LogConfiguration: + @_builtins.property + def log_configuration(self) -> Global___LogConfiguration: ... - def __init__(self, *, name: builtins.str=..., namespace: builtins.str=..., type: builtins.str=..., model: builtins.str=..., frame: global___Frame | None=..., depends_on: collections.abc.Iterable[builtins.str] | None=..., service_configs: collections.abc.Iterable[global___ResourceLevelServiceConfig] | None=..., attributes: google.protobuf.struct_pb2.Struct | None=..., api: builtins.str=..., log_configuration: global___LogConfiguration | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., namespace: _builtins.str=..., type: _builtins.str=..., model: _builtins.str=..., frame: Global___Frame | None=..., depends_on: _abc.Iterable[_builtins.str] | None=..., service_configs: _abc.Iterable[Global___ResourceLevelServiceConfig] | None=..., attributes: _struct_pb2.Struct | None=..., api: _builtins.str=..., log_configuration: Global___LogConfiguration | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['attributes', b'attributes', 'frame', b'frame', 'log_configuration', b'log_configuration'] - def HasField(self, field_name: typing.Literal['attributes', b'attributes', 'frame', b'frame', 'log_configuration', b'log_configuration']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['api', b'api', 'attributes', b'attributes', 'depends_on', b'depends_on', 'frame', b'frame', 'log_configuration', b'log_configuration', 'model', b'model', 'name', b'name', 'namespace', b'namespace', 'service_configs', b'service_configs', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['api', b'api', 'attributes', b'attributes', 'depends_on', b'depends_on', 'frame', b'frame', 'log_configuration', b'log_configuration', 'model', b'model', 'name', b'name', 'namespace', b'namespace', 'service_configs', b'service_configs', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ComponentConfig = ComponentConfig +Global___ComponentConfig: _TypeAlias = ComponentConfig -@typing.final -class ResourceLevelServiceConfig(google.protobuf.message.Message): +@_typing.final +class ResourceLevelServiceConfig(_message.Message): """A ResourceLevelServiceConfig describes component or remote configuration for a service.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - ATTRIBUTES_FIELD_NUMBER: builtins.int - type: builtins.str + DESCRIPTOR: _descriptor.Descriptor + TYPE_FIELD_NUMBER: _builtins.int + ATTRIBUTES_FIELD_NUMBER: _builtins.int + type: _builtins.str - @property - def attributes(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def attributes(self) -> _struct_pb2.Struct: """TODO(adam): Should this be move to a structured type as defined in the typescript frontend.""" - def __init__(self, *, type: builtins.str=..., attributes: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, type: _builtins.str=..., attributes: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['attributes', b'attributes'] - def HasField(self, field_name: typing.Literal['attributes', b'attributes']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['attributes', b'attributes', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['attributes', b'attributes', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResourceLevelServiceConfig = ResourceLevelServiceConfig +Global___ResourceLevelServiceConfig: _TypeAlias = ResourceLevelServiceConfig -@typing.final -class ProcessConfig(google.protobuf.message.Message): +@_typing.final +class ProcessConfig(_message.Message): """A ProcessConfig describes how to manage a system process.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class EnvEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + @_typing.final + class EnvEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str - def __init__(self, *, key: builtins.str=..., value: builtins.str=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - ID_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - ARGS_FIELD_NUMBER: builtins.int - CWD_FIELD_NUMBER: builtins.int - ONE_SHOT_FIELD_NUMBER: builtins.int - LOG_FIELD_NUMBER: builtins.int - STOP_SIGNAL_FIELD_NUMBER: builtins.int - STOP_TIMEOUT_FIELD_NUMBER: builtins.int - ENV_FIELD_NUMBER: builtins.int - USERNAME_FIELD_NUMBER: builtins.int - id: builtins.str - name: builtins.str - cwd: builtins.str - one_shot: builtins.bool - log: builtins.bool - stop_signal: builtins.int - username: builtins.str - - @property - def args(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... - - @property - def stop_timeout(self) -> google.protobuf.duration_pb2.Duration: - ... - - @property - def env(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + ID_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + ARGS_FIELD_NUMBER: _builtins.int + CWD_FIELD_NUMBER: _builtins.int + ONE_SHOT_FIELD_NUMBER: _builtins.int + LOG_FIELD_NUMBER: _builtins.int + STOP_SIGNAL_FIELD_NUMBER: _builtins.int + STOP_TIMEOUT_FIELD_NUMBER: _builtins.int + ENV_FIELD_NUMBER: _builtins.int + USERNAME_FIELD_NUMBER: _builtins.int + id: _builtins.str + name: _builtins.str + cwd: _builtins.str + one_shot: _builtins.bool + log: _builtins.bool + stop_signal: _builtins.int + username: _builtins.str + + @_builtins.property + def args(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: + ... + + @_builtins.property + def stop_timeout(self) -> _duration_pb2.Duration: + ... + + @_builtins.property + def env(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """additional environment variables passed to the process""" - def __init__(self, *, id: builtins.str=..., name: builtins.str=..., args: collections.abc.Iterable[builtins.str] | None=..., cwd: builtins.str=..., one_shot: builtins.bool=..., log: builtins.bool=..., stop_signal: builtins.int=..., stop_timeout: google.protobuf.duration_pb2.Duration | None=..., env: collections.abc.Mapping[builtins.str, builtins.str] | None=..., username: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., name: _builtins.str=..., args: _abc.Iterable[_builtins.str] | None=..., cwd: _builtins.str=..., one_shot: _builtins.bool=..., log: _builtins.bool=..., stop_signal: _builtins.int=..., stop_timeout: _duration_pb2.Duration | None=..., env: _abc.Mapping[_builtins.str, _builtins.str] | None=..., username: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['stop_timeout', b'stop_timeout'] - def HasField(self, field_name: typing.Literal['stop_timeout', b'stop_timeout']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['args', b'args', 'cwd', b'cwd', 'env', b'env', 'id', b'id', 'log', b'log', 'name', b'name', 'one_shot', b'one_shot', 'stop_signal', b'stop_signal', 'stop_timeout', b'stop_timeout', 'username', b'username'] - def ClearField(self, field_name: typing.Literal['args', b'args', 'cwd', b'cwd', 'env', b'env', 'id', b'id', 'log', b'log', 'name', b'name', 'one_shot', b'one_shot', 'stop_signal', b'stop_signal', 'stop_timeout', b'stop_timeout', 'username', b'username']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ProcessConfig = ProcessConfig +Global___ProcessConfig: _TypeAlias = ProcessConfig -@typing.final -class ServiceConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - NAMESPACE_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - ATTRIBUTES_FIELD_NUMBER: builtins.int - DEPENDS_ON_FIELD_NUMBER: builtins.int - MODEL_FIELD_NUMBER: builtins.int - API_FIELD_NUMBER: builtins.int - SERVICE_CONFIGS_FIELD_NUMBER: builtins.int - LOG_CONFIGURATION_FIELD_NUMBER: builtins.int - name: builtins.str - namespace: builtins.str +@_typing.final +class ServiceConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + NAMESPACE_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + ATTRIBUTES_FIELD_NUMBER: _builtins.int + DEPENDS_ON_FIELD_NUMBER: _builtins.int + MODEL_FIELD_NUMBER: _builtins.int + API_FIELD_NUMBER: _builtins.int + SERVICE_CONFIGS_FIELD_NUMBER: _builtins.int + LOG_CONFIGURATION_FIELD_NUMBER: _builtins.int + name: _builtins.str + namespace: _builtins.str 'deprecated; use api' - type: builtins.str + type: _builtins.str 'deprecated; use api' - model: builtins.str - api: builtins.str + model: _builtins.str + api: _builtins.str - @property - def attributes(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def attributes(self) -> _struct_pb2.Struct: ... - @property - def depends_on(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def depends_on(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def service_configs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceLevelServiceConfig]: + @_builtins.property + def service_configs(self) -> _containers.RepeatedCompositeFieldContainer[Global___ResourceLevelServiceConfig]: ... - @property - def log_configuration(self) -> global___LogConfiguration: + @_builtins.property + def log_configuration(self) -> Global___LogConfiguration: ... - def __init__(self, *, name: builtins.str=..., namespace: builtins.str=..., type: builtins.str=..., attributes: google.protobuf.struct_pb2.Struct | None=..., depends_on: collections.abc.Iterable[builtins.str] | None=..., model: builtins.str=..., api: builtins.str=..., service_configs: collections.abc.Iterable[global___ResourceLevelServiceConfig] | None=..., log_configuration: global___LogConfiguration | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., namespace: _builtins.str=..., type: _builtins.str=..., attributes: _struct_pb2.Struct | None=..., depends_on: _abc.Iterable[_builtins.str] | None=..., model: _builtins.str=..., api: _builtins.str=..., service_configs: _abc.Iterable[Global___ResourceLevelServiceConfig] | None=..., log_configuration: Global___LogConfiguration | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['attributes', b'attributes', 'log_configuration', b'log_configuration'] - def HasField(self, field_name: typing.Literal['attributes', b'attributes', 'log_configuration', b'log_configuration']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['api', b'api', 'attributes', b'attributes', 'depends_on', b'depends_on', 'log_configuration', b'log_configuration', 'model', b'model', 'name', b'name', 'namespace', b'namespace', 'service_configs', b'service_configs', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['api', b'api', 'attributes', b'attributes', 'depends_on', b'depends_on', 'log_configuration', b'log_configuration', 'model', b'model', 'name', b'name', 'namespace', b'namespace', 'service_configs', b'service_configs', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ServiceConfig = ServiceConfig +Global___ServiceConfig: _TypeAlias = ServiceConfig -@typing.final -class NetworkConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FQDN_FIELD_NUMBER: builtins.int - BIND_ADDRESS_FIELD_NUMBER: builtins.int - TLS_CERT_FILE_FIELD_NUMBER: builtins.int - TLS_KEY_FILE_FIELD_NUMBER: builtins.int - SESSIONS_FIELD_NUMBER: builtins.int - TRAFFIC_TUNNEL_ENDPOINTS_FIELD_NUMBER: builtins.int - NO_TLS_FIELD_NUMBER: builtins.int - fqdn: builtins.str - bind_address: builtins.str - tls_cert_file: builtins.str - tls_key_file: builtins.str - no_tls: builtins.bool +@_typing.final +class NetworkConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FQDN_FIELD_NUMBER: _builtins.int + BIND_ADDRESS_FIELD_NUMBER: _builtins.int + TLS_CERT_FILE_FIELD_NUMBER: _builtins.int + TLS_KEY_FILE_FIELD_NUMBER: _builtins.int + SESSIONS_FIELD_NUMBER: _builtins.int + TRAFFIC_TUNNEL_ENDPOINTS_FIELD_NUMBER: _builtins.int + NO_TLS_FIELD_NUMBER: _builtins.int + fqdn: _builtins.str + bind_address: _builtins.str + tls_cert_file: _builtins.str + tls_key_file: _builtins.str + no_tls: _builtins.bool - @property - def sessions(self) -> global___SessionsConfig: + @_builtins.property + def sessions(self) -> Global___SessionsConfig: ... - @property - def traffic_tunnel_endpoints(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TrafficTunnelEndpoint]: + @_builtins.property + def traffic_tunnel_endpoints(self) -> _containers.RepeatedCompositeFieldContainer[Global___TrafficTunnelEndpoint]: ... - def __init__(self, *, fqdn: builtins.str=..., bind_address: builtins.str=..., tls_cert_file: builtins.str=..., tls_key_file: builtins.str=..., sessions: global___SessionsConfig | None=..., traffic_tunnel_endpoints: collections.abc.Iterable[global___TrafficTunnelEndpoint] | None=..., no_tls: builtins.bool=...) -> None: + def __init__(self, *, fqdn: _builtins.str=..., bind_address: _builtins.str=..., tls_cert_file: _builtins.str=..., tls_key_file: _builtins.str=..., sessions: Global___SessionsConfig | None=..., traffic_tunnel_endpoints: _abc.Iterable[Global___TrafficTunnelEndpoint] | None=..., no_tls: _builtins.bool=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['sessions', b'sessions'] - def HasField(self, field_name: typing.Literal['sessions', b'sessions']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['bind_address', b'bind_address', 'fqdn', b'fqdn', 'no_tls', b'no_tls', 'sessions', b'sessions', 'tls_cert_file', b'tls_cert_file', 'tls_key_file', b'tls_key_file', 'traffic_tunnel_endpoints', b'traffic_tunnel_endpoints'] - def ClearField(self, field_name: typing.Literal['bind_address', b'bind_address', 'fqdn', b'fqdn', 'no_tls', b'no_tls', 'sessions', b'sessions', 'tls_cert_file', b'tls_cert_file', 'tls_key_file', b'tls_key_file', 'traffic_tunnel_endpoints', b'traffic_tunnel_endpoints']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___NetworkConfig = NetworkConfig +Global___NetworkConfig: _TypeAlias = NetworkConfig -@typing.final -class SessionsConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HEARTBEAT_WINDOW_FIELD_NUMBER: builtins.int +@_typing.final +class SessionsConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + HEARTBEAT_WINDOW_FIELD_NUMBER: _builtins.int - @property - def heartbeat_window(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def heartbeat_window(self) -> _duration_pb2.Duration: ... - def __init__(self, *, heartbeat_window: google.protobuf.duration_pb2.Duration | None=...) -> None: + def __init__(self, *, heartbeat_window: _duration_pb2.Duration | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['heartbeat_window', b'heartbeat_window'] - def HasField(self, field_name: typing.Literal['heartbeat_window', b'heartbeat_window']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['heartbeat_window', b'heartbeat_window'] - def ClearField(self, field_name: typing.Literal['heartbeat_window', b'heartbeat_window']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SessionsConfig = SessionsConfig +Global___SessionsConfig: _TypeAlias = SessionsConfig -@typing.final -class TrafficTunnelEndpoint(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PORT_FIELD_NUMBER: builtins.int - CONNECTION_TIMEOUT_FIELD_NUMBER: builtins.int - port: builtins.int +@_typing.final +class TrafficTunnelEndpoint(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PORT_FIELD_NUMBER: _builtins.int + CONNECTION_TIMEOUT_FIELD_NUMBER: _builtins.int + port: _builtins.int - @property - def connection_timeout(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def connection_timeout(self) -> _duration_pb2.Duration: ... - def __init__(self, *, port: builtins.int=..., connection_timeout: google.protobuf.duration_pb2.Duration | None=...) -> None: + def __init__(self, *, port: _builtins.int=..., connection_timeout: _duration_pb2.Duration | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['connection_timeout', b'connection_timeout'] - def HasField(self, field_name: typing.Literal['connection_timeout', b'connection_timeout']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['connection_timeout', b'connection_timeout', 'port', b'port'] - def ClearField(self, field_name: typing.Literal['connection_timeout', b'connection_timeout', 'port', b'port']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TrafficTunnelEndpoint = TrafficTunnelEndpoint +Global___TrafficTunnelEndpoint: _TypeAlias = TrafficTunnelEndpoint -@typing.final -class AuthConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HANDLERS_FIELD_NUMBER: builtins.int - TLS_AUTH_ENTITIES_FIELD_NUMBER: builtins.int - EXTERNAL_AUTH_CONFIG_FIELD_NUMBER: builtins.int +@_typing.final +class AuthConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + HANDLERS_FIELD_NUMBER: _builtins.int + TLS_AUTH_ENTITIES_FIELD_NUMBER: _builtins.int + EXTERNAL_AUTH_CONFIG_FIELD_NUMBER: _builtins.int - @property - def handlers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AuthHandlerConfig]: + @_builtins.property + def handlers(self) -> _containers.RepeatedCompositeFieldContainer[Global___AuthHandlerConfig]: ... - @property - def tls_auth_entities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def tls_auth_entities(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def external_auth_config(self) -> global___ExternalAuthConfig: + @_builtins.property + def external_auth_config(self) -> Global___ExternalAuthConfig: ... - def __init__(self, *, handlers: collections.abc.Iterable[global___AuthHandlerConfig] | None=..., tls_auth_entities: collections.abc.Iterable[builtins.str] | None=..., external_auth_config: global___ExternalAuthConfig | None=...) -> None: + def __init__(self, *, handlers: _abc.Iterable[Global___AuthHandlerConfig] | None=..., tls_auth_entities: _abc.Iterable[_builtins.str] | None=..., external_auth_config: Global___ExternalAuthConfig | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_external_auth_config', b'_external_auth_config', 'external_auth_config', b'external_auth_config'] - def HasField(self, field_name: typing.Literal['_external_auth_config', b'_external_auth_config', 'external_auth_config', b'external_auth_config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_external_auth_config', b'_external_auth_config', 'external_auth_config', b'external_auth_config', 'handlers', b'handlers', 'tls_auth_entities', b'tls_auth_entities'] - def ClearField(self, field_name: typing.Literal['_external_auth_config', b'_external_auth_config', 'external_auth_config', b'external_auth_config', 'handlers', b'handlers', 'tls_auth_entities', b'tls_auth_entities']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__external_auth_config: _TypeAlias = _typing.Literal['external_auth_config'] + _WhichOneofArgType__external_auth_config: _TypeAlias = _typing.Literal['_external_auth_config', b'_external_auth_config'] - def WhichOneof(self, oneof_group: typing.Literal['_external_auth_config', b'_external_auth_config']) -> typing.Literal['external_auth_config'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__external_auth_config) -> _WhichOneofReturnType__external_auth_config | None: ... -global___AuthConfig = AuthConfig +Global___AuthConfig: _TypeAlias = AuthConfig -@typing.final -class JWKSFile(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - JSON_FIELD_NUMBER: builtins.int +@_typing.final +class JWKSFile(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + JSON_FIELD_NUMBER: _builtins.int - @property - def json(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def json(self) -> _struct_pb2.Struct: """JSON Web Keys (JWKS) file as arbitary json. See https://www.rfc-editor.org/rfc/rfc7517 """ - def __init__(self, *, json: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, json: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['json', b'json'] - def HasField(self, field_name: typing.Literal['json', b'json']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['json', b'json'] - def ClearField(self, field_name: typing.Literal['json', b'json']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___JWKSFile = JWKSFile +Global___JWKSFile: _TypeAlias = JWKSFile -@typing.final -class ExternalAuthConfig(google.protobuf.message.Message): +@_typing.final +class ExternalAuthConfig(_message.Message): """ExternalAuthConfig describes how a viam managed robot can accept credentials signed by the cloud app. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - JWKS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + JWKS_FIELD_NUMBER: _builtins.int - @property - def jwks(self) -> global___JWKSFile: + @_builtins.property + def jwks(self) -> Global___JWKSFile: ... - def __init__(self, *, jwks: global___JWKSFile | None=...) -> None: + def __init__(self, *, jwks: Global___JWKSFile | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['jwks', b'jwks'] - def HasField(self, field_name: typing.Literal['jwks', b'jwks']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['jwks', b'jwks'] - def ClearField(self, field_name: typing.Literal['jwks', b'jwks']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ExternalAuthConfig = ExternalAuthConfig +Global___ExternalAuthConfig: _TypeAlias = ExternalAuthConfig -@typing.final -class AuthHandlerConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - CONFIG_FIELD_NUMBER: builtins.int - type: global___CredentialsType.ValueType +@_typing.final +class AuthHandlerConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TYPE_FIELD_NUMBER: _builtins.int + CONFIG_FIELD_NUMBER: _builtins.int + type: Global___CredentialsType.ValueType - @property - def config(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def config(self) -> _struct_pb2.Struct: ... - def __init__(self, *, type: global___CredentialsType.ValueType=..., config: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, type: Global___CredentialsType.ValueType=..., config: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['config', b'config'] - def HasField(self, field_name: typing.Literal['config', b'config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['config', b'config', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['config', b'config', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AuthHandlerConfig = AuthHandlerConfig +Global___AuthHandlerConfig: _TypeAlias = AuthHandlerConfig -@typing.final -class Frame(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARENT_FIELD_NUMBER: builtins.int - TRANSLATION_FIELD_NUMBER: builtins.int - ORIENTATION_FIELD_NUMBER: builtins.int - GEOMETRY_FIELD_NUMBER: builtins.int - parent: builtins.str +@_typing.final +class Frame(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PARENT_FIELD_NUMBER: _builtins.int + TRANSLATION_FIELD_NUMBER: _builtins.int + ORIENTATION_FIELD_NUMBER: _builtins.int + GEOMETRY_FIELD_NUMBER: _builtins.int + parent: _builtins.str - @property - def translation(self) -> global___Translation: + @_builtins.property + def translation(self) -> Global___Translation: ... - @property - def orientation(self) -> global___Orientation: + @_builtins.property + def orientation(self) -> Global___Orientation: ... - @property - def geometry(self) -> common.v1.common_pb2.Geometry: + @_builtins.property + def geometry(self) -> _common_pb2.Geometry: ... - def __init__(self, *, parent: builtins.str=..., translation: global___Translation | None=..., orientation: global___Orientation | None=..., geometry: common.v1.common_pb2.Geometry | None=...) -> None: + def __init__(self, *, parent: _builtins.str=..., translation: Global___Translation | None=..., orientation: Global___Orientation | None=..., geometry: _common_pb2.Geometry | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['geometry', b'geometry', 'orientation', b'orientation', 'translation', b'translation'] - def HasField(self, field_name: typing.Literal['geometry', b'geometry', 'orientation', b'orientation', 'translation', b'translation']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['geometry', b'geometry', 'orientation', b'orientation', 'parent', b'parent', 'translation', b'translation'] - def ClearField(self, field_name: typing.Literal['geometry', b'geometry', 'orientation', b'orientation', 'parent', b'parent', 'translation', b'translation']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Frame = Frame +Global___Frame: _TypeAlias = Frame -@typing.final -class LogConfiguration(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LEVEL_FIELD_NUMBER: builtins.int - level: builtins.str +@_typing.final +class LogConfiguration(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LEVEL_FIELD_NUMBER: _builtins.int + level: _builtins.str - def __init__(self, *, level: builtins.str=...) -> None: + def __init__(self, *, level: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['level', b'level'] - def ClearField(self, field_name: typing.Literal['level', b'level']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LogConfiguration = LogConfiguration +Global___LogConfiguration: _TypeAlias = LogConfiguration -@typing.final -class Translation(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - X_FIELD_NUMBER: builtins.int - Y_FIELD_NUMBER: builtins.int - Z_FIELD_NUMBER: builtins.int - x: builtins.float - y: builtins.float - z: builtins.float +@_typing.final +class Translation(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + X_FIELD_NUMBER: _builtins.int + Y_FIELD_NUMBER: _builtins.int + Z_FIELD_NUMBER: _builtins.int + x: _builtins.float + y: _builtins.float + z: _builtins.float - def __init__(self, *, x: builtins.float=..., y: builtins.float=..., z: builtins.float=...) -> None: + def __init__(self, *, x: _builtins.float=..., y: _builtins.float=..., z: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['x', b'x', 'y', b'y', 'z', b'z'] - def ClearField(self, field_name: typing.Literal['x', b'x', 'y', b'y', 'z', b'z']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Translation = Translation +Global___Translation: _TypeAlias = Translation -@typing.final -class Orientation(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Orientation(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class NoOrientation(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor + @_typing.final + class NoOrientation(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... - @typing.final - class OrientationVectorRadians(google.protobuf.message.Message): + @_typing.final + class OrientationVectorRadians(_message.Message): """OrientationVector containing ox, oy, oz, theta represents an orientation vector Structured similarly to an angle axis, an orientation vector works differently. Rather than representing an orientation with an arbitrary axis and a rotation around it from an origin, an orientation vector represents orientation @@ -746,64 +808,67 @@ class Orientation(google.protobuf.message.Message): point, and the plane defined by the origin, the rx,ry,rz point, and the new local Z axis. So if theta is kept at zero as the north/south pole is circled, the Roll will correct itself to remain in-line. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - THETA_FIELD_NUMBER: builtins.int - X_FIELD_NUMBER: builtins.int - Y_FIELD_NUMBER: builtins.int - Z_FIELD_NUMBER: builtins.int - theta: builtins.float - x: builtins.float - y: builtins.float - z: builtins.float - - def __init__(self, *, theta: builtins.float=..., x: builtins.float=..., y: builtins.float=..., z: builtins.float=...) -> None: + DESCRIPTOR: _descriptor.Descriptor + THETA_FIELD_NUMBER: _builtins.int + X_FIELD_NUMBER: _builtins.int + Y_FIELD_NUMBER: _builtins.int + Z_FIELD_NUMBER: _builtins.int + theta: _builtins.float + x: _builtins.float + y: _builtins.float + z: _builtins.float + + def __init__(self, *, theta: _builtins.float=..., x: _builtins.float=..., y: _builtins.float=..., z: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['theta', b'theta', 'x', b'x', 'y', b'y', 'z', b'z'] - def ClearField(self, field_name: typing.Literal['theta', b'theta', 'x', b'x', 'y', b'y', 'z', b'z']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @typing.final - class OrientationVectorDegrees(google.protobuf.message.Message): + @_typing.final + class OrientationVectorDegrees(_message.Message): """OrientationVectorDegrees is the orientation vector between two objects, but expressed in degrees rather than radians. Because protobuf Pose is in degrees, this is necessary. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - THETA_FIELD_NUMBER: builtins.int - X_FIELD_NUMBER: builtins.int - Y_FIELD_NUMBER: builtins.int - Z_FIELD_NUMBER: builtins.int - theta: builtins.float - x: builtins.float - y: builtins.float - z: builtins.float - - def __init__(self, *, theta: builtins.float=..., x: builtins.float=..., y: builtins.float=..., z: builtins.float=...) -> None: + DESCRIPTOR: _descriptor.Descriptor + THETA_FIELD_NUMBER: _builtins.int + X_FIELD_NUMBER: _builtins.int + Y_FIELD_NUMBER: _builtins.int + Z_FIELD_NUMBER: _builtins.int + theta: _builtins.float + x: _builtins.float + y: _builtins.float + z: _builtins.float + + def __init__(self, *, theta: _builtins.float=..., x: _builtins.float=..., y: _builtins.float=..., z: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['theta', b'theta', 'x', b'x', 'y', b'y', 'z', b'z'] - def ClearField(self, field_name: typing.Literal['theta', b'theta', 'x', b'x', 'y', b'y', 'z', b'z']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @typing.final - class EulerAngles(google.protobuf.message.Message): + @_typing.final + class EulerAngles(_message.Message): """EulerAngles are three angles (in radians) used to represent the rotation of an object in 3D Euclidean space The Tait–Bryan angle formalism is used, with rotations around three distinct axes in the z-y′-x″ sequence. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROLL_FIELD_NUMBER: builtins.int - PITCH_FIELD_NUMBER: builtins.int - YAW_FIELD_NUMBER: builtins.int - roll: builtins.float - pitch: builtins.float - yaw: builtins.float - - def __init__(self, *, roll: builtins.float=..., pitch: builtins.float=..., yaw: builtins.float=...) -> None: + DESCRIPTOR: _descriptor.Descriptor + ROLL_FIELD_NUMBER: _builtins.int + PITCH_FIELD_NUMBER: _builtins.int + YAW_FIELD_NUMBER: _builtins.int + roll: _builtins.float + pitch: _builtins.float + yaw: _builtins.float + + def __init__(self, *, roll: _builtins.float=..., pitch: _builtins.float=..., yaw: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['pitch', b'pitch', 'roll', b'roll', 'yaw', b'yaw'] - def ClearField(self, field_name: typing.Literal['pitch', b'pitch', 'roll', b'roll', 'yaw', b'yaw']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @typing.final - class AxisAngles(google.protobuf.message.Message): + @_typing.final + class AxisAngles(_message.Message): """See here for a thorough explanation: https://en.wikipedia.org/wiki/Axis%E2%80%93angle_representation Basic explanation: Imagine a 3d cartesian grid centered at 0,0,0, and a sphere of radius 1 centered at that same point. An orientation can be expressed by first specifying an axis, i.e. a line from the origin @@ -812,475 +877,509 @@ class Orientation(google.protobuf.message.Message): the unit sphere components to give a vector whose length is theta and whose direction is the original axis. AxisAngles represents an R4 axis angle. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - THETA_FIELD_NUMBER: builtins.int - X_FIELD_NUMBER: builtins.int - Y_FIELD_NUMBER: builtins.int - Z_FIELD_NUMBER: builtins.int - theta: builtins.float - x: builtins.float - y: builtins.float - z: builtins.float - - def __init__(self, *, theta: builtins.float=..., x: builtins.float=..., y: builtins.float=..., z: builtins.float=...) -> None: + DESCRIPTOR: _descriptor.Descriptor + THETA_FIELD_NUMBER: _builtins.int + X_FIELD_NUMBER: _builtins.int + Y_FIELD_NUMBER: _builtins.int + Z_FIELD_NUMBER: _builtins.int + theta: _builtins.float + x: _builtins.float + y: _builtins.float + z: _builtins.float + + def __init__(self, *, theta: _builtins.float=..., x: _builtins.float=..., y: _builtins.float=..., z: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['theta', b'theta', 'x', b'x', 'y', b'y', 'z', b'z'] - def ClearField(self, field_name: typing.Literal['theta', b'theta', 'x', b'x', 'y', b'y', 'z', b'z']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @typing.final - class Quaternion(google.protobuf.message.Message): + @_typing.final + class Quaternion(_message.Message): """Quaternion is a float64 precision quaternion.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - W_FIELD_NUMBER: builtins.int - X_FIELD_NUMBER: builtins.int - Y_FIELD_NUMBER: builtins.int - Z_FIELD_NUMBER: builtins.int - w: builtins.float - x: builtins.float - y: builtins.float - z: builtins.float - - def __init__(self, *, w: builtins.float=..., x: builtins.float=..., y: builtins.float=..., z: builtins.float=...) -> None: + DESCRIPTOR: _descriptor.Descriptor + W_FIELD_NUMBER: _builtins.int + X_FIELD_NUMBER: _builtins.int + Y_FIELD_NUMBER: _builtins.int + Z_FIELD_NUMBER: _builtins.int + w: _builtins.float + x: _builtins.float + y: _builtins.float + z: _builtins.float + + def __init__(self, *, w: _builtins.float=..., x: _builtins.float=..., y: _builtins.float=..., z: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['w', b'w', 'x', b'x', 'y', b'y', 'z', b'z'] - def ClearField(self, field_name: typing.Literal['w', b'w', 'x', b'x', 'y', b'y', 'z', b'z']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - NO_ORIENTATION_FIELD_NUMBER: builtins.int - VECTOR_RADIANS_FIELD_NUMBER: builtins.int - VECTOR_DEGREES_FIELD_NUMBER: builtins.int - EULER_ANGLES_FIELD_NUMBER: builtins.int - AXIS_ANGLES_FIELD_NUMBER: builtins.int - QUATERNION_FIELD_NUMBER: builtins.int + NO_ORIENTATION_FIELD_NUMBER: _builtins.int + VECTOR_RADIANS_FIELD_NUMBER: _builtins.int + VECTOR_DEGREES_FIELD_NUMBER: _builtins.int + EULER_ANGLES_FIELD_NUMBER: _builtins.int + AXIS_ANGLES_FIELD_NUMBER: _builtins.int + QUATERNION_FIELD_NUMBER: _builtins.int - @property - def no_orientation(self) -> global___Orientation.NoOrientation: + @_builtins.property + def no_orientation(self) -> Global___Orientation.NoOrientation: ... - @property - def vector_radians(self) -> global___Orientation.OrientationVectorRadians: + @_builtins.property + def vector_radians(self) -> Global___Orientation.OrientationVectorRadians: ... - @property - def vector_degrees(self) -> global___Orientation.OrientationVectorDegrees: + @_builtins.property + def vector_degrees(self) -> Global___Orientation.OrientationVectorDegrees: ... - @property - def euler_angles(self) -> global___Orientation.EulerAngles: + @_builtins.property + def euler_angles(self) -> Global___Orientation.EulerAngles: ... - @property - def axis_angles(self) -> global___Orientation.AxisAngles: + @_builtins.property + def axis_angles(self) -> Global___Orientation.AxisAngles: ... - @property - def quaternion(self) -> global___Orientation.Quaternion: + @_builtins.property + def quaternion(self) -> Global___Orientation.Quaternion: ... - def __init__(self, *, no_orientation: global___Orientation.NoOrientation | None=..., vector_radians: global___Orientation.OrientationVectorRadians | None=..., vector_degrees: global___Orientation.OrientationVectorDegrees | None=..., euler_angles: global___Orientation.EulerAngles | None=..., axis_angles: global___Orientation.AxisAngles | None=..., quaternion: global___Orientation.Quaternion | None=...) -> None: + def __init__(self, *, no_orientation: Global___Orientation.NoOrientation | None=..., vector_radians: Global___Orientation.OrientationVectorRadians | None=..., vector_degrees: Global___Orientation.OrientationVectorDegrees | None=..., euler_angles: Global___Orientation.EulerAngles | None=..., axis_angles: Global___Orientation.AxisAngles | None=..., quaternion: Global___Orientation.Quaternion | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['axis_angles', b'axis_angles', 'euler_angles', b'euler_angles', 'no_orientation', b'no_orientation', 'quaternion', b'quaternion', 'type', b'type', 'vector_degrees', b'vector_degrees', 'vector_radians', b'vector_radians'] - def HasField(self, field_name: typing.Literal['axis_angles', b'axis_angles', 'euler_angles', b'euler_angles', 'no_orientation', b'no_orientation', 'quaternion', b'quaternion', 'type', b'type', 'vector_degrees', b'vector_degrees', 'vector_radians', b'vector_radians']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['axis_angles', b'axis_angles', 'euler_angles', b'euler_angles', 'no_orientation', b'no_orientation', 'quaternion', b'quaternion', 'type', b'type', 'vector_degrees', b'vector_degrees', 'vector_radians', b'vector_radians'] - def ClearField(self, field_name: typing.Literal['axis_angles', b'axis_angles', 'euler_angles', b'euler_angles', 'no_orientation', b'no_orientation', 'quaternion', b'quaternion', 'type', b'type', 'vector_degrees', b'vector_degrees', 'vector_radians', b'vector_radians']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_type: _TypeAlias = _typing.Literal['no_orientation', 'vector_radians', 'vector_degrees', 'euler_angles', 'axis_angles', 'quaternion'] + _WhichOneofArgType_type: _TypeAlias = _typing.Literal['type', b'type'] - def WhichOneof(self, oneof_group: typing.Literal['type', b'type']) -> typing.Literal['no_orientation', 'vector_radians', 'vector_degrees', 'euler_angles', 'axis_angles', 'quaternion'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_type) -> _WhichOneofReturnType_type | None: ... -global___Orientation = Orientation +Global___Orientation: _TypeAlias = Orientation -@typing.final -class RemoteConfig(google.protobuf.message.Message): +@_typing.final +class RemoteConfig(_message.Message): """A RemoteConfig describes a remote robot that should be integrated. The Frame field defines how the "world" node of the remote robot should be reconciled with the "world" node of the the current robot. All components of the remote robot who have Parent as "world" will be attached to the parent defined in Frame, and with the given offset as well. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - ADDRESS_FIELD_NUMBER: builtins.int - FRAME_FIELD_NUMBER: builtins.int - AUTH_FIELD_NUMBER: builtins.int - MANAGED_BY_FIELD_NUMBER: builtins.int - INSECURE_FIELD_NUMBER: builtins.int - CONNECTION_CHECK_INTERVAL_FIELD_NUMBER: builtins.int - RECONNECT_INTERVAL_FIELD_NUMBER: builtins.int - SERVICE_CONFIGS_FIELD_NUMBER: builtins.int - SECRET_FIELD_NUMBER: builtins.int - PREFIX_FIELD_NUMBER: builtins.int - name: builtins.str - address: builtins.str - managed_by: builtins.str - insecure: builtins.bool - secret: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + ADDRESS_FIELD_NUMBER: _builtins.int + FRAME_FIELD_NUMBER: _builtins.int + AUTH_FIELD_NUMBER: _builtins.int + MANAGED_BY_FIELD_NUMBER: _builtins.int + INSECURE_FIELD_NUMBER: _builtins.int + CONNECTION_CHECK_INTERVAL_FIELD_NUMBER: _builtins.int + RECONNECT_INTERVAL_FIELD_NUMBER: _builtins.int + SERVICE_CONFIGS_FIELD_NUMBER: _builtins.int + SECRET_FIELD_NUMBER: _builtins.int + PREFIX_FIELD_NUMBER: _builtins.int + name: _builtins.str + address: _builtins.str + managed_by: _builtins.str + insecure: _builtins.bool + secret: _builtins.str 'Secret is a helper for a robot location secret.' - prefix: builtins.str + prefix: _builtins.str 'A string with which to prefix all resource names fetched from this remote.' - @property - def frame(self) -> global___Frame: + @_builtins.property + def frame(self) -> Global___Frame: ... - @property - def auth(self) -> global___RemoteAuth: + @_builtins.property + def auth(self) -> Global___RemoteAuth: ... - @property - def connection_check_interval(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def connection_check_interval(self) -> _duration_pb2.Duration: ... - @property - def reconnect_interval(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def reconnect_interval(self) -> _duration_pb2.Duration: ... - @property - def service_configs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceLevelServiceConfig]: + @_builtins.property + def service_configs(self) -> _containers.RepeatedCompositeFieldContainer[Global___ResourceLevelServiceConfig]: ... - def __init__(self, *, name: builtins.str=..., address: builtins.str=..., frame: global___Frame | None=..., auth: global___RemoteAuth | None=..., managed_by: builtins.str=..., insecure: builtins.bool=..., connection_check_interval: google.protobuf.duration_pb2.Duration | None=..., reconnect_interval: google.protobuf.duration_pb2.Duration | None=..., service_configs: collections.abc.Iterable[global___ResourceLevelServiceConfig] | None=..., secret: builtins.str=..., prefix: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=..., address: _builtins.str=..., frame: Global___Frame | None=..., auth: Global___RemoteAuth | None=..., managed_by: _builtins.str=..., insecure: _builtins.bool=..., connection_check_interval: _duration_pb2.Duration | None=..., reconnect_interval: _duration_pb2.Duration | None=..., service_configs: _abc.Iterable[Global___ResourceLevelServiceConfig] | None=..., secret: _builtins.str=..., prefix: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['auth', b'auth', 'connection_check_interval', b'connection_check_interval', 'frame', b'frame', 'reconnect_interval', b'reconnect_interval'] - def HasField(self, field_name: typing.Literal['auth', b'auth', 'connection_check_interval', b'connection_check_interval', 'frame', b'frame', 'reconnect_interval', b'reconnect_interval']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['address', b'address', 'auth', b'auth', 'connection_check_interval', b'connection_check_interval', 'frame', b'frame', 'insecure', b'insecure', 'managed_by', b'managed_by', 'name', b'name', 'prefix', b'prefix', 'reconnect_interval', b'reconnect_interval', 'secret', b'secret', 'service_configs', b'service_configs'] - def ClearField(self, field_name: typing.Literal['address', b'address', 'auth', b'auth', 'connection_check_interval', b'connection_check_interval', 'frame', b'frame', 'insecure', b'insecure', 'managed_by', b'managed_by', 'name', b'name', 'prefix', b'prefix', 'reconnect_interval', b'reconnect_interval', 'secret', b'secret', 'service_configs', b'service_configs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoteConfig = RemoteConfig +Global___RemoteConfig: _TypeAlias = RemoteConfig -@typing.final -class RemoteAuth(google.protobuf.message.Message): +@_typing.final +class RemoteAuth(_message.Message): """RemoteAuth specifies how to authenticate against a remote. If no credentials are specified, authentication does not happen. If an entity is specified, the authentication request will specify it. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class Credentials(google.protobuf.message.Message): + @_typing.final + class Credentials(_message.Message): """Credentials packages up both a type of credential along with its payload which is formatted specific to the type. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - PAYLOAD_FIELD_NUMBER: builtins.int - type: global___CredentialsType.ValueType - payload: builtins.str + DESCRIPTOR: _descriptor.Descriptor + TYPE_FIELD_NUMBER: _builtins.int + PAYLOAD_FIELD_NUMBER: _builtins.int + type: Global___CredentialsType.ValueType + payload: _builtins.str - def __init__(self, *, type: global___CredentialsType.ValueType=..., payload: builtins.str=...) -> None: + def __init__(self, *, type: Global___CredentialsType.ValueType=..., payload: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['payload', b'payload', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['payload', b'payload', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - CREDENTIALS_FIELD_NUMBER: builtins.int - ENTITY_FIELD_NUMBER: builtins.int - entity: builtins.str + CREDENTIALS_FIELD_NUMBER: _builtins.int + ENTITY_FIELD_NUMBER: _builtins.int + entity: _builtins.str - @property - def credentials(self) -> global___RemoteAuth.Credentials: + @_builtins.property + def credentials(self) -> Global___RemoteAuth.Credentials: ... - def __init__(self, *, credentials: global___RemoteAuth.Credentials | None=..., entity: builtins.str=...) -> None: + def __init__(self, *, credentials: Global___RemoteAuth.Credentials | None=..., entity: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['credentials', b'credentials'] - def HasField(self, field_name: typing.Literal['credentials', b'credentials']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['credentials', b'credentials', 'entity', b'entity'] - def ClearField(self, field_name: typing.Literal['credentials', b'credentials', 'entity', b'entity']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoteAuth = RemoteAuth +Global___RemoteAuth: _TypeAlias = RemoteAuth -@typing.final -class AgentInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HOST_FIELD_NUMBER: builtins.int - OS_FIELD_NUMBER: builtins.int - IPS_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - GIT_REVISION_FIELD_NUMBER: builtins.int - PLATFORM_FIELD_NUMBER: builtins.int - PLATFORM_TAGS_FIELD_NUMBER: builtins.int - host: builtins.str - os: builtins.str +@_typing.final +class AgentInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + HOST_FIELD_NUMBER: _builtins.int + OS_FIELD_NUMBER: _builtins.int + IPS_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + GIT_REVISION_FIELD_NUMBER: _builtins.int + PLATFORM_FIELD_NUMBER: _builtins.int + PLATFORM_TAGS_FIELD_NUMBER: _builtins.int + host: _builtins.str + os: _builtins.str 'Will soon be deprecated, use platform instead' - version: builtins.str + version: _builtins.str 'RDK version' - git_revision: builtins.str - platform: builtins.str + git_revision: _builtins.str + platform: _builtins.str 'The platform the RDK is running on. For example linux/amd64' - @property - def ips(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def ips(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """list of all ipv4 ips.""" - @property - def platform_tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def platform_tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Optional tags to further constrain which artifact is returned for modules.""" - def __init__(self, *, host: builtins.str=..., os: builtins.str=..., ips: collections.abc.Iterable[builtins.str] | None=..., version: builtins.str=..., git_revision: builtins.str=..., platform: builtins.str | None=..., platform_tags: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, host: _builtins.str=..., os: _builtins.str=..., ips: _abc.Iterable[_builtins.str] | None=..., version: _builtins.str=..., git_revision: _builtins.str=..., platform: _builtins.str | None=..., platform_tags: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_platform', b'_platform', 'platform', b'platform'] - def HasField(self, field_name: typing.Literal['_platform', b'_platform', 'platform', b'platform']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_platform', b'_platform', 'git_revision', b'git_revision', 'host', b'host', 'ips', b'ips', 'os', b'os', 'platform', b'platform', 'platform_tags', b'platform_tags', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['_platform', b'_platform', 'git_revision', b'git_revision', 'host', b'host', 'ips', b'ips', 'os', b'os', 'platform', b'platform', 'platform_tags', b'platform_tags', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__platform: _TypeAlias = _typing.Literal['platform'] + _WhichOneofArgType__platform: _TypeAlias = _typing.Literal['_platform', b'_platform'] - def WhichOneof(self, oneof_group: typing.Literal['_platform', b'_platform']) -> typing.Literal['platform'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__platform) -> _WhichOneofReturnType__platform | None: ... -global___AgentInfo = AgentInfo +Global___AgentInfo: _TypeAlias = AgentInfo -@typing.final -class ConfigRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - AGENT_INFO_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class ConfigRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + AGENT_INFO_FIELD_NUMBER: _builtins.int + id: _builtins.str 'Robot part id.' - @property - def agent_info(self) -> global___AgentInfo: + @_builtins.property + def agent_info(self) -> Global___AgentInfo: """Details about the RDK (os, version) are updated during this request.""" - def __init__(self, *, id: builtins.str=..., agent_info: global___AgentInfo | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., agent_info: Global___AgentInfo | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_agent_info', b'_agent_info', 'agent_info', b'agent_info'] - def HasField(self, field_name: typing.Literal['_agent_info', b'_agent_info', 'agent_info', b'agent_info']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_agent_info', b'_agent_info', 'agent_info', b'agent_info', 'id', b'id'] - def ClearField(self, field_name: typing.Literal['_agent_info', b'_agent_info', 'agent_info', b'agent_info', 'id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__agent_info: _TypeAlias = _typing.Literal['agent_info'] + _WhichOneofArgType__agent_info: _TypeAlias = _typing.Literal['_agent_info', b'_agent_info'] - def WhichOneof(self, oneof_group: typing.Literal['_agent_info', b'_agent_info']) -> typing.Literal['agent_info'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__agent_info) -> _WhichOneofReturnType__agent_info | None: ... -global___ConfigRequest = ConfigRequest +Global___ConfigRequest: _TypeAlias = ConfigRequest -@typing.final -class ConfigResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONFIG_FIELD_NUMBER: builtins.int +@_typing.final +class ConfigResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CONFIG_FIELD_NUMBER: _builtins.int - @property - def config(self) -> global___RobotConfig: + @_builtins.property + def config(self) -> Global___RobotConfig: ... - def __init__(self, *, config: global___RobotConfig | None=...) -> None: + def __init__(self, *, config: Global___RobotConfig | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['config', b'config'] - def HasField(self, field_name: typing.Literal['config', b'config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['config', b'config'] - def ClearField(self, field_name: typing.Literal['config', b'config']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ConfigResponse = ConfigResponse +Global___ConfigResponse: _TypeAlias = ConfigResponse -@typing.final -class CertificateRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class CertificateRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str 'Robot part id.' - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CertificateRequest = CertificateRequest +Global___CertificateRequest: _TypeAlias = CertificateRequest -@typing.final -class CertificateResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - TLS_CERTIFICATE_FIELD_NUMBER: builtins.int - TLS_PRIVATE_KEY_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class CertificateResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + TLS_CERTIFICATE_FIELD_NUMBER: _builtins.int + TLS_PRIVATE_KEY_FIELD_NUMBER: _builtins.int + id: _builtins.str 'Robot part id.' - tls_certificate: builtins.str - tls_private_key: builtins.str + tls_certificate: _builtins.str + tls_private_key: _builtins.str - def __init__(self, *, id: builtins.str=..., tls_certificate: builtins.str=..., tls_private_key: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., tls_certificate: _builtins.str=..., tls_private_key: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'tls_certificate', b'tls_certificate', 'tls_private_key', b'tls_private_key'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'tls_certificate', b'tls_certificate', 'tls_private_key', b'tls_private_key']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CertificateResponse = CertificateResponse +Global___CertificateResponse: _TypeAlias = CertificateResponse -@typing.final -class LogRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - LOGS_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class LogRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + LOGS_FIELD_NUMBER: _builtins.int + id: _builtins.str 'Robot part id.' - @property - def logs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.LogEntry]: + @_builtins.property + def logs(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.LogEntry]: ... - def __init__(self, *, id: builtins.str=..., logs: collections.abc.Iterable[common.v1.common_pb2.LogEntry] | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., logs: _abc.Iterable[_common_pb2.LogEntry] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'logs', b'logs'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'logs', b'logs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LogRequest = LogRequest +Global___LogRequest: _TypeAlias = LogRequest -@typing.final -class LogResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class LogResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___LogResponse = LogResponse +Global___LogResponse: _TypeAlias = LogResponse -@typing.final -class NeedsRestartRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class NeedsRestartRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str 'Robot part id.' - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___NeedsRestartRequest = NeedsRestartRequest +Global___NeedsRestartRequest: _TypeAlias = NeedsRestartRequest -@typing.final -class NeedsRestartResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - MUST_RESTART_FIELD_NUMBER: builtins.int - RESTART_CHECK_INTERVAL_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class NeedsRestartResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + MUST_RESTART_FIELD_NUMBER: _builtins.int + RESTART_CHECK_INTERVAL_FIELD_NUMBER: _builtins.int + id: _builtins.str 'Robot part id.' - must_restart: builtins.bool + must_restart: _builtins.bool - @property - def restart_check_interval(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def restart_check_interval(self) -> _duration_pb2.Duration: ... - def __init__(self, *, id: builtins.str=..., must_restart: builtins.bool=..., restart_check_interval: google.protobuf.duration_pb2.Duration | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., must_restart: _builtins.bool=..., restart_check_interval: _duration_pb2.Duration | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['restart_check_interval', b'restart_check_interval'] - def HasField(self, field_name: typing.Literal['restart_check_interval', b'restart_check_interval']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'must_restart', b'must_restart', 'restart_check_interval', b'restart_check_interval'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'must_restart', b'must_restart', 'restart_check_interval', b'restart_check_interval']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___NeedsRestartResponse = NeedsRestartResponse +Global___NeedsRestartResponse: _TypeAlias = NeedsRestartResponse -@typing.final -class ModuleConfig(google.protobuf.message.Message): +@_typing.final +class ModuleConfig(_message.Message): """ModuleConfig is the configuration for a module.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class EnvEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.str + @_typing.final + class EnvEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.str - def __init__(self, *, key: builtins.str=..., value: builtins.str=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - NAME_FIELD_NUMBER: builtins.int - PATH_FIELD_NUMBER: builtins.int - LOG_LEVEL_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - MODULE_ID_FIELD_NUMBER: builtins.int - ENV_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - FIRST_RUN_TIMEOUT_FIELD_NUMBER: builtins.int - TCP_MODE_FIELD_NUMBER: builtins.int - name: builtins.str - path: builtins.str + NAME_FIELD_NUMBER: _builtins.int + PATH_FIELD_NUMBER: _builtins.int + LOG_LEVEL_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + MODULE_ID_FIELD_NUMBER: _builtins.int + ENV_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + FIRST_RUN_TIMEOUT_FIELD_NUMBER: _builtins.int + TCP_MODE_FIELD_NUMBER: _builtins.int + name: _builtins.str + path: _builtins.str 'path to the executable' - log_level: builtins.str + log_level: _builtins.str 'log level for module' - type: builtins.str + type: _builtins.str 'type of the module ("local" or "registry")' - module_id: builtins.str + module_id: _builtins.str 'the id of the module if it is a registry module' - tcp_mode: builtins.bool + tcp_mode: _builtins.bool 'whether we are starting a module in TCP mode' - @property - def env(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + @_builtins.property + def env(self) -> _containers.ScalarMap[_builtins.str, _builtins.str]: """additional environment variables passed to the module process""" - @property - def status(self) -> global___AppValidationStatus: + @_builtins.property + def status(self) -> Global___AppValidationStatus: """info about the validity of the module""" - @property - def first_run_timeout(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def first_run_timeout(self) -> _duration_pb2.Duration: """timeout for first_run script""" - def __init__(self, *, name: builtins.str=..., path: builtins.str=..., log_level: builtins.str=..., type: builtins.str=..., module_id: builtins.str=..., env: collections.abc.Mapping[builtins.str, builtins.str] | None=..., status: global___AppValidationStatus | None=..., first_run_timeout: google.protobuf.duration_pb2.Duration | None=..., tcp_mode: builtins.bool=...) -> None: + def __init__(self, *, name: _builtins.str=..., path: _builtins.str=..., log_level: _builtins.str=..., type: _builtins.str=..., module_id: _builtins.str=..., env: _abc.Mapping[_builtins.str, _builtins.str] | None=..., status: Global___AppValidationStatus | None=..., first_run_timeout: _duration_pb2.Duration | None=..., tcp_mode: _builtins.bool=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['first_run_timeout', b'first_run_timeout', 'status', b'status'] - def HasField(self, field_name: typing.Literal['first_run_timeout', b'first_run_timeout', 'status', b'status']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['env', b'env', 'first_run_timeout', b'first_run_timeout', 'log_level', b'log_level', 'module_id', b'module_id', 'name', b'name', 'path', b'path', 'status', b'status', 'tcp_mode', b'tcp_mode', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['env', b'env', 'first_run_timeout', b'first_run_timeout', 'log_level', b'log_level', 'module_id', b'module_id', 'name', b'name', 'path', b'path', 'status', b'status', 'tcp_mode', b'tcp_mode', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ModuleConfig = ModuleConfig +Global___ModuleConfig: _TypeAlias = ModuleConfig -@typing.final -class PackageConfig(google.protobuf.message.Message): +@_typing.final +class PackageConfig(_message.Message): """PackageConfig is the configration for deployed Packages.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PACKAGE_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + PACKAGE_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name is the local name of the package on the RDK. Must be unique across Packages. Must not be empty.' - package: builtins.str + package: _builtins.str 'Package is the unique package name hosted by Viam. Must not be empty.' - version: builtins.str + version: _builtins.str 'version of the package ID hosted by Viam. If not specified "latest" is assumed.' - type: builtins.str + type: _builtins.str 'type of the package' - @property - def status(self) -> global___AppValidationStatus: + @_builtins.property + def status(self) -> Global___AppValidationStatus: """info about the validity of the package""" - def __init__(self, *, name: builtins.str=..., package: builtins.str=..., version: builtins.str=..., type: builtins.str=..., status: global___AppValidationStatus | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., package: _builtins.str=..., version: _builtins.str=..., type: _builtins.str=..., status: Global___AppValidationStatus | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['status', b'status'] - def HasField(self, field_name: typing.Literal['status', b'status']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'package', b'package', 'status', b'status', 'type', b'type', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['name', b'name', 'package', b'package', 'status', b'status', 'type', b'type', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PackageConfig = PackageConfig +Global___PackageConfig: _TypeAlias = PackageConfig -@typing.final -class MaintenanceConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SENSOR_NAME_FIELD_NUMBER: builtins.int - MAINTENANCE_ALLOWED_KEY_FIELD_NUMBER: builtins.int - maintenance_allowed_key: builtins.str +@_typing.final +class MaintenanceConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SENSOR_NAME_FIELD_NUMBER: _builtins.int + MAINTENANCE_ALLOWED_KEY_FIELD_NUMBER: _builtins.int + maintenance_allowed_key: _builtins.str - @property - def sensor_name(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + def sensor_name(self) -> _common_pb2.ResourceName: ... - def __init__(self, *, sensor_name: common.v1.common_pb2.ResourceName | None=..., maintenance_allowed_key: builtins.str=...) -> None: + def __init__(self, *, sensor_name: _common_pb2.ResourceName | None=..., maintenance_allowed_key: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['sensor_name', b'sensor_name'] - def HasField(self, field_name: typing.Literal['sensor_name', b'sensor_name']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['maintenance_allowed_key', b'maintenance_allowed_key', 'sensor_name', b'sensor_name'] - def ClearField(self, field_name: typing.Literal['maintenance_allowed_key', b'maintenance_allowed_key', 'sensor_name', b'sensor_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MaintenanceConfig = MaintenanceConfig \ No newline at end of file +Global___MaintenanceConfig: _TypeAlias = MaintenanceConfig \ No newline at end of file diff --git a/src/viam/gen/common/v1/common_pb2.py b/src/viam/gen/common/v1/common_pb2.py index ee5b211b8a..caf1955c70 100644 --- a/src/viam/gen/common/v1/common_pb2.py +++ b/src/viam/gen/common/v1/common_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'common/v1/common.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'common/v1/common.proto') _sym_db = _symbol_database.Default() from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 diff --git a/src/viam/gen/common/v1/common_pb2.pyi b/src/viam/gen/common/v1/common_pb2.pyi index ac805b1f38..faba89dee7 100644 --- a/src/viam/gen/common/v1/common_pb2.pyi +++ b/src/viam/gen/common/v1/common_pb2.pyi @@ -2,30 +2,30 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file The following is a list of messages that are used across multiple resource subtypes""" -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.descriptor_pb2 -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.internal.extension_dict -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pb2 as _descriptor_pb2 +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf.internal import extension_dict as _extension_dict +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _KinematicsFileFormat: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _KinematicsFileFormatEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_KinematicsFileFormat.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _KinematicsFileFormatEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_KinematicsFileFormat.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor KINEMATICS_FILE_FORMAT_UNSPECIFIED: _KinematicsFileFormat.ValueType KINEMATICS_FILE_FORMAT_SVA: _KinematicsFileFormat.ValueType KINEMATICS_FILE_FORMAT_URDF: _KinematicsFileFormat.ValueType @@ -35,29 +35,30 @@ class KinematicsFileFormat(_KinematicsFileFormat, metaclass=_KinematicsFileForma KINEMATICS_FILE_FORMAT_UNSPECIFIED: KinematicsFileFormat.ValueType KINEMATICS_FILE_FORMAT_SVA: KinematicsFileFormat.ValueType KINEMATICS_FILE_FORMAT_URDF: KinematicsFileFormat.ValueType -global___KinematicsFileFormat = KinematicsFileFormat +Global___KinematicsFileFormat: _TypeAlias = KinematicsFileFormat -@typing.final -class ResourceName(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAMESPACE_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - SUBTYPE_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - namespace: builtins.str - type: builtins.str - subtype: builtins.str - name: builtins.str +@_typing.final +class ResourceName(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAMESPACE_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + SUBTYPE_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + namespace: _builtins.str + type: _builtins.str + subtype: _builtins.str + name: _builtins.str - def __init__(self, *, namespace: builtins.str=..., type: builtins.str=..., subtype: builtins.str=..., name: builtins.str=...) -> None: + def __init__(self, *, namespace: _builtins.str=..., type: _builtins.str=..., subtype: _builtins.str=..., name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'namespace', b'namespace', 'subtype', b'subtype', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['name', b'name', 'namespace', b'namespace', 'subtype', b'subtype', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResourceName = ResourceName +Global___ResourceName: _TypeAlias = ResourceName -@typing.final -class Pose(google.protobuf.message.Message): +@_typing.final +class Pose(_message.Message): """Pose is a combination of location and orientation. Location is expressed as distance which is represented by x , y, z coordinates. Orientation is expressed as an orientation vector which is represented by o_x, o_y, o_z and theta. The o_x, o_y, o_z coordinates represent the point on the cartesian unit sphere that the end of @@ -67,826 +68,890 @@ class Pose(google.protobuf.message.Message): second being defined by the origin, the rx, ry, rz point and the local Z axis. Therefore, if theta is kept at zero as the north/south pole is circled, the Roll will correct itself to remain in-line. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - X_FIELD_NUMBER: builtins.int - Y_FIELD_NUMBER: builtins.int - Z_FIELD_NUMBER: builtins.int - O_X_FIELD_NUMBER: builtins.int - O_Y_FIELD_NUMBER: builtins.int - O_Z_FIELD_NUMBER: builtins.int - THETA_FIELD_NUMBER: builtins.int - x: builtins.float + DESCRIPTOR: _descriptor.Descriptor + X_FIELD_NUMBER: _builtins.int + Y_FIELD_NUMBER: _builtins.int + Z_FIELD_NUMBER: _builtins.int + O_X_FIELD_NUMBER: _builtins.int + O_Y_FIELD_NUMBER: _builtins.int + O_Z_FIELD_NUMBER: _builtins.int + THETA_FIELD_NUMBER: _builtins.int + x: _builtins.float 'millimeters from the origin' - y: builtins.float + y: _builtins.float 'millimeters from the origin' - z: builtins.float + z: _builtins.float 'millimeters from the origin' - o_x: builtins.float + o_x: _builtins.float 'z component of a vector defining axis of rotation' - o_y: builtins.float + o_y: _builtins.float 'x component of a vector defining axis of rotation' - o_z: builtins.float + o_z: _builtins.float 'y component of a vector defining axis of rotation' - theta: builtins.float + theta: _builtins.float 'degrees' - def __init__(self, *, x: builtins.float=..., y: builtins.float=..., z: builtins.float=..., o_x: builtins.float=..., o_y: builtins.float=..., o_z: builtins.float=..., theta: builtins.float=...) -> None: + def __init__(self, *, x: _builtins.float=..., y: _builtins.float=..., z: _builtins.float=..., o_x: _builtins.float=..., o_y: _builtins.float=..., o_z: _builtins.float=..., theta: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['o_x', b'o_x', 'o_y', b'o_y', 'o_z', b'o_z', 'theta', b'theta', 'x', b'x', 'y', b'y', 'z', b'z'] - def ClearField(self, field_name: typing.Literal['o_x', b'o_x', 'o_y', b'o_y', 'o_z', b'o_z', 'theta', b'theta', 'x', b'x', 'y', b'y', 'z', b'z']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Pose = Pose +Global___Pose: _TypeAlias = Pose -@typing.final -class Orientation(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - O_X_FIELD_NUMBER: builtins.int - O_Y_FIELD_NUMBER: builtins.int - O_Z_FIELD_NUMBER: builtins.int - THETA_FIELD_NUMBER: builtins.int - o_x: builtins.float +@_typing.final +class Orientation(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + O_X_FIELD_NUMBER: _builtins.int + O_Y_FIELD_NUMBER: _builtins.int + O_Z_FIELD_NUMBER: _builtins.int + THETA_FIELD_NUMBER: _builtins.int + o_x: _builtins.float 'x component of a vector defining axis of rotation' - o_y: builtins.float + o_y: _builtins.float 'y component of a vector defining axis of rotation' - o_z: builtins.float + o_z: _builtins.float 'z component of a vector defining axis of rotation' - theta: builtins.float + theta: _builtins.float 'degrees' - def __init__(self, *, o_x: builtins.float=..., o_y: builtins.float=..., o_z: builtins.float=..., theta: builtins.float=...) -> None: + def __init__(self, *, o_x: _builtins.float=..., o_y: _builtins.float=..., o_z: _builtins.float=..., theta: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['o_x', b'o_x', 'o_y', b'o_y', 'o_z', b'o_z', 'theta', b'theta'] - def ClearField(self, field_name: typing.Literal['o_x', b'o_x', 'o_y', b'o_y', 'o_z', b'o_z', 'theta', b'theta']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Orientation = Orientation +Global___Orientation: _TypeAlias = Orientation -@typing.final -class PoseCloud(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - X_FIELD_NUMBER: builtins.int - Y_FIELD_NUMBER: builtins.int - Z_FIELD_NUMBER: builtins.int - O_X_FIELD_NUMBER: builtins.int - O_Y_FIELD_NUMBER: builtins.int - O_Z_FIELD_NUMBER: builtins.int - THETA_FIELD_NUMBER: builtins.int - x: builtins.float - y: builtins.float - z: builtins.float - o_x: builtins.float - o_y: builtins.float - o_z: builtins.float - theta: builtins.float +@_typing.final +class PoseCloud(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + X_FIELD_NUMBER: _builtins.int + Y_FIELD_NUMBER: _builtins.int + Z_FIELD_NUMBER: _builtins.int + O_X_FIELD_NUMBER: _builtins.int + O_Y_FIELD_NUMBER: _builtins.int + O_Z_FIELD_NUMBER: _builtins.int + THETA_FIELD_NUMBER: _builtins.int + x: _builtins.float + y: _builtins.float + z: _builtins.float + o_x: _builtins.float + o_y: _builtins.float + o_z: _builtins.float + theta: _builtins.float - def __init__(self, *, x: builtins.float=..., y: builtins.float=..., z: builtins.float=..., o_x: builtins.float=..., o_y: builtins.float=..., o_z: builtins.float=..., theta: builtins.float=...) -> None: + def __init__(self, *, x: _builtins.float=..., y: _builtins.float=..., z: _builtins.float=..., o_x: _builtins.float=..., o_y: _builtins.float=..., o_z: _builtins.float=..., theta: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['o_x', b'o_x', 'o_y', b'o_y', 'o_z', b'o_z', 'theta', b'theta', 'x', b'x', 'y', b'y', 'z', b'z'] - def ClearField(self, field_name: typing.Literal['o_x', b'o_x', 'o_y', b'o_y', 'o_z', b'o_z', 'theta', b'theta', 'x', b'x', 'y', b'y', 'z', b'z']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PoseCloud = PoseCloud +Global___PoseCloud: _TypeAlias = PoseCloud -@typing.final -class PoseInFrame(google.protobuf.message.Message): +@_typing.final +class PoseInFrame(_message.Message): """PoseInFrame contains a pose and the reference frame in which it was observed""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - REFERENCE_FRAME_FIELD_NUMBER: builtins.int - POSE_FIELD_NUMBER: builtins.int - GOAL_CLOUD_FIELD_NUMBER: builtins.int - reference_frame: builtins.str + DESCRIPTOR: _descriptor.Descriptor + REFERENCE_FRAME_FIELD_NUMBER: _builtins.int + POSE_FIELD_NUMBER: _builtins.int + GOAL_CLOUD_FIELD_NUMBER: _builtins.int + reference_frame: _builtins.str - @property - def pose(self) -> global___Pose: + @_builtins.property + def pose(self) -> Global___Pose: ... - @property - def goal_cloud(self) -> global___PoseCloud: + @_builtins.property + def goal_cloud(self) -> Global___PoseCloud: ... - def __init__(self, *, reference_frame: builtins.str=..., pose: global___Pose | None=..., goal_cloud: global___PoseCloud | None=...) -> None: + def __init__(self, *, reference_frame: _builtins.str=..., pose: Global___Pose | None=..., goal_cloud: Global___PoseCloud | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_goal_cloud', b'_goal_cloud', 'goal_cloud', b'goal_cloud', 'pose', b'pose'] - def HasField(self, field_name: typing.Literal['_goal_cloud', b'_goal_cloud', 'goal_cloud', b'goal_cloud', 'pose', b'pose']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_goal_cloud', b'_goal_cloud', 'goal_cloud', b'goal_cloud', 'pose', b'pose', 'reference_frame', b'reference_frame'] - def ClearField(self, field_name: typing.Literal['_goal_cloud', b'_goal_cloud', 'goal_cloud', b'goal_cloud', 'pose', b'pose', 'reference_frame', b'reference_frame']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__goal_cloud: _TypeAlias = _typing.Literal['goal_cloud'] + _WhichOneofArgType__goal_cloud: _TypeAlias = _typing.Literal['_goal_cloud', b'_goal_cloud'] - def WhichOneof(self, oneof_group: typing.Literal['_goal_cloud', b'_goal_cloud']) -> typing.Literal['goal_cloud'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__goal_cloud) -> _WhichOneofReturnType__goal_cloud | None: ... -global___PoseInFrame = PoseInFrame +Global___PoseInFrame: _TypeAlias = PoseInFrame -@typing.final -class Vector3(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - X_FIELD_NUMBER: builtins.int - Y_FIELD_NUMBER: builtins.int - Z_FIELD_NUMBER: builtins.int - x: builtins.float - y: builtins.float - z: builtins.float +@_typing.final +class Vector3(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + X_FIELD_NUMBER: _builtins.int + Y_FIELD_NUMBER: _builtins.int + Z_FIELD_NUMBER: _builtins.int + x: _builtins.float + y: _builtins.float + z: _builtins.float - def __init__(self, *, x: builtins.float=..., y: builtins.float=..., z: builtins.float=...) -> None: + def __init__(self, *, x: _builtins.float=..., y: _builtins.float=..., z: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['x', b'x', 'y', b'y', 'z', b'z'] - def ClearField(self, field_name: typing.Literal['x', b'x', 'y', b'y', 'z', b'z']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Vector3 = Vector3 +Global___Vector3: _TypeAlias = Vector3 -@typing.final -class Sphere(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RADIUS_MM_FIELD_NUMBER: builtins.int - radius_mm: builtins.float +@_typing.final +class Sphere(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + RADIUS_MM_FIELD_NUMBER: _builtins.int + radius_mm: _builtins.float - def __init__(self, *, radius_mm: builtins.float=...) -> None: + def __init__(self, *, radius_mm: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['radius_mm', b'radius_mm'] - def ClearField(self, field_name: typing.Literal['radius_mm', b'radius_mm']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Sphere = Sphere +Global___Sphere: _TypeAlias = Sphere -@typing.final -class Capsule(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RADIUS_MM_FIELD_NUMBER: builtins.int - LENGTH_MM_FIELD_NUMBER: builtins.int - radius_mm: builtins.float - length_mm: builtins.float +@_typing.final +class Capsule(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + RADIUS_MM_FIELD_NUMBER: _builtins.int + LENGTH_MM_FIELD_NUMBER: _builtins.int + radius_mm: _builtins.float + length_mm: _builtins.float - def __init__(self, *, radius_mm: builtins.float=..., length_mm: builtins.float=...) -> None: + def __init__(self, *, radius_mm: _builtins.float=..., length_mm: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['length_mm', b'length_mm', 'radius_mm', b'radius_mm'] - def ClearField(self, field_name: typing.Literal['length_mm', b'length_mm', 'radius_mm', b'radius_mm']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Capsule = Capsule +Global___Capsule: _TypeAlias = Capsule -@typing.final -class RectangularPrism(google.protobuf.message.Message): +@_typing.final +class RectangularPrism(_message.Message): """RectangularPrism contains a Vector3 field corresponding to the X, Y, Z dimensions of the prism in mms These dimensions are with respect to the referenceframe in which the RectangularPrism is defined """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DIMS_MM_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + DIMS_MM_FIELD_NUMBER: _builtins.int - @property - def dims_mm(self) -> global___Vector3: + @_builtins.property + def dims_mm(self) -> Global___Vector3: ... - def __init__(self, *, dims_mm: global___Vector3 | None=...) -> None: + def __init__(self, *, dims_mm: Global___Vector3 | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['dims_mm', b'dims_mm'] - def HasField(self, field_name: typing.Literal['dims_mm', b'dims_mm']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['dims_mm', b'dims_mm'] - def ClearField(self, field_name: typing.Literal['dims_mm', b'dims_mm']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RectangularPrism = RectangularPrism +Global___RectangularPrism: _TypeAlias = RectangularPrism -@typing.final -class Mesh(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONTENT_TYPE_FIELD_NUMBER: builtins.int - MESH_FIELD_NUMBER: builtins.int - content_type: builtins.str +@_typing.final +class Mesh(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CONTENT_TYPE_FIELD_NUMBER: _builtins.int + MESH_FIELD_NUMBER: _builtins.int + content_type: _builtins.str 'Content type of mesh (e.g. ply)' - mesh: builtins.bytes + mesh: _builtins.bytes 'Contents of mesh data in binary form defined by content_type' - def __init__(self, *, content_type: builtins.str=..., mesh: builtins.bytes=...) -> None: + def __init__(self, *, content_type: _builtins.str=..., mesh: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['content_type', b'content_type', 'mesh', b'mesh'] - def ClearField(self, field_name: typing.Literal['content_type', b'content_type', 'mesh', b'mesh']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Mesh = Mesh +Global___Mesh: _TypeAlias = Mesh -@typing.final -class PointCloud(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POINT_CLOUD_FIELD_NUMBER: builtins.int - point_cloud: builtins.bytes +@_typing.final +class PointCloud(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POINT_CLOUD_FIELD_NUMBER: _builtins.int + point_cloud: _builtins.bytes - def __init__(self, *, point_cloud: builtins.bytes=...) -> None: + def __init__(self, *, point_cloud: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['point_cloud', b'point_cloud'] - def ClearField(self, field_name: typing.Literal['point_cloud', b'point_cloud']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PointCloud = PointCloud +Global___PointCloud: _TypeAlias = PointCloud -@typing.final -class Geometry(google.protobuf.message.Message): +@_typing.final +class Geometry(_message.Message): """Geometry contains the dimensions of a given geometry and the pose of its center. The geometry is one of either a sphere or a box.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CENTER_FIELD_NUMBER: builtins.int - SPHERE_FIELD_NUMBER: builtins.int - BOX_FIELD_NUMBER: builtins.int - CAPSULE_FIELD_NUMBER: builtins.int - MESH_FIELD_NUMBER: builtins.int - POINTCLOUD_FIELD_NUMBER: builtins.int - LABEL_FIELD_NUMBER: builtins.int - label: builtins.str + DESCRIPTOR: _descriptor.Descriptor + CENTER_FIELD_NUMBER: _builtins.int + SPHERE_FIELD_NUMBER: _builtins.int + BOX_FIELD_NUMBER: _builtins.int + CAPSULE_FIELD_NUMBER: _builtins.int + MESH_FIELD_NUMBER: _builtins.int + POINTCLOUD_FIELD_NUMBER: _builtins.int + LABEL_FIELD_NUMBER: _builtins.int + label: _builtins.str 'Label of the geometry. If none supplied, will be an empty string.' - @property - def center(self) -> global___Pose: + @_builtins.property + def center(self) -> Global___Pose: """Pose of a geometries center point""" - @property - def sphere(self) -> global___Sphere: + @_builtins.property + def sphere(self) -> Global___Sphere: ... - @property - def box(self) -> global___RectangularPrism: + @_builtins.property + def box(self) -> Global___RectangularPrism: ... - @property - def capsule(self) -> global___Capsule: + @_builtins.property + def capsule(self) -> Global___Capsule: ... - @property - def mesh(self) -> global___Mesh: + @_builtins.property + def mesh(self) -> Global___Mesh: ... - @property - def pointcloud(self) -> global___PointCloud: + @_builtins.property + def pointcloud(self) -> Global___PointCloud: ... - def __init__(self, *, center: global___Pose | None=..., sphere: global___Sphere | None=..., box: global___RectangularPrism | None=..., capsule: global___Capsule | None=..., mesh: global___Mesh | None=..., pointcloud: global___PointCloud | None=..., label: builtins.str=...) -> None: + def __init__(self, *, center: Global___Pose | None=..., sphere: Global___Sphere | None=..., box: Global___RectangularPrism | None=..., capsule: Global___Capsule | None=..., mesh: Global___Mesh | None=..., pointcloud: Global___PointCloud | None=..., label: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['box', b'box', 'capsule', b'capsule', 'center', b'center', 'geometry_type', b'geometry_type', 'mesh', b'mesh', 'pointcloud', b'pointcloud', 'sphere', b'sphere'] - def HasField(self, field_name: typing.Literal['box', b'box', 'capsule', b'capsule', 'center', b'center', 'geometry_type', b'geometry_type', 'mesh', b'mesh', 'pointcloud', b'pointcloud', 'sphere', b'sphere']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['box', b'box', 'capsule', b'capsule', 'center', b'center', 'geometry_type', b'geometry_type', 'label', b'label', 'mesh', b'mesh', 'pointcloud', b'pointcloud', 'sphere', b'sphere'] - def ClearField(self, field_name: typing.Literal['box', b'box', 'capsule', b'capsule', 'center', b'center', 'geometry_type', b'geometry_type', 'label', b'label', 'mesh', b'mesh', 'pointcloud', b'pointcloud', 'sphere', b'sphere']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_geometry_type: _TypeAlias = _typing.Literal['sphere', 'box', 'capsule', 'mesh', 'pointcloud'] + _WhichOneofArgType_geometry_type: _TypeAlias = _typing.Literal['geometry_type', b'geometry_type'] - def WhichOneof(self, oneof_group: typing.Literal['geometry_type', b'geometry_type']) -> typing.Literal['sphere', 'box', 'capsule', 'mesh', 'pointcloud'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_geometry_type) -> _WhichOneofReturnType_geometry_type | None: ... -global___Geometry = Geometry +Global___Geometry: _TypeAlias = Geometry -@typing.final -class GeometriesInFrame(google.protobuf.message.Message): +@_typing.final +class GeometriesInFrame(_message.Message): """GeometriesinFrame contains the dimensions of a given geometry, pose of its center point, and the reference frame by which it was observed. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - REFERENCE_FRAME_FIELD_NUMBER: builtins.int - GEOMETRIES_FIELD_NUMBER: builtins.int - reference_frame: builtins.str + DESCRIPTOR: _descriptor.Descriptor + REFERENCE_FRAME_FIELD_NUMBER: _builtins.int + GEOMETRIES_FIELD_NUMBER: _builtins.int + reference_frame: _builtins.str 'Reference frame of the observer of the geometry' - @property - def geometries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Geometry]: + @_builtins.property + def geometries(self) -> _containers.RepeatedCompositeFieldContainer[Global___Geometry]: """Dimensional type""" - def __init__(self, *, reference_frame: builtins.str=..., geometries: collections.abc.Iterable[global___Geometry] | None=...) -> None: + def __init__(self, *, reference_frame: _builtins.str=..., geometries: _abc.Iterable[Global___Geometry] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['geometries', b'geometries', 'reference_frame', b'reference_frame'] - def ClearField(self, field_name: typing.Literal['geometries', b'geometries', 'reference_frame', b'reference_frame']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GeometriesInFrame = GeometriesInFrame +Global___GeometriesInFrame: _TypeAlias = GeometriesInFrame -@typing.final -class PointCloudObject(google.protobuf.message.Message): +@_typing.final +class PointCloudObject(_message.Message): """PointCloudObject contains an image in bytes with point cloud data of all of the objects captured by a given observer as well as a repeated list of geometries which respresents the center point and geometry of each of the objects within the point cloud """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POINT_CLOUD_FIELD_NUMBER: builtins.int - GEOMETRIES_FIELD_NUMBER: builtins.int - point_cloud: builtins.bytes + DESCRIPTOR: _descriptor.Descriptor + POINT_CLOUD_FIELD_NUMBER: _builtins.int + GEOMETRIES_FIELD_NUMBER: _builtins.int + point_cloud: _builtins.bytes 'image frame expressed in bytes' - @property - def geometries(self) -> global___GeometriesInFrame: + @_builtins.property + def geometries(self) -> Global___GeometriesInFrame: """volume of a given geometry""" - def __init__(self, *, point_cloud: builtins.bytes=..., geometries: global___GeometriesInFrame | None=...) -> None: + def __init__(self, *, point_cloud: _builtins.bytes=..., geometries: Global___GeometriesInFrame | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['geometries', b'geometries'] - def HasField(self, field_name: typing.Literal['geometries', b'geometries']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['geometries', b'geometries', 'point_cloud', b'point_cloud'] - def ClearField(self, field_name: typing.Literal['geometries', b'geometries', 'point_cloud', b'point_cloud']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PointCloudObject = PointCloudObject +Global___PointCloudObject: _TypeAlias = PointCloudObject -@typing.final -class GeoPoint(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LATITUDE_FIELD_NUMBER: builtins.int - LONGITUDE_FIELD_NUMBER: builtins.int - latitude: builtins.float - longitude: builtins.float +@_typing.final +class GeoPoint(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LATITUDE_FIELD_NUMBER: _builtins.int + LONGITUDE_FIELD_NUMBER: _builtins.int + latitude: _builtins.float + longitude: _builtins.float - def __init__(self, *, latitude: builtins.float=..., longitude: builtins.float=...) -> None: + def __init__(self, *, latitude: _builtins.float=..., longitude: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['latitude', b'latitude', 'longitude', b'longitude'] - def ClearField(self, field_name: typing.Literal['latitude', b'latitude', 'longitude', b'longitude']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GeoPoint = GeoPoint +Global___GeoPoint: _TypeAlias = GeoPoint -@typing.final -class GeoGeometry(google.protobuf.message.Message): +@_typing.final +class GeoGeometry(_message.Message): """GeoGeometry contains information describing Geometry(s) that is located at a GeoPoint""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_FIELD_NUMBER: builtins.int - GEOMETRIES_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + LOCATION_FIELD_NUMBER: _builtins.int + GEOMETRIES_FIELD_NUMBER: _builtins.int - @property - def location(self) -> global___GeoPoint: + @_builtins.property + def location(self) -> Global___GeoPoint: """Location of the geometry""" - @property - def geometries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Geometry]: + @_builtins.property + def geometries(self) -> _containers.RepeatedCompositeFieldContainer[Global___Geometry]: """Geometries associated with the location, where embedded Pose data is with respect to the specified location""" - def __init__(self, *, location: global___GeoPoint | None=..., geometries: collections.abc.Iterable[global___Geometry] | None=...) -> None: + def __init__(self, *, location: Global___GeoPoint | None=..., geometries: _abc.Iterable[Global___Geometry] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['location', b'location'] - def HasField(self, field_name: typing.Literal['location', b'location']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['geometries', b'geometries', 'location', b'location'] - def ClearField(self, field_name: typing.Literal['geometries', b'geometries', 'location', b'location']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GeoGeometry = GeoGeometry +Global___GeoGeometry: _TypeAlias = GeoGeometry -@typing.final -class Transform(google.protobuf.message.Message): +@_typing.final +class Transform(_message.Message): """Transform contains a pose and two reference frames. The first reference frame is the starting reference frame, and the second reference frame is the observer reference frame. The second reference frame has a pose which represents the pose of an object in the first reference frame as observed within the second reference frame. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - REFERENCE_FRAME_FIELD_NUMBER: builtins.int - POSE_IN_OBSERVER_FRAME_FIELD_NUMBER: builtins.int - PHYSICAL_OBJECT_FIELD_NUMBER: builtins.int - UUID_FIELD_NUMBER: builtins.int - METADATA_FIELD_NUMBER: builtins.int - reference_frame: builtins.str + DESCRIPTOR: _descriptor.Descriptor + REFERENCE_FRAME_FIELD_NUMBER: _builtins.int + POSE_IN_OBSERVER_FRAME_FIELD_NUMBER: _builtins.int + PHYSICAL_OBJECT_FIELD_NUMBER: _builtins.int + UUID_FIELD_NUMBER: _builtins.int + METADATA_FIELD_NUMBER: _builtins.int + reference_frame: _builtins.str 'the name of a given reference frame' - uuid: builtins.bytes + uuid: _builtins.bytes 'The UUID of the transform' - @property - def pose_in_observer_frame(self) -> global___PoseInFrame: + @_builtins.property + def pose_in_observer_frame(self) -> Global___PoseInFrame: """the pose of the above reference frame with respect to a different observer reference frame""" - @property - def physical_object(self) -> global___Geometry: + @_builtins.property + def physical_object(self) -> Global___Geometry: ... - @property - def metadata(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def metadata(self) -> _struct_pb2.Struct: """Can hold information like color, opacity, points colors, collision_allowed, etc...""" - def __init__(self, *, reference_frame: builtins.str=..., pose_in_observer_frame: global___PoseInFrame | None=..., physical_object: global___Geometry | None=..., uuid: builtins.bytes=..., metadata: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, reference_frame: _builtins.str=..., pose_in_observer_frame: Global___PoseInFrame | None=..., physical_object: Global___Geometry | None=..., uuid: _builtins.bytes=..., metadata: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_metadata', b'_metadata', '_physical_object', b'_physical_object', 'metadata', b'metadata', 'physical_object', b'physical_object', 'pose_in_observer_frame', b'pose_in_observer_frame'] - def HasField(self, field_name: typing.Literal['_metadata', b'_metadata', '_physical_object', b'_physical_object', 'metadata', b'metadata', 'physical_object', b'physical_object', 'pose_in_observer_frame', b'pose_in_observer_frame']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_metadata', b'_metadata', '_physical_object', b'_physical_object', 'metadata', b'metadata', 'physical_object', b'physical_object', 'pose_in_observer_frame', b'pose_in_observer_frame', 'reference_frame', b'reference_frame', 'uuid', b'uuid'] - def ClearField(self, field_name: typing.Literal['_metadata', b'_metadata', '_physical_object', b'_physical_object', 'metadata', b'metadata', 'physical_object', b'physical_object', 'pose_in_observer_frame', b'pose_in_observer_frame', 'reference_frame', b'reference_frame', 'uuid', b'uuid']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__metadata: _TypeAlias = _typing.Literal['metadata'] + _WhichOneofArgType__metadata: _TypeAlias = _typing.Literal['_metadata', b'_metadata'] + _WhichOneofReturnType__physical_object: _TypeAlias = _typing.Literal['physical_object'] + _WhichOneofArgType__physical_object: _TypeAlias = _typing.Literal['_physical_object', b'_physical_object'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_metadata', b'_metadata']) -> typing.Literal['metadata'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__metadata) -> _WhichOneofReturnType__metadata | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_physical_object', b'_physical_object']) -> typing.Literal['physical_object'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__physical_object) -> _WhichOneofReturnType__physical_object | None: ... -global___Transform = Transform +Global___Transform: _TypeAlias = Transform -@typing.final -class WorldState(google.protobuf.message.Message): +@_typing.final +class WorldState(_message.Message): """WorldState contains information about the physical environment around a given robot. All of the fields within this message are optional, they can include information about the physical dimensions of an obstacle, the freespace of a robot, and any desired transforms between a given reference frame and a new target reference frame. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OBSTACLES_FIELD_NUMBER: builtins.int - TRANSFORMS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + OBSTACLES_FIELD_NUMBER: _builtins.int + TRANSFORMS_FIELD_NUMBER: _builtins.int - @property - def obstacles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___GeometriesInFrame]: + @_builtins.property + def obstacles(self) -> _containers.RepeatedCompositeFieldContainer[Global___GeometriesInFrame]: """a list of obstacles expressed as a geometry and the reference frame in which it was observed; this field is optional""" - @property - def transforms(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Transform]: + @_builtins.property + def transforms(self) -> _containers.RepeatedCompositeFieldContainer[Global___Transform]: """a list of Transforms, optionally with geometries. Used as supplemental transforms to transform a pose from one reference frame to another, or to attach moving geometries to the frame system. This field is optional """ - def __init__(self, *, obstacles: collections.abc.Iterable[global___GeometriesInFrame] | None=..., transforms: collections.abc.Iterable[global___Transform] | None=...) -> None: + def __init__(self, *, obstacles: _abc.Iterable[Global___GeometriesInFrame] | None=..., transforms: _abc.Iterable[Global___Transform] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['obstacles', b'obstacles', 'transforms', b'transforms'] - def ClearField(self, field_name: typing.Literal['obstacles', b'obstacles', 'transforms', b'transforms']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___WorldState = WorldState +Global___WorldState: _TypeAlias = WorldState -@typing.final -class ActuatorStatus(google.protobuf.message.Message): +@_typing.final +class ActuatorStatus(_message.Message): """ActuatorStatus is a generic status for resources that only need to return actuator status.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IS_MOVING_FIELD_NUMBER: builtins.int - is_moving: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + IS_MOVING_FIELD_NUMBER: _builtins.int + is_moving: _builtins.bool - def __init__(self, *, is_moving: builtins.bool=...) -> None: + def __init__(self, *, is_moving: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_moving', b'is_moving'] - def ClearField(self, field_name: typing.Literal['is_moving', b'is_moving']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ActuatorStatus = ActuatorStatus +Global___ActuatorStatus: _TypeAlias = ActuatorStatus -@typing.final -class ResponseMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CAPTURED_AT_FIELD_NUMBER: builtins.int +@_typing.final +class ResponseMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CAPTURED_AT_FIELD_NUMBER: _builtins.int - @property - def captured_at(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def captured_at(self) -> _timestamp_pb2.Timestamp: """captured_at is the time at which the resource as close as physically possible, captured the data in the response. Note: If correlating between other resources, be sure that the means of measuring the capture are similar enough such that comparison can be made between them. """ - def __init__(self, *, captured_at: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, captured_at: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_captured_at', b'_captured_at', 'captured_at', b'captured_at'] - def HasField(self, field_name: typing.Literal['_captured_at', b'_captured_at', 'captured_at', b'captured_at']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_captured_at', b'_captured_at', 'captured_at', b'captured_at'] - def ClearField(self, field_name: typing.Literal['_captured_at', b'_captured_at', 'captured_at', b'captured_at']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__captured_at: _TypeAlias = _typing.Literal['captured_at'] + _WhichOneofArgType__captured_at: _TypeAlias = _typing.Literal['_captured_at', b'_captured_at'] - def WhichOneof(self, oneof_group: typing.Literal['_captured_at', b'_captured_at']) -> typing.Literal['captured_at'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__captured_at) -> _WhichOneofReturnType__captured_at | None: ... -global___ResponseMetadata = ResponseMetadata +Global___ResponseMetadata: _TypeAlias = ResponseMetadata -@typing.final -class DoCommandRequest(google.protobuf.message.Message): +@_typing.final +class DoCommandRequest(_message.Message): """DoCommandRequest represents a generic DoCommand input""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - COMMAND_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + COMMAND_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def command(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def command(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., command: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., command: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['command', b'command'] - def HasField(self, field_name: typing.Literal['command', b'command']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['command', b'command', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['command', b'command', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DoCommandRequest = DoCommandRequest +Global___DoCommandRequest: _TypeAlias = DoCommandRequest -@typing.final -class DoCommandResponse(google.protobuf.message.Message): +@_typing.final +class DoCommandResponse(_message.Message): """DoCommandResponse represents a generic DoCommand output""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESULT_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + RESULT_FIELD_NUMBER: _builtins.int - @property - def result(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def result(self) -> _struct_pb2.Struct: ... - def __init__(self, *, result: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, result: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['result', b'result'] - def HasField(self, field_name: typing.Literal['result', b'result']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['result', b'result'] - def ClearField(self, field_name: typing.Literal['result', b'result']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DoCommandResponse = DoCommandResponse +Global___DoCommandResponse: _TypeAlias = DoCommandResponse -@typing.final -class GetKinematicsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetKinematicsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'The component name' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetKinematicsRequest = GetKinematicsRequest +Global___GetKinematicsRequest: _TypeAlias = GetKinematicsRequest -@typing.final -class GetKinematicsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetKinematicsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class MeshesByUrdfFilepathEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class MeshesByUrdfFilepathEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> global___Mesh: + @_builtins.property + def value(self) -> Global___Mesh: ... - def __init__(self, *, key: builtins.str=..., value: global___Mesh | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: Global___Mesh | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - FORMAT_FIELD_NUMBER: builtins.int - KINEMATICS_DATA_FIELD_NUMBER: builtins.int - MESHES_BY_URDF_FILEPATH_FIELD_NUMBER: builtins.int - format: global___KinematicsFileFormat.ValueType + FORMAT_FIELD_NUMBER: _builtins.int + KINEMATICS_DATA_FIELD_NUMBER: _builtins.int + MESHES_BY_URDF_FILEPATH_FIELD_NUMBER: _builtins.int + format: Global___KinematicsFileFormat.ValueType 'The kinematics of the component, in either URDF format or in Viam’s kinematic parameter format (spatial vector algebra)\n https://docs.viam.com/internals/kinematic-chain-config/#kinematic-parameters\n ' - kinematics_data: builtins.bytes + kinematics_data: _builtins.bytes 'The byte contents of the file' - @property - def meshes_by_urdf_filepath(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Mesh]: + @_builtins.property + def meshes_by_urdf_filepath(self) -> _containers.MessageMap[_builtins.str, Global___Mesh]: """Map of URDF mesh file paths to mesh data""" - def __init__(self, *, format: global___KinematicsFileFormat.ValueType=..., kinematics_data: builtins.bytes=..., meshes_by_urdf_filepath: collections.abc.Mapping[builtins.str, global___Mesh] | None=...) -> None: + def __init__(self, *, format: Global___KinematicsFileFormat.ValueType=..., kinematics_data: _builtins.bytes=..., meshes_by_urdf_filepath: _abc.Mapping[_builtins.str, Global___Mesh] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['format', b'format', 'kinematics_data', b'kinematics_data', 'meshes_by_urdf_filepath', b'meshes_by_urdf_filepath'] - def ClearField(self, field_name: typing.Literal['format', b'format', 'kinematics_data', b'kinematics_data', 'meshes_by_urdf_filepath', b'meshes_by_urdf_filepath']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetKinematicsResponse = GetKinematicsResponse +Global___GetKinematicsResponse: _TypeAlias = GetKinematicsResponse -@typing.final -class GetGeometriesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetGeometriesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'The component name' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetGeometriesRequest = GetGeometriesRequest +Global___GetGeometriesRequest: _TypeAlias = GetGeometriesRequest -@typing.final -class GetGeometriesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - GEOMETRIES_FIELD_NUMBER: builtins.int +@_typing.final +class GetGeometriesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + GEOMETRIES_FIELD_NUMBER: _builtins.int - @property - def geometries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Geometry]: + @_builtins.property + def geometries(self) -> _containers.RepeatedCompositeFieldContainer[Global___Geometry]: """All geometries associated with the component, in their current configuration, in the frame of that component.""" - def __init__(self, *, geometries: collections.abc.Iterable[global___Geometry] | None=...) -> None: + def __init__(self, *, geometries: _abc.Iterable[Global___Geometry] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['geometries', b'geometries'] - def ClearField(self, field_name: typing.Literal['geometries', b'geometries']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetGeometriesResponse = GetGeometriesResponse +Global___GetGeometriesResponse: _TypeAlias = GetGeometriesResponse -@typing.final -class Get3DModelsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class Get3DModelsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'The component name' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Get3DModelsRequest = Get3DModelsRequest +Global___Get3DModelsRequest: _TypeAlias = Get3DModelsRequest -@typing.final -class Get3DModelsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Get3DModelsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class ModelsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class ModelsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> global___Mesh: + @_builtins.property + def value(self) -> Global___Mesh: ... - def __init__(self, *, key: builtins.str=..., value: global___Mesh | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: Global___Mesh | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - MODELS_FIELD_NUMBER: builtins.int + MODELS_FIELD_NUMBER: _builtins.int - @property - def models(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Mesh]: + @_builtins.property + def models(self) -> _containers.MessageMap[_builtins.str, Global___Mesh]: """the 3D models associated with the component""" - def __init__(self, *, models: collections.abc.Mapping[builtins.str, global___Mesh] | None=...) -> None: + def __init__(self, *, models: _abc.Mapping[_builtins.str, Global___Mesh] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['models', b'models'] - def ClearField(self, field_name: typing.Literal['models', b'models']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Get3DModelsResponse = Get3DModelsResponse +Global___Get3DModelsResponse: _TypeAlias = Get3DModelsResponse -@typing.final -class GetReadingsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetReadingsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetReadingsRequest = GetReadingsRequest +Global___GetReadingsRequest: _TypeAlias = GetReadingsRequest -@typing.final -class GetReadingsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetReadingsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class ReadingsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class ReadingsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> google.protobuf.struct_pb2.Value: + @_builtins.property + def value(self) -> _struct_pb2.Value: ... - def __init__(self, *, key: builtins.str=..., value: google.protobuf.struct_pb2.Value | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _struct_pb2.Value | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - READINGS_FIELD_NUMBER: builtins.int + READINGS_FIELD_NUMBER: _builtins.int - @property - def readings(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: + @_builtins.property + def readings(self) -> _containers.MessageMap[_builtins.str, _struct_pb2.Value]: ... - def __init__(self, *, readings: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None=...) -> None: + def __init__(self, *, readings: _abc.Mapping[_builtins.str, _struct_pb2.Value] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['readings', b'readings'] - def ClearField(self, field_name: typing.Literal['readings', b'readings']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetReadingsResponse = GetReadingsResponse +Global___GetReadingsResponse: _TypeAlias = GetReadingsResponse -@typing.final -class LogEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HOST_FIELD_NUMBER: builtins.int - LEVEL_FIELD_NUMBER: builtins.int - TIME_FIELD_NUMBER: builtins.int - LOGGER_NAME_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - CALLER_FIELD_NUMBER: builtins.int - STACK_FIELD_NUMBER: builtins.int - FIELDS_FIELD_NUMBER: builtins.int - host: builtins.str - level: builtins.str - logger_name: builtins.str - message: builtins.str - stack: builtins.str +@_typing.final +class LogEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + HOST_FIELD_NUMBER: _builtins.int + LEVEL_FIELD_NUMBER: _builtins.int + TIME_FIELD_NUMBER: _builtins.int + LOGGER_NAME_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + CALLER_FIELD_NUMBER: _builtins.int + STACK_FIELD_NUMBER: _builtins.int + FIELDS_FIELD_NUMBER: _builtins.int + host: _builtins.str + level: _builtins.str + logger_name: _builtins.str + message: _builtins.str + stack: _builtins.str - @property - def time(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time(self) -> _timestamp_pb2.Timestamp: ... - @property - def caller(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def caller(self) -> _struct_pb2.Struct: ... - @property - def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.struct_pb2.Struct]: + @_builtins.property + def fields(self) -> _containers.RepeatedCompositeFieldContainer[_struct_pb2.Struct]: ... - def __init__(self, *, host: builtins.str=..., level: builtins.str=..., time: google.protobuf.timestamp_pb2.Timestamp | None=..., logger_name: builtins.str=..., message: builtins.str=..., caller: google.protobuf.struct_pb2.Struct | None=..., stack: builtins.str=..., fields: collections.abc.Iterable[google.protobuf.struct_pb2.Struct] | None=...) -> None: + def __init__(self, *, host: _builtins.str=..., level: _builtins.str=..., time: _timestamp_pb2.Timestamp | None=..., logger_name: _builtins.str=..., message: _builtins.str=..., caller: _struct_pb2.Struct | None=..., stack: _builtins.str=..., fields: _abc.Iterable[_struct_pb2.Struct] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['caller', b'caller', 'time', b'time'] - def HasField(self, field_name: typing.Literal['caller', b'caller', 'time', b'time']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['caller', b'caller', 'fields', b'fields', 'host', b'host', 'level', b'level', 'logger_name', b'logger_name', 'message', b'message', 'stack', b'stack', 'time', b'time'] - def ClearField(self, field_name: typing.Literal['caller', b'caller', 'fields', b'fields', 'host', b'host', 'level', b'level', 'logger_name', b'logger_name', 'message', b'message', 'stack', b'stack', 'time', b'time']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LogEntry = LogEntry +Global___LogEntry: _TypeAlias = LogEntry -@typing.final -class AudioInfo(google.protobuf.message.Message): +@_typing.final +class AudioInfo(_message.Message): """Information about an audio stream or device.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CODEC_FIELD_NUMBER: builtins.int - SAMPLE_RATE_HZ_FIELD_NUMBER: builtins.int - NUM_CHANNELS_FIELD_NUMBER: builtins.int - codec: builtins.str + DESCRIPTOR: _descriptor.Descriptor + CODEC_FIELD_NUMBER: _builtins.int + SAMPLE_RATE_HZ_FIELD_NUMBER: _builtins.int + NUM_CHANNELS_FIELD_NUMBER: _builtins.int + codec: _builtins.str 'Audio codec used for the stream or device (e.g., "pcm16", "pcm32float", "mp3")' - sample_rate_hz: builtins.int + sample_rate_hz: _builtins.int 'Sample rate of the audio in Hz' - num_channels: builtins.int + num_channels: _builtins.int 'Number of audio channels in the recording or playback' - def __init__(self, *, codec: builtins.str=..., sample_rate_hz: builtins.int=..., num_channels: builtins.int=...) -> None: + def __init__(self, *, codec: _builtins.str=..., sample_rate_hz: _builtins.int=..., num_channels: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['codec', b'codec', 'num_channels', b'num_channels', 'sample_rate_hz', b'sample_rate_hz'] - def ClearField(self, field_name: typing.Literal['codec', b'codec', 'num_channels', b'num_channels', 'sample_rate_hz', b'sample_rate_hz']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AudioInfo = AudioInfo +Global___AudioInfo: _TypeAlias = AudioInfo -@typing.final -class GetPropertiesRequest(google.protobuf.message.Message): +@_typing.final +class GetPropertiesRequest(_message.Message): """Shared properties for AudioIn and AudioOut components.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesRequest = GetPropertiesRequest +Global___GetPropertiesRequest: _TypeAlias = GetPropertiesRequest -@typing.final -class GetPropertiesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SUPPORTED_CODECS_FIELD_NUMBER: builtins.int - SAMPLE_RATE_HZ_FIELD_NUMBER: builtins.int - NUM_CHANNELS_FIELD_NUMBER: builtins.int - sample_rate_hz: builtins.int +@_typing.final +class GetPropertiesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SUPPORTED_CODECS_FIELD_NUMBER: _builtins.int + SAMPLE_RATE_HZ_FIELD_NUMBER: _builtins.int + NUM_CHANNELS_FIELD_NUMBER: _builtins.int + sample_rate_hz: _builtins.int 'current sample rate in Hz' - num_channels: builtins.int + num_channels: _builtins.int 'Maximum number of audio channels supported (e.g., 1 for mono, 2 for stereo)' - @property - def supported_codecs(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def supported_codecs(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """List of audio codecs supported by the system (e.g., "mp3", "pcm16", "pcm32float")""" - def __init__(self, *, supported_codecs: collections.abc.Iterable[builtins.str] | None=..., sample_rate_hz: builtins.int=..., num_channels: builtins.int=...) -> None: + def __init__(self, *, supported_codecs: _abc.Iterable[_builtins.str] | None=..., sample_rate_hz: _builtins.int=..., num_channels: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['num_channels', b'num_channels', 'sample_rate_hz', b'sample_rate_hz', 'supported_codecs', b'supported_codecs'] - def ClearField(self, field_name: typing.Literal['num_channels', b'num_channels', 'sample_rate_hz', b'sample_rate_hz', 'supported_codecs', b'supported_codecs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesResponse = GetPropertiesResponse -SAFETY_HEARTBEAT_MONITORED_FIELD_NUMBER: builtins.int -safety_heartbeat_monitored: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MethodOptions, builtins.bool] +Global___GetPropertiesResponse: _TypeAlias = GetPropertiesResponse +SAFETY_HEARTBEAT_MONITORED_FIELD_NUMBER: _builtins.int +safety_heartbeat_monitored: _extension_dict._ExtensionFieldDescriptor[_descriptor_pb2.MethodOptions, _builtins.bool] 'safety_heartbeat_monitored is used on methods to signify that if a session is in use\nand the session was the last to call this method, the resource associated with the\nmethod will be stopped.\n' \ No newline at end of file diff --git a/src/viam/gen/component/arm/v1/arm_pb2.py b/src/viam/gen/component/arm/v1/arm_pb2.py index 84a37b9aa4..8310bb4af1 100644 --- a/src/viam/gen/component/arm/v1/arm_pb2.py +++ b/src/viam/gen/component/arm/v1/arm_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/arm/v1/arm.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/arm/v1/arm.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/arm/v1/arm_pb2.pyi b/src/viam/gen/component/arm/v1/arm_pb2.pyi index d16a9462cd..f52b6e95d4 100644 --- a/src/viam/gen/component/arm/v1/arm_pb2.pyi +++ b/src/viam/gen/component/arm/v1/arm_pb2.pyi @@ -2,353 +2,387 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from .... import common -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class GetEndPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class GetEndPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of an arm' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetEndPositionRequest = GetEndPositionRequest +Global___GetEndPositionRequest: _TypeAlias = GetEndPositionRequest -@typing.final -class GetEndPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSE_FIELD_NUMBER: builtins.int +@_typing.final +class GetEndPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSE_FIELD_NUMBER: _builtins.int - @property - def pose(self) -> common.v1.common_pb2.Pose: + @_builtins.property + def pose(self) -> _common_pb2.Pose: """Returns 6d pose of the end effector relative to the base, represented by X,Y,Z coordinates which express millimeters and theta, ox, oy, oz coordinates which express an orientation vector """ - def __init__(self, *, pose: common.v1.common_pb2.Pose | None=...) -> None: + def __init__(self, *, pose: _common_pb2.Pose | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def HasField(self, field_name: typing.Literal['pose', b'pose']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def ClearField(self, field_name: typing.Literal['pose', b'pose']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetEndPositionResponse = GetEndPositionResponse +Global___GetEndPositionResponse: _TypeAlias = GetEndPositionResponse -@typing.final -class JointPositions(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUES_FIELD_NUMBER: builtins.int +@_typing.final +class JointPositions(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VALUES_FIELD_NUMBER: _builtins.int - @property - def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def values(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: """A list of joint positions. Rotations values are in degrees, translational values in mm. There should be 1 entry in the list per joint DOF, ordered spatially from the base toward the end effector of the arm """ - def __init__(self, *, values: collections.abc.Iterable[builtins.float] | None=...) -> None: + def __init__(self, *, values: _abc.Iterable[_builtins.float] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['values', b'values'] - def ClearField(self, field_name: typing.Literal['values', b'values']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___JointPositions = JointPositions +Global___JointPositions: _TypeAlias = JointPositions -@typing.final -class GetJointPositionsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetJointPositionsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of an arm' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetJointPositionsRequest = GetJointPositionsRequest +Global___GetJointPositionsRequest: _TypeAlias = GetJointPositionsRequest -@typing.final -class GetJointPositionsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSITIONS_FIELD_NUMBER: builtins.int +@_typing.final +class GetJointPositionsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSITIONS_FIELD_NUMBER: _builtins.int - @property - def positions(self) -> global___JointPositions: + @_builtins.property + def positions(self) -> Global___JointPositions: """a list JointPositions""" - def __init__(self, *, positions: global___JointPositions | None=...) -> None: + def __init__(self, *, positions: Global___JointPositions | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['positions', b'positions'] - def HasField(self, field_name: typing.Literal['positions', b'positions']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['positions', b'positions'] - def ClearField(self, field_name: typing.Literal['positions', b'positions']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetJointPositionsResponse = GetJointPositionsResponse +Global___GetJointPositionsResponse: _TypeAlias = GetJointPositionsResponse -@typing.final -class MoveToPositionRequest(google.protobuf.message.Message): +@_typing.final +class MoveToPositionRequest(_message.Message): """Moves an arm to the specified pose that is within the reference frame of the arm. Move request in Motion API has the same behavior except that it performs obstacle avoidance when a world_state message is specified. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - TO_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + TO_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of an arm' - @property - def to(self) -> common.v1.common_pb2.Pose: + @_builtins.property + def to(self) -> _common_pb2.Pose: """The destination to move the arm to; this is from the reference frame of the arm.""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., to: common.v1.common_pb2.Pose | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., to: _common_pb2.Pose | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'to', b'to'] - def HasField(self, field_name: typing.Literal['extra', b'extra', 'to', b'to']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'to', b'to'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'to', b'to']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MoveToPositionRequest = MoveToPositionRequest +Global___MoveToPositionRequest: _TypeAlias = MoveToPositionRequest -@typing.final -class MoveToPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class MoveToPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___MoveToPositionResponse = MoveToPositionResponse +Global___MoveToPositionResponse: _TypeAlias = MoveToPositionResponse -@typing.final -class MoveToJointPositionsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - POSITIONS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class MoveToJointPositionsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + POSITIONS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of an arm' - @property - def positions(self) -> global___JointPositions: + @_builtins.property + def positions(self) -> Global___JointPositions: """A list of joint positions There should be 1 entry in the list per joint DOF, ordered spatially from the base toward the end effector """ - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., positions: global___JointPositions | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., positions: Global___JointPositions | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'positions', b'positions'] - def HasField(self, field_name: typing.Literal['extra', b'extra', 'positions', b'positions']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'positions', b'positions'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'positions', b'positions']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MoveToJointPositionsRequest = MoveToJointPositionsRequest +Global___MoveToJointPositionsRequest: _TypeAlias = MoveToJointPositionsRequest -@typing.final -class MoveToJointPositionsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class MoveToJointPositionsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___MoveToJointPositionsResponse = MoveToJointPositionsResponse +Global___MoveToJointPositionsResponse: _TypeAlias = MoveToJointPositionsResponse -@typing.final -class MoveThroughJointPositionsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - POSITIONS_FIELD_NUMBER: builtins.int - OPTIONS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class MoveThroughJointPositionsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + POSITIONS_FIELD_NUMBER: _builtins.int + OPTIONS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of an arm' - @property - def positions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___JointPositions]: + @_builtins.property + def positions(self) -> _containers.RepeatedCompositeFieldContainer[Global___JointPositions]: """A list of joint positions which will be moved to in the order they are specified""" - @property - def options(self) -> global___MoveOptions: + @_builtins.property + def options(self) -> Global___MoveOptions: """optional specifications to be obeyed during the motion""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., positions: collections.abc.Iterable[global___JointPositions] | None=..., options: global___MoveOptions | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., positions: _abc.Iterable[Global___JointPositions] | None=..., options: Global___MoveOptions | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_options', b'_options', 'extra', b'extra', 'options', b'options'] - def HasField(self, field_name: typing.Literal['_options', b'_options', 'extra', b'extra', 'options', b'options']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_options', b'_options', 'extra', b'extra', 'name', b'name', 'options', b'options', 'positions', b'positions'] - def ClearField(self, field_name: typing.Literal['_options', b'_options', 'extra', b'extra', 'name', b'name', 'options', b'options', 'positions', b'positions']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__options: _TypeAlias = _typing.Literal['options'] + _WhichOneofArgType__options: _TypeAlias = _typing.Literal['_options', b'_options'] - def WhichOneof(self, oneof_group: typing.Literal['_options', b'_options']) -> typing.Literal['options'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__options) -> _WhichOneofReturnType__options | None: ... -global___MoveThroughJointPositionsRequest = MoveThroughJointPositionsRequest +Global___MoveThroughJointPositionsRequest: _TypeAlias = MoveThroughJointPositionsRequest -@typing.final -class MoveThroughJointPositionsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class MoveThroughJointPositionsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___MoveThroughJointPositionsResponse = MoveThroughJointPositionsResponse +Global___MoveThroughJointPositionsResponse: _TypeAlias = MoveThroughJointPositionsResponse -@typing.final -class StopRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class StopRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of an arm' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopRequest = StopRequest +Global___StopRequest: _TypeAlias = StopRequest -@typing.final -class StopResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StopResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___StopResponse = StopResponse +Global___StopResponse: _TypeAlias = StopResponse -@typing.final -class Status(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - END_POSITION_FIELD_NUMBER: builtins.int - JOINT_POSITIONS_FIELD_NUMBER: builtins.int - IS_MOVING_FIELD_NUMBER: builtins.int - is_moving: builtins.bool +@_typing.final +class Status(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + END_POSITION_FIELD_NUMBER: _builtins.int + JOINT_POSITIONS_FIELD_NUMBER: _builtins.int + IS_MOVING_FIELD_NUMBER: _builtins.int + is_moving: _builtins.bool - @property - def end_position(self) -> common.v1.common_pb2.Pose: + @_builtins.property + def end_position(self) -> _common_pb2.Pose: ... - @property - def joint_positions(self) -> global___JointPositions: + @_builtins.property + def joint_positions(self) -> Global___JointPositions: ... - def __init__(self, *, end_position: common.v1.common_pb2.Pose | None=..., joint_positions: global___JointPositions | None=..., is_moving: builtins.bool=...) -> None: + def __init__(self, *, end_position: _common_pb2.Pose | None=..., joint_positions: Global___JointPositions | None=..., is_moving: _builtins.bool=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['end_position', b'end_position', 'joint_positions', b'joint_positions'] - def HasField(self, field_name: typing.Literal['end_position', b'end_position', 'joint_positions', b'joint_positions']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['end_position', b'end_position', 'is_moving', b'is_moving', 'joint_positions', b'joint_positions'] - def ClearField(self, field_name: typing.Literal['end_position', b'end_position', 'is_moving', b'is_moving', 'joint_positions', b'joint_positions']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Status = Status +Global___Status: _TypeAlias = Status -@typing.final -class IsMovingRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class IsMovingRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingRequest = IsMovingRequest +Global___IsMovingRequest: _TypeAlias = IsMovingRequest -@typing.final -class IsMovingResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IS_MOVING_FIELD_NUMBER: builtins.int - is_moving: builtins.bool +@_typing.final +class IsMovingResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + IS_MOVING_FIELD_NUMBER: _builtins.int + is_moving: _builtins.bool - def __init__(self, *, is_moving: builtins.bool=...) -> None: + def __init__(self, *, is_moving: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_moving', b'is_moving'] - def ClearField(self, field_name: typing.Literal['is_moving', b'is_moving']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingResponse = IsMovingResponse +Global___IsMovingResponse: _TypeAlias = IsMovingResponse -@typing.final -class MoveOptions(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MAX_VEL_DEGS_PER_SEC_FIELD_NUMBER: builtins.int - MAX_ACC_DEGS_PER_SEC2_FIELD_NUMBER: builtins.int - MAX_VEL_DEGS_PER_SEC_JOINTS_FIELD_NUMBER: builtins.int - MAX_ACC_DEGS_PER_SEC2_JOINTS_FIELD_NUMBER: builtins.int - max_vel_degs_per_sec: builtins.float +@_typing.final +class MoveOptions(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MAX_VEL_DEGS_PER_SEC_FIELD_NUMBER: _builtins.int + MAX_ACC_DEGS_PER_SEC2_FIELD_NUMBER: _builtins.int + MAX_VEL_DEGS_PER_SEC_JOINTS_FIELD_NUMBER: _builtins.int + MAX_ACC_DEGS_PER_SEC2_JOINTS_FIELD_NUMBER: _builtins.int + max_vel_degs_per_sec: _builtins.float 'Maximum allowable velocity of an arm joint, in degrees per second.\n Ignored when max_vel_degs_per_sec_joints is set.\n ' - max_acc_degs_per_sec2: builtins.float + max_acc_degs_per_sec2: _builtins.float 'Maximum allowable acceleration of an arm joint, in degrees per second squared.\n ignored when max_acc_degs_per_sec2_joints is set.\n ' - @property - def max_vel_degs_per_sec_joints(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def max_vel_degs_per_sec_joints(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: """Per-joint maximum velocity in degrees per second.""" - @property - def max_acc_degs_per_sec2_joints(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def max_acc_degs_per_sec2_joints(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: """Per-joint maximum acceleration in degrees per second squared.""" - def __init__(self, *, max_vel_degs_per_sec: builtins.float | None=..., max_acc_degs_per_sec2: builtins.float | None=..., max_vel_degs_per_sec_joints: collections.abc.Iterable[builtins.float] | None=..., max_acc_degs_per_sec2_joints: collections.abc.Iterable[builtins.float] | None=...) -> None: + def __init__(self, *, max_vel_degs_per_sec: _builtins.float | None=..., max_acc_degs_per_sec2: _builtins.float | None=..., max_vel_degs_per_sec_joints: _abc.Iterable[_builtins.float] | None=..., max_acc_degs_per_sec2_joints: _abc.Iterable[_builtins.float] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_max_acc_degs_per_sec2', b'_max_acc_degs_per_sec2', '_max_vel_degs_per_sec', b'_max_vel_degs_per_sec', 'max_acc_degs_per_sec2', b'max_acc_degs_per_sec2', 'max_vel_degs_per_sec', b'max_vel_degs_per_sec'] - def HasField(self, field_name: typing.Literal['_max_acc_degs_per_sec2', b'_max_acc_degs_per_sec2', '_max_vel_degs_per_sec', b'_max_vel_degs_per_sec', 'max_acc_degs_per_sec2', b'max_acc_degs_per_sec2', 'max_vel_degs_per_sec', b'max_vel_degs_per_sec']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_max_acc_degs_per_sec2', b'_max_acc_degs_per_sec2', '_max_vel_degs_per_sec', b'_max_vel_degs_per_sec', 'max_acc_degs_per_sec2', b'max_acc_degs_per_sec2', 'max_acc_degs_per_sec2_joints', b'max_acc_degs_per_sec2_joints', 'max_vel_degs_per_sec', b'max_vel_degs_per_sec', 'max_vel_degs_per_sec_joints', b'max_vel_degs_per_sec_joints'] - def ClearField(self, field_name: typing.Literal['_max_acc_degs_per_sec2', b'_max_acc_degs_per_sec2', '_max_vel_degs_per_sec', b'_max_vel_degs_per_sec', 'max_acc_degs_per_sec2', b'max_acc_degs_per_sec2', 'max_acc_degs_per_sec2_joints', b'max_acc_degs_per_sec2_joints', 'max_vel_degs_per_sec', b'max_vel_degs_per_sec', 'max_vel_degs_per_sec_joints', b'max_vel_degs_per_sec_joints']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__max_acc_degs_per_sec2: _TypeAlias = _typing.Literal['max_acc_degs_per_sec2'] + _WhichOneofArgType__max_acc_degs_per_sec2: _TypeAlias = _typing.Literal['_max_acc_degs_per_sec2', b'_max_acc_degs_per_sec2'] + _WhichOneofReturnType__max_vel_degs_per_sec: _TypeAlias = _typing.Literal['max_vel_degs_per_sec'] + _WhichOneofArgType__max_vel_degs_per_sec: _TypeAlias = _typing.Literal['_max_vel_degs_per_sec', b'_max_vel_degs_per_sec'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_max_acc_degs_per_sec2', b'_max_acc_degs_per_sec2']) -> typing.Literal['max_acc_degs_per_sec2'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__max_acc_degs_per_sec2) -> _WhichOneofReturnType__max_acc_degs_per_sec2 | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_max_vel_degs_per_sec', b'_max_vel_degs_per_sec']) -> typing.Literal['max_vel_degs_per_sec'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__max_vel_degs_per_sec) -> _WhichOneofReturnType__max_vel_degs_per_sec | None: ... -global___MoveOptions = MoveOptions \ No newline at end of file +Global___MoveOptions: _TypeAlias = MoveOptions \ No newline at end of file diff --git a/src/viam/gen/component/audioin/v1/audioin_pb2.py b/src/viam/gen/component/audioin/v1/audioin_pb2.py index 687d604c01..0f2bbf8827 100644 --- a/src/viam/gen/component/audioin/v1/audioin_pb2.py +++ b/src/viam/gen/component/audioin/v1/audioin_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/audioin/v1/audioin.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/audioin/v1/audioin.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/audioin/v1/audioin_pb2.pyi b/src/viam/gen/component/audioin/v1/audioin_pb2.pyi index e9cc39e32e..8187fa3333 100644 --- a/src/viam/gen/component/audioin/v1/audioin_pb2.pyi +++ b/src/viam/gen/component/audioin/v1/audioin_pb2.pyi @@ -2,93 +2,104 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -from .... import common -import google.protobuf.descriptor -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing.final -class GetAudioRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - DURATION_SECONDS_FIELD_NUMBER: builtins.int - CODEC_FIELD_NUMBER: builtins.int - REQUEST_ID_FIELD_NUMBER: builtins.int - PREVIOUS_TIMESTAMP_NANOSECONDS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - duration_seconds: builtins.float +@_typing.final +class GetAudioRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + DURATION_SECONDS_FIELD_NUMBER: _builtins.int + CODEC_FIELD_NUMBER: _builtins.int + REQUEST_ID_FIELD_NUMBER: _builtins.int + PREVIOUS_TIMESTAMP_NANOSECONDS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + duration_seconds: _builtins.float 'Desired duration of audio stream\n If not set or set to 0, the stream is infinite\n ' - codec: builtins.str + codec: _builtins.str 'Requested audio codec for the response (e.g., "mp3", "pcm16")' - request_id: builtins.str + request_id: _builtins.str "To match a request to it's responses" - previous_timestamp_nanoseconds: builtins.int + previous_timestamp_nanoseconds: _builtins.int 'Timestamp of the previous audio chunk, in nanoseconds, used for resuming and continuity.' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., duration_seconds: builtins.float=..., codec: builtins.str=..., request_id: builtins.str=..., previous_timestamp_nanoseconds: builtins.int=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., duration_seconds: _builtins.float=..., codec: _builtins.str=..., request_id: _builtins.str=..., previous_timestamp_nanoseconds: _builtins.int=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['codec', b'codec', 'duration_seconds', b'duration_seconds', 'extra', b'extra', 'name', b'name', 'previous_timestamp_nanoseconds', b'previous_timestamp_nanoseconds', 'request_id', b'request_id'] - def ClearField(self, field_name: typing.Literal['codec', b'codec', 'duration_seconds', b'duration_seconds', 'extra', b'extra', 'name', b'name', 'previous_timestamp_nanoseconds', b'previous_timestamp_nanoseconds', 'request_id', b'request_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAudioRequest = GetAudioRequest +Global___GetAudioRequest: _TypeAlias = GetAudioRequest -@typing.final -class GetAudioResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AUDIO_FIELD_NUMBER: builtins.int - REQUEST_ID_FIELD_NUMBER: builtins.int - request_id: builtins.str +@_typing.final +class GetAudioResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AUDIO_FIELD_NUMBER: _builtins.int + REQUEST_ID_FIELD_NUMBER: _builtins.int + request_id: _builtins.str - @property - def audio(self) -> global___AudioChunk: + @_builtins.property + def audio(self) -> Global___AudioChunk: ... - def __init__(self, *, audio: global___AudioChunk | None=..., request_id: builtins.str=...) -> None: + def __init__(self, *, audio: Global___AudioChunk | None=..., request_id: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['audio', b'audio'] - def HasField(self, field_name: typing.Literal['audio', b'audio']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['audio', b'audio', 'request_id', b'request_id'] - def ClearField(self, field_name: typing.Literal['audio', b'audio', 'request_id', b'request_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAudioResponse = GetAudioResponse +Global___GetAudioResponse: _TypeAlias = GetAudioResponse -@typing.final -class AudioChunk(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AUDIO_DATA_FIELD_NUMBER: builtins.int - AUDIO_INFO_FIELD_NUMBER: builtins.int - START_TIMESTAMP_NANOSECONDS_FIELD_NUMBER: builtins.int - END_TIMESTAMP_NANOSECONDS_FIELD_NUMBER: builtins.int - SEQUENCE_FIELD_NUMBER: builtins.int - audio_data: builtins.bytes +@_typing.final +class AudioChunk(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AUDIO_DATA_FIELD_NUMBER: _builtins.int + AUDIO_INFO_FIELD_NUMBER: _builtins.int + START_TIMESTAMP_NANOSECONDS_FIELD_NUMBER: _builtins.int + END_TIMESTAMP_NANOSECONDS_FIELD_NUMBER: _builtins.int + SEQUENCE_FIELD_NUMBER: _builtins.int + audio_data: _builtins.bytes 'Audio data for this chunk, encoded according to the requested codec.' - start_timestamp_nanoseconds: builtins.int - end_timestamp_nanoseconds: builtins.int - sequence: builtins.int + start_timestamp_nanoseconds: _builtins.int + end_timestamp_nanoseconds: _builtins.int + sequence: _builtins.int 'Sequential chunk number' - @property - def audio_info(self) -> common.v1.common_pb2.AudioInfo: + @_builtins.property + def audio_info(self) -> _common_pb2.AudioInfo: """Info about the audio stream for this chunk""" - def __init__(self, *, audio_data: builtins.bytes=..., audio_info: common.v1.common_pb2.AudioInfo | None=..., start_timestamp_nanoseconds: builtins.int=..., end_timestamp_nanoseconds: builtins.int=..., sequence: builtins.int=...) -> None: + def __init__(self, *, audio_data: _builtins.bytes=..., audio_info: _common_pb2.AudioInfo | None=..., start_timestamp_nanoseconds: _builtins.int=..., end_timestamp_nanoseconds: _builtins.int=..., sequence: _builtins.int=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['audio_info', b'audio_info'] - def HasField(self, field_name: typing.Literal['audio_info', b'audio_info']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['audio_data', b'audio_data', 'audio_info', b'audio_info', 'end_timestamp_nanoseconds', b'end_timestamp_nanoseconds', 'sequence', b'sequence', 'start_timestamp_nanoseconds', b'start_timestamp_nanoseconds'] - def ClearField(self, field_name: typing.Literal['audio_data', b'audio_data', 'audio_info', b'audio_info', 'end_timestamp_nanoseconds', b'end_timestamp_nanoseconds', 'sequence', b'sequence', 'start_timestamp_nanoseconds', b'start_timestamp_nanoseconds']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AudioChunk = AudioChunk \ No newline at end of file +Global___AudioChunk: _TypeAlias = AudioChunk \ No newline at end of file diff --git a/src/viam/gen/component/audioout/v1/audioout_pb2.py b/src/viam/gen/component/audioout/v1/audioout_pb2.py index 87e6156019..bc444852f3 100644 --- a/src/viam/gen/component/audioout/v1/audioout_pb2.py +++ b/src/viam/gen/component/audioout/v1/audioout_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/audioout/v1/audioout.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/audioout/v1/audioout.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/audioout/v1/audioout_pb2.pyi b/src/viam/gen/component/audioout/v1/audioout_pb2.pyi index 62bb648080..ee73e6291e 100644 --- a/src/viam/gen/component/audioout/v1/audioout_pb2.pyi +++ b/src/viam/gen/component/audioout/v1/audioout_pb2.pyi @@ -2,46 +2,53 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -from .... import common -import google.protobuf.descriptor -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class PlayRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - AUDIO_DATA_FIELD_NUMBER: builtins.int - AUDIO_INFO_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - audio_data: builtins.bytes - - @property - def audio_info(self) -> common.v1.common_pb2.AudioInfo: +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class PlayRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + AUDIO_DATA_FIELD_NUMBER: _builtins.int + AUDIO_INFO_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + audio_data: _builtins.bytes + + @_builtins.property + def audio_info(self) -> _common_pb2.AudioInfo: """Info describing the audio_data""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., audio_data: builtins.bytes=..., audio_info: common.v1.common_pb2.AudioInfo | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., audio_data: _builtins.bytes=..., audio_info: _common_pb2.AudioInfo | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['audio_info', b'audio_info', 'extra', b'extra'] - def HasField(self, field_name: typing.Literal['audio_info', b'audio_info', 'extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['audio_data', b'audio_data', 'audio_info', b'audio_info', 'extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['audio_data', b'audio_data', 'audio_info', b'audio_info', 'extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PlayRequest = PlayRequest +Global___PlayRequest: _TypeAlias = PlayRequest -@typing.final -class PlayResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class PlayResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___PlayResponse = PlayResponse \ No newline at end of file +Global___PlayResponse: _TypeAlias = PlayResponse \ No newline at end of file diff --git a/src/viam/gen/component/base/v1/base_pb2.py b/src/viam/gen/component/base/v1/base_pb2.py index a60a66ff92..a726a7254d 100644 --- a/src/viam/gen/component/base/v1/base_pb2.py +++ b/src/viam/gen/component/base/v1/base_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/base/v1/base.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/base/v1/base.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/base/v1/base_pb2.pyi b/src/viam/gen/component/base/v1/base_pb2.pyi index 2918d63ce3..e9defcc3f0 100644 --- a/src/viam/gen/component/base/v1/base_pb2.pyi +++ b/src/viam/gen/component/base/v1/base_pb2.pyi @@ -2,257 +2,277 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -from .... import common -import google.protobuf.descriptor -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class MoveStraightRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - DISTANCE_MM_FIELD_NUMBER: builtins.int - MM_PER_SEC_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class MoveStraightRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + DISTANCE_MM_FIELD_NUMBER: _builtins.int + MM_PER_SEC_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a base' - distance_mm: builtins.int + distance_mm: _builtins.int 'Desired travel distance in millimeters' - mm_per_sec: builtins.float + mm_per_sec: _builtins.float 'Desired travel velocity in millimeters/second' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., distance_mm: builtins.int=..., mm_per_sec: builtins.float=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., distance_mm: _builtins.int=..., mm_per_sec: _builtins.float=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['distance_mm', b'distance_mm', 'extra', b'extra', 'mm_per_sec', b'mm_per_sec', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['distance_mm', b'distance_mm', 'extra', b'extra', 'mm_per_sec', b'mm_per_sec', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MoveStraightRequest = MoveStraightRequest +Global___MoveStraightRequest: _TypeAlias = MoveStraightRequest -@typing.final -class MoveStraightResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class MoveStraightResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___MoveStraightResponse = MoveStraightResponse - -@typing.final -class SpinRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - ANGLE_DEG_FIELD_NUMBER: builtins.int - DEGS_PER_SEC_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___MoveStraightResponse: _TypeAlias = MoveStraightResponse + +@_typing.final +class SpinRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + ANGLE_DEG_FIELD_NUMBER: _builtins.int + DEGS_PER_SEC_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a base' - angle_deg: builtins.float + angle_deg: _builtins.float 'Desired angle' - degs_per_sec: builtins.float + degs_per_sec: _builtins.float 'Desired angular velocity' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., angle_deg: builtins.float=..., degs_per_sec: builtins.float=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., angle_deg: _builtins.float=..., degs_per_sec: _builtins.float=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['angle_deg', b'angle_deg', 'degs_per_sec', b'degs_per_sec', 'extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['angle_deg', b'angle_deg', 'degs_per_sec', b'degs_per_sec', 'extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SpinRequest = SpinRequest +Global___SpinRequest: _TypeAlias = SpinRequest -@typing.final -class SpinResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SpinResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SpinResponse = SpinResponse - -@typing.final -class StopRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___SpinResponse: _TypeAlias = SpinResponse + +@_typing.final +class StopRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a base' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopRequest = StopRequest +Global___StopRequest: _TypeAlias = StopRequest -@typing.final -class StopResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StopResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___StopResponse = StopResponse - -@typing.final -class SetPowerRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - LINEAR_FIELD_NUMBER: builtins.int - ANGULAR_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___StopResponse: _TypeAlias = StopResponse + +@_typing.final +class SetPowerRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + LINEAR_FIELD_NUMBER: _builtins.int + ANGULAR_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a base' - @property - def linear(self) -> common.v1.common_pb2.Vector3: + @_builtins.property + def linear(self) -> _common_pb2.Vector3: """Desired linear power percentage as -1 -> 1""" - @property - def angular(self) -> common.v1.common_pb2.Vector3: + @_builtins.property + def angular(self) -> _common_pb2.Vector3: """Desired angular power percentage % as -1 -> 1""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., linear: common.v1.common_pb2.Vector3 | None=..., angular: common.v1.common_pb2.Vector3 | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., linear: _common_pb2.Vector3 | None=..., angular: _common_pb2.Vector3 | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['angular', b'angular', 'extra', b'extra', 'linear', b'linear'] - def HasField(self, field_name: typing.Literal['angular', b'angular', 'extra', b'extra', 'linear', b'linear']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['angular', b'angular', 'extra', b'extra', 'linear', b'linear', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['angular', b'angular', 'extra', b'extra', 'linear', b'linear', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetPowerRequest = SetPowerRequest +Global___SetPowerRequest: _TypeAlias = SetPowerRequest -@typing.final -class SetPowerResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetPowerResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetPowerResponse = SetPowerResponse - -@typing.final -class SetVelocityRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - LINEAR_FIELD_NUMBER: builtins.int - ANGULAR_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___SetPowerResponse: _TypeAlias = SetPowerResponse + +@_typing.final +class SetVelocityRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + LINEAR_FIELD_NUMBER: _builtins.int + ANGULAR_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a base' - @property - def linear(self) -> common.v1.common_pb2.Vector3: + @_builtins.property + def linear(self) -> _common_pb2.Vector3: """Desired linear velocity in mm per second""" - @property - def angular(self) -> common.v1.common_pb2.Vector3: + @_builtins.property + def angular(self) -> _common_pb2.Vector3: """Desired angular velocity in degrees per second""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., linear: common.v1.common_pb2.Vector3 | None=..., angular: common.v1.common_pb2.Vector3 | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., linear: _common_pb2.Vector3 | None=..., angular: _common_pb2.Vector3 | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['angular', b'angular', 'extra', b'extra', 'linear', b'linear'] - def HasField(self, field_name: typing.Literal['angular', b'angular', 'extra', b'extra', 'linear', b'linear']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['angular', b'angular', 'extra', b'extra', 'linear', b'linear', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['angular', b'angular', 'extra', b'extra', 'linear', b'linear', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetVelocityRequest = SetVelocityRequest +Global___SetVelocityRequest: _TypeAlias = SetVelocityRequest -@typing.final -class SetVelocityResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetVelocityResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetVelocityResponse = SetVelocityResponse +Global___SetVelocityResponse: _TypeAlias = SetVelocityResponse -@typing.final -class IsMovingRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class IsMovingRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingRequest = IsMovingRequest +Global___IsMovingRequest: _TypeAlias = IsMovingRequest -@typing.final -class IsMovingResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IS_MOVING_FIELD_NUMBER: builtins.int - is_moving: builtins.bool +@_typing.final +class IsMovingResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + IS_MOVING_FIELD_NUMBER: _builtins.int + is_moving: _builtins.bool - def __init__(self, *, is_moving: builtins.bool=...) -> None: + def __init__(self, *, is_moving: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_moving', b'is_moving'] - def ClearField(self, field_name: typing.Literal['is_moving', b'is_moving']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingResponse = IsMovingResponse - -@typing.final -class GetPropertiesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___IsMovingResponse: _TypeAlias = IsMovingResponse + +@_typing.final +class GetPropertiesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the base' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesRequest = GetPropertiesRequest - -@typing.final -class GetPropertiesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - WIDTH_METERS_FIELD_NUMBER: builtins.int - TURNING_RADIUS_METERS_FIELD_NUMBER: builtins.int - WHEEL_CIRCUMFERENCE_METERS_FIELD_NUMBER: builtins.int - width_meters: builtins.float - turning_radius_meters: builtins.float - wheel_circumference_meters: builtins.float - - def __init__(self, *, width_meters: builtins.float=..., turning_radius_meters: builtins.float=..., wheel_circumference_meters: builtins.float=...) -> None: +Global___GetPropertiesRequest: _TypeAlias = GetPropertiesRequest + +@_typing.final +class GetPropertiesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + WIDTH_METERS_FIELD_NUMBER: _builtins.int + TURNING_RADIUS_METERS_FIELD_NUMBER: _builtins.int + WHEEL_CIRCUMFERENCE_METERS_FIELD_NUMBER: _builtins.int + width_meters: _builtins.float + turning_radius_meters: _builtins.float + wheel_circumference_meters: _builtins.float + + def __init__(self, *, width_meters: _builtins.float=..., turning_radius_meters: _builtins.float=..., wheel_circumference_meters: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['turning_radius_meters', b'turning_radius_meters', 'wheel_circumference_meters', b'wheel_circumference_meters', 'width_meters', b'width_meters'] - def ClearField(self, field_name: typing.Literal['turning_radius_meters', b'turning_radius_meters', 'wheel_circumference_meters', b'wheel_circumference_meters', 'width_meters', b'width_meters']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesResponse = GetPropertiesResponse \ No newline at end of file +Global___GetPropertiesResponse: _TypeAlias = GetPropertiesResponse \ No newline at end of file diff --git a/src/viam/gen/component/board/v1/board_pb2.py b/src/viam/gen/component/board/v1/board_pb2.py index c1160e21f4..fc43d00f94 100644 --- a/src/viam/gen/component/board/v1/board_pb2.py +++ b/src/viam/gen/component/board/v1/board_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/board/v1/board.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/board/v1/board.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/board/v1/board_pb2.pyi b/src/viam/gen/component/board/v1/board_pb2.pyi index 028f4c2ed7..fdabc3a537 100644 --- a/src/viam/gen/component/board/v1/board_pb2.pyi +++ b/src/viam/gen/component/board/v1/board_pb2.pyi @@ -2,28 +2,28 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.duration_pb2 -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _PowerMode: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _PowerModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PowerMode.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _PowerModeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_PowerMode.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor POWER_MODE_UNSPECIFIED: _PowerMode.ValueType POWER_MODE_NORMAL: _PowerMode.ValueType POWER_MODE_OFFLINE_DEEP: _PowerMode.ValueType @@ -33,464 +33,497 @@ class PowerMode(_PowerMode, metaclass=_PowerModeEnumTypeWrapper): POWER_MODE_UNSPECIFIED: PowerMode.ValueType POWER_MODE_NORMAL: PowerMode.ValueType POWER_MODE_OFFLINE_DEEP: PowerMode.ValueType -global___PowerMode = PowerMode +Global___PowerMode: _TypeAlias = PowerMode -@typing.final -class Status(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class Status(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class AnalogsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.int + @_typing.final + class AnalogsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.int - def __init__(self, *, key: builtins.str=..., value: builtins.int=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @typing.final - class DigitalInterruptsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.int + @_typing.final + class DigitalInterruptsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.int - def __init__(self, *, key: builtins.str=..., value: builtins.int=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - ANALOGS_FIELD_NUMBER: builtins.int - DIGITAL_INTERRUPTS_FIELD_NUMBER: builtins.int + ANALOGS_FIELD_NUMBER: _builtins.int + DIGITAL_INTERRUPTS_FIELD_NUMBER: _builtins.int - @property - def analogs(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.int]: + @_builtins.property + def analogs(self) -> _containers.ScalarMap[_builtins.str, _builtins.int]: ... - @property - def digital_interrupts(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.int]: + @_builtins.property + def digital_interrupts(self) -> _containers.ScalarMap[_builtins.str, _builtins.int]: ... - def __init__(self, *, analogs: collections.abc.Mapping[builtins.str, builtins.int] | None=..., digital_interrupts: collections.abc.Mapping[builtins.str, builtins.int] | None=...) -> None: + def __init__(self, *, analogs: _abc.Mapping[_builtins.str, _builtins.int] | None=..., digital_interrupts: _abc.Mapping[_builtins.str, _builtins.int] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['analogs', b'analogs', 'digital_interrupts', b'digital_interrupts'] - def ClearField(self, field_name: typing.Literal['analogs', b'analogs', 'digital_interrupts', b'digital_interrupts']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Status = Status +Global___Status: _TypeAlias = Status -@typing.final -class SetGPIORequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PIN_FIELD_NUMBER: builtins.int - HIGH_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - pin: builtins.str - high: builtins.bool +@_typing.final +class SetGPIORequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + PIN_FIELD_NUMBER: _builtins.int + HIGH_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + pin: _builtins.str + high: _builtins.bool - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., high: builtins.bool=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., pin: _builtins.str=..., high: _builtins.bool=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'high', b'high', 'name', b'name', 'pin', b'pin'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'high', b'high', 'name', b'name', 'pin', b'pin']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetGPIORequest = SetGPIORequest +Global___SetGPIORequest: _TypeAlias = SetGPIORequest -@typing.final -class SetGPIOResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetGPIOResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetGPIOResponse = SetGPIOResponse +Global___SetGPIOResponse: _TypeAlias = SetGPIOResponse -@typing.final -class GetGPIORequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PIN_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - pin: builtins.str +@_typing.final +class GetGPIORequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + PIN_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + pin: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., pin: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetGPIORequest = GetGPIORequest +Global___GetGPIORequest: _TypeAlias = GetGPIORequest -@typing.final -class GetGPIOResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HIGH_FIELD_NUMBER: builtins.int - high: builtins.bool +@_typing.final +class GetGPIOResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + HIGH_FIELD_NUMBER: _builtins.int + high: _builtins.bool - def __init__(self, *, high: builtins.bool=...) -> None: + def __init__(self, *, high: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['high', b'high'] - def ClearField(self, field_name: typing.Literal['high', b'high']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetGPIOResponse = GetGPIOResponse +Global___GetGPIOResponse: _TypeAlias = GetGPIOResponse -@typing.final -class PWMRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PIN_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - pin: builtins.str +@_typing.final +class PWMRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + PIN_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + pin: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., pin: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PWMRequest = PWMRequest +Global___PWMRequest: _TypeAlias = PWMRequest -@typing.final -class PWMResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DUTY_CYCLE_PCT_FIELD_NUMBER: builtins.int - duty_cycle_pct: builtins.float +@_typing.final +class PWMResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DUTY_CYCLE_PCT_FIELD_NUMBER: _builtins.int + duty_cycle_pct: _builtins.float '0-1' - def __init__(self, *, duty_cycle_pct: builtins.float=...) -> None: + def __init__(self, *, duty_cycle_pct: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['duty_cycle_pct', b'duty_cycle_pct'] - def ClearField(self, field_name: typing.Literal['duty_cycle_pct', b'duty_cycle_pct']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PWMResponse = PWMResponse +Global___PWMResponse: _TypeAlias = PWMResponse -@typing.final -class SetPWMRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PIN_FIELD_NUMBER: builtins.int - DUTY_CYCLE_PCT_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - pin: builtins.str - duty_cycle_pct: builtins.float +@_typing.final +class SetPWMRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + PIN_FIELD_NUMBER: _builtins.int + DUTY_CYCLE_PCT_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + pin: _builtins.str + duty_cycle_pct: _builtins.float '0-1' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., duty_cycle_pct: builtins.float=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., pin: _builtins.str=..., duty_cycle_pct: _builtins.float=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['duty_cycle_pct', b'duty_cycle_pct', 'extra', b'extra', 'name', b'name', 'pin', b'pin'] - def ClearField(self, field_name: typing.Literal['duty_cycle_pct', b'duty_cycle_pct', 'extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetPWMRequest = SetPWMRequest +Global___SetPWMRequest: _TypeAlias = SetPWMRequest -@typing.final -class SetPWMResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetPWMResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetPWMResponse = SetPWMResponse +Global___SetPWMResponse: _TypeAlias = SetPWMResponse -@typing.final -class PWMFrequencyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PIN_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - pin: builtins.str +@_typing.final +class PWMFrequencyRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + PIN_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + pin: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., pin: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PWMFrequencyRequest = PWMFrequencyRequest +Global___PWMFrequencyRequest: _TypeAlias = PWMFrequencyRequest -@typing.final -class PWMFrequencyResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FREQUENCY_HZ_FIELD_NUMBER: builtins.int - frequency_hz: builtins.int +@_typing.final +class PWMFrequencyResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FREQUENCY_HZ_FIELD_NUMBER: _builtins.int + frequency_hz: _builtins.int - def __init__(self, *, frequency_hz: builtins.int=...) -> None: + def __init__(self, *, frequency_hz: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['frequency_hz', b'frequency_hz'] - def ClearField(self, field_name: typing.Literal['frequency_hz', b'frequency_hz']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PWMFrequencyResponse = PWMFrequencyResponse +Global___PWMFrequencyResponse: _TypeAlias = PWMFrequencyResponse -@typing.final -class SetPWMFrequencyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PIN_FIELD_NUMBER: builtins.int - FREQUENCY_HZ_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - pin: builtins.str - frequency_hz: builtins.int +@_typing.final +class SetPWMFrequencyRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + PIN_FIELD_NUMBER: _builtins.int + FREQUENCY_HZ_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + pin: _builtins.str + frequency_hz: _builtins.int - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., frequency_hz: builtins.int=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., pin: _builtins.str=..., frequency_hz: _builtins.int=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'frequency_hz', b'frequency_hz', 'name', b'name', 'pin', b'pin'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'frequency_hz', b'frequency_hz', 'name', b'name', 'pin', b'pin']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetPWMFrequencyRequest = SetPWMFrequencyRequest +Global___SetPWMFrequencyRequest: _TypeAlias = SetPWMFrequencyRequest -@typing.final -class SetPWMFrequencyResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetPWMFrequencyResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetPWMFrequencyResponse = SetPWMFrequencyResponse +Global___SetPWMFrequencyResponse: _TypeAlias = SetPWMFrequencyResponse -@typing.final -class ReadAnalogReaderRequest(google.protobuf.message.Message): +@_typing.final +class ReadAnalogReaderRequest(_message.Message): """Analog Reader""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BOARD_NAME_FIELD_NUMBER: builtins.int - ANALOG_READER_NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - board_name: builtins.str - analog_reader_name: builtins.str - - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + DESCRIPTOR: _descriptor.Descriptor + BOARD_NAME_FIELD_NUMBER: _builtins.int + ANALOG_READER_NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + board_name: _builtins.str + analog_reader_name: _builtins.str + + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, board_name: builtins.str=..., analog_reader_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, board_name: _builtins.str=..., analog_reader_name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['analog_reader_name', b'analog_reader_name', 'board_name', b'board_name', 'extra', b'extra'] - def ClearField(self, field_name: typing.Literal['analog_reader_name', b'analog_reader_name', 'board_name', b'board_name', 'extra', b'extra']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ReadAnalogReaderRequest = ReadAnalogReaderRequest +Global___ReadAnalogReaderRequest: _TypeAlias = ReadAnalogReaderRequest -@typing.final -class ReadAnalogReaderResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUE_FIELD_NUMBER: builtins.int - MIN_RANGE_FIELD_NUMBER: builtins.int - MAX_RANGE_FIELD_NUMBER: builtins.int - STEP_SIZE_FIELD_NUMBER: builtins.int - value: builtins.int - min_range: builtins.float - max_range: builtins.float - step_size: builtins.float +@_typing.final +class ReadAnalogReaderResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VALUE_FIELD_NUMBER: _builtins.int + MIN_RANGE_FIELD_NUMBER: _builtins.int + MAX_RANGE_FIELD_NUMBER: _builtins.int + STEP_SIZE_FIELD_NUMBER: _builtins.int + value: _builtins.int + min_range: _builtins.float + max_range: _builtins.float + step_size: _builtins.float - def __init__(self, *, value: builtins.int=..., min_range: builtins.float=..., max_range: builtins.float=..., step_size: builtins.float=...) -> None: + def __init__(self, *, value: _builtins.int=..., min_range: _builtins.float=..., max_range: _builtins.float=..., step_size: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['max_range', b'max_range', 'min_range', b'min_range', 'step_size', b'step_size', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['max_range', b'max_range', 'min_range', b'min_range', 'step_size', b'step_size', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ReadAnalogReaderResponse = ReadAnalogReaderResponse +Global___ReadAnalogReaderResponse: _TypeAlias = ReadAnalogReaderResponse -@typing.final -class WriteAnalogRequest(google.protobuf.message.Message): +@_typing.final +class WriteAnalogRequest(_message.Message): """Analog Writer""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PIN_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - pin: builtins.str - value: builtins.int - - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + PIN_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + pin: _builtins.str + value: _builtins.int + + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., value: builtins.int=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., pin: _builtins.str=..., value: _builtins.int=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___WriteAnalogRequest = WriteAnalogRequest +Global___WriteAnalogRequest: _TypeAlias = WriteAnalogRequest -@typing.final -class WriteAnalogResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class WriteAnalogResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___WriteAnalogResponse = WriteAnalogResponse +Global___WriteAnalogResponse: _TypeAlias = WriteAnalogResponse -@typing.final -class GetDigitalInterruptValueRequest(google.protobuf.message.Message): +@_typing.final +class GetDigitalInterruptValueRequest(_message.Message): """Digital Interrupt""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - BOARD_NAME_FIELD_NUMBER: builtins.int - DIGITAL_INTERRUPT_NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - board_name: builtins.str - digital_interrupt_name: builtins.str - - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + DESCRIPTOR: _descriptor.Descriptor + BOARD_NAME_FIELD_NUMBER: _builtins.int + DIGITAL_INTERRUPT_NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + board_name: _builtins.str + digital_interrupt_name: _builtins.str + + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, board_name: builtins.str=..., digital_interrupt_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, board_name: _builtins.str=..., digital_interrupt_name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['board_name', b'board_name', 'digital_interrupt_name', b'digital_interrupt_name', 'extra', b'extra'] - def ClearField(self, field_name: typing.Literal['board_name', b'board_name', 'digital_interrupt_name', b'digital_interrupt_name', 'extra', b'extra']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetDigitalInterruptValueRequest = GetDigitalInterruptValueRequest +Global___GetDigitalInterruptValueRequest: _TypeAlias = GetDigitalInterruptValueRequest -@typing.final -class GetDigitalInterruptValueResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUE_FIELD_NUMBER: builtins.int - value: builtins.int +@_typing.final +class GetDigitalInterruptValueResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VALUE_FIELD_NUMBER: _builtins.int + value: _builtins.int - def __init__(self, *, value: builtins.int=...) -> None: + def __init__(self, *, value: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def ClearField(self, field_name: typing.Literal['value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetDigitalInterruptValueResponse = GetDigitalInterruptValueResponse +Global___GetDigitalInterruptValueResponse: _TypeAlias = GetDigitalInterruptValueResponse -@typing.final -class StreamTicksRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PIN_NAMES_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class StreamTicksRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + PIN_NAMES_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Board name' - @property - def pin_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def pin_names(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Name of digital interrupts to recieve ticks from""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., pin_names: collections.abc.Iterable[builtins.str] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., pin_names: _abc.Iterable[_builtins.str] | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'pin_names', b'pin_names'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'pin_names', b'pin_names']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StreamTicksRequest = StreamTicksRequest +Global___StreamTicksRequest: _TypeAlias = StreamTicksRequest -@typing.final -class StreamTicksResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PIN_NAME_FIELD_NUMBER: builtins.int - TIME_FIELD_NUMBER: builtins.int - HIGH_FIELD_NUMBER: builtins.int - pin_name: builtins.str +@_typing.final +class StreamTicksResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PIN_NAME_FIELD_NUMBER: _builtins.int + TIME_FIELD_NUMBER: _builtins.int + HIGH_FIELD_NUMBER: _builtins.int + pin_name: _builtins.str 'name of interrupt' - time: builtins.int + time: _builtins.int 'Time in nanoseconds of a tick' - high: builtins.bool + high: _builtins.bool 'Value high or low of the tick' - def __init__(self, *, pin_name: builtins.str=..., time: builtins.int=..., high: builtins.bool=...) -> None: + def __init__(self, *, pin_name: _builtins.str=..., time: _builtins.int=..., high: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['high', b'high', 'pin_name', b'pin_name', 'time', b'time'] - def ClearField(self, field_name: typing.Literal['high', b'high', 'pin_name', b'pin_name', 'time', b'time']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StreamTicksResponse = StreamTicksResponse +Global___StreamTicksResponse: _TypeAlias = StreamTicksResponse -@typing.final -class SetPowerModeRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - POWER_MODE_FIELD_NUMBER: builtins.int - DURATION_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class SetPowerModeRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + POWER_MODE_FIELD_NUMBER: _builtins.int + DURATION_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of board' - power_mode: global___PowerMode.ValueType + power_mode: Global___PowerMode.ValueType 'Requested power mode' - @property - def duration(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def duration(self) -> _duration_pb2.Duration: """Requested duration to stay in `power_mode`""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., power_mode: global___PowerMode.ValueType=..., duration: google.protobuf.duration_pb2.Duration | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., power_mode: Global___PowerMode.ValueType=..., duration: _duration_pb2.Duration | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_duration', b'_duration', 'duration', b'duration', 'extra', b'extra'] - def HasField(self, field_name: typing.Literal['_duration', b'_duration', 'duration', b'duration', 'extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_duration', b'_duration', 'duration', b'duration', 'extra', b'extra', 'name', b'name', 'power_mode', b'power_mode'] - def ClearField(self, field_name: typing.Literal['_duration', b'_duration', 'duration', b'duration', 'extra', b'extra', 'name', b'name', 'power_mode', b'power_mode']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__duration: _TypeAlias = _typing.Literal['duration'] + _WhichOneofArgType__duration: _TypeAlias = _typing.Literal['_duration', b'_duration'] - def WhichOneof(self, oneof_group: typing.Literal['_duration', b'_duration']) -> typing.Literal['duration'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__duration) -> _WhichOneofReturnType__duration | None: ... -global___SetPowerModeRequest = SetPowerModeRequest +Global___SetPowerModeRequest: _TypeAlias = SetPowerModeRequest -@typing.final -class SetPowerModeResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetPowerModeResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetPowerModeResponse = SetPowerModeResponse \ No newline at end of file +Global___SetPowerModeResponse: _TypeAlias = SetPowerModeResponse \ No newline at end of file diff --git a/src/viam/gen/component/button/v1/button_pb2.py b/src/viam/gen/component/button/v1/button_pb2.py index 21ac3f6926..09d9b7b15a 100644 --- a/src/viam/gen/component/button/v1/button_pb2.py +++ b/src/viam/gen/component/button/v1/button_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/button/v1/button.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/button/v1/button.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/button/v1/button_pb2.pyi b/src/viam/gen/component/button/v1/button_pb2.pyi index 86357245bf..1fdb4a210a 100644 --- a/src/viam/gen/component/button/v1/button_pb2.pyi +++ b/src/viam/gen/component/button/v1/button_pb2.pyi @@ -2,38 +2,45 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing.final -class PushRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class PushRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PushRequest = PushRequest +Global___PushRequest: _TypeAlias = PushRequest -@typing.final -class PushResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class PushResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___PushResponse = PushResponse \ No newline at end of file +Global___PushResponse: _TypeAlias = PushResponse \ No newline at end of file diff --git a/src/viam/gen/component/camera/v1/camera_pb2.py b/src/viam/gen/component/camera/v1/camera_pb2.py index 452d285941..e58128db48 100644 --- a/src/viam/gen/component/camera/v1/camera_pb2.py +++ b/src/viam/gen/component/camera/v1/camera_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/camera/v1/camera.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/camera/v1/camera.proto') _sym_db = _symbol_database.Default() from ....app.data.v1 import data_pb2 as app_dot_data_dot_v1_dot_data__pb2 from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 diff --git a/src/viam/gen/component/camera/v1/camera_pb2.pyi b/src/viam/gen/component/camera/v1/camera_pb2.pyi index 520d7f38d0..04fc9c8af6 100644 --- a/src/viam/gen/component/camera/v1/camera_pb2.pyi +++ b/src/viam/gen/component/camera/v1/camera_pb2.pyi @@ -2,29 +2,29 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -from .... import app -import builtins -import collections.abc -from .... import common -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 +from app.data.v1 import data_pb2 as _data_pb2 +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _Format: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _FormatEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Format.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _FormatEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_Format.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor FORMAT_UNSPECIFIED: _Format.ValueType FORMAT_RAW_RGBA: _Format.ValueType FORMAT_RAW_DEPTH: _Format.ValueType @@ -38,397 +38,423 @@ FORMAT_RAW_RGBA: Format.ValueType FORMAT_RAW_DEPTH: Format.ValueType FORMAT_JPEG: Format.ValueType FORMAT_PNG: Format.ValueType -global___Format = Format - -@typing.final -class GetImageRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___Format: _TypeAlias = Format + +@_typing.final +class GetImageRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a camera' - mime_type: builtins.str + mime_type: _builtins.str 'Requested MIME type of response' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., mime_type: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., mime_type: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'mime_type', b'mime_type', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'mime_type', b'mime_type', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetImageRequest = GetImageRequest +Global___GetImageRequest: _TypeAlias = GetImageRequest -@typing.final -class GetImageResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MIME_TYPE_FIELD_NUMBER: builtins.int - IMAGE_FIELD_NUMBER: builtins.int - mime_type: builtins.str +@_typing.final +class GetImageResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MIME_TYPE_FIELD_NUMBER: _builtins.int + IMAGE_FIELD_NUMBER: _builtins.int + mime_type: _builtins.str 'Actual MIME type of response' - image: builtins.bytes + image: _builtins.bytes 'Frame in bytes' - def __init__(self, *, mime_type: builtins.str=..., image: builtins.bytes=...) -> None: + def __init__(self, *, mime_type: _builtins.str=..., image: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['image', b'image', 'mime_type', b'mime_type'] - def ClearField(self, field_name: typing.Literal['image', b'image', 'mime_type', b'mime_type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetImageResponse = GetImageResponse +Global___GetImageResponse: _TypeAlias = GetImageResponse -@typing.final -class GetImagesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - FILTER_SOURCE_NAMES_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetImagesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + FILTER_SOURCE_NAMES_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a camera' - @property - def filter_source_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def filter_source_names(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """The names of the sensors to retrieve images from. If this is not provided, all images from all sensors will be returned. """ - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., filter_source_names: collections.abc.Iterable[builtins.str] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., filter_source_names: _abc.Iterable[_builtins.str] | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'filter_source_names', b'filter_source_names', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'filter_source_names', b'filter_source_names', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetImagesRequest = GetImagesRequest +Global___GetImagesRequest: _TypeAlias = GetImagesRequest -@typing.final -class GetImagesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IMAGES_FIELD_NUMBER: builtins.int - RESPONSE_METADATA_FIELD_NUMBER: builtins.int +@_typing.final +class GetImagesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + IMAGES_FIELD_NUMBER: _builtins.int + RESPONSE_METADATA_FIELD_NUMBER: _builtins.int - @property - def images(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Image]: + @_builtins.property + def images(self) -> _containers.RepeatedCompositeFieldContainer[Global___Image]: """list of images returned from the camera system""" - @property - def response_metadata(self) -> common.v1.common_pb2.ResponseMetadata: + @_builtins.property + def response_metadata(self) -> _common_pb2.ResponseMetadata: """contains timestamp data""" - def __init__(self, *, images: collections.abc.Iterable[global___Image] | None=..., response_metadata: common.v1.common_pb2.ResponseMetadata | None=...) -> None: + def __init__(self, *, images: _abc.Iterable[Global___Image] | None=..., response_metadata: _common_pb2.ResponseMetadata | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['response_metadata', b'response_metadata'] - def HasField(self, field_name: typing.Literal['response_metadata', b'response_metadata']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['images', b'images', 'response_metadata', b'response_metadata'] - def ClearField(self, field_name: typing.Literal['images', b'images', 'response_metadata', b'response_metadata']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetImagesResponse = GetImagesResponse +Global___GetImagesResponse: _TypeAlias = GetImagesResponse -@typing.final -class Image(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SOURCE_NAME_FIELD_NUMBER: builtins.int - FORMAT_FIELD_NUMBER: builtins.int - IMAGE_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - ANNOTATIONS_FIELD_NUMBER: builtins.int - source_name: builtins.str +@_typing.final +class Image(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SOURCE_NAME_FIELD_NUMBER: _builtins.int + FORMAT_FIELD_NUMBER: _builtins.int + IMAGE_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + ANNOTATIONS_FIELD_NUMBER: _builtins.int + source_name: _builtins.str 'the name of the sensor where the image came from' - format: global___Format.ValueType + format: Global___Format.ValueType 'format of the response image bytes' - image: builtins.bytes + image: _builtins.bytes 'image in bytes' - mime_type: builtins.str + mime_type: _builtins.str 'The mime type of the image' - @property - def annotations(self) -> app.data.v1.data_pb2.Annotations: + @_builtins.property + def annotations(self) -> _data_pb2.Annotations: """annotations can be used to store additional information about the image""" - def __init__(self, *, source_name: builtins.str=..., format: global___Format.ValueType=..., image: builtins.bytes=..., mime_type: builtins.str=..., annotations: app.data.v1.data_pb2.Annotations | None=...) -> None: + def __init__(self, *, source_name: _builtins.str=..., format: Global___Format.ValueType=..., image: _builtins.bytes=..., mime_type: _builtins.str=..., annotations: _data_pb2.Annotations | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['annotations', b'annotations'] - def HasField(self, field_name: typing.Literal['annotations', b'annotations']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['annotations', b'annotations', 'format', b'format', 'image', b'image', 'mime_type', b'mime_type', 'source_name', b'source_name'] - def ClearField(self, field_name: typing.Literal['annotations', b'annotations', 'format', b'format', 'image', b'image', 'mime_type', b'mime_type', 'source_name', b'source_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Image = Image +Global___Image: _TypeAlias = Image -@typing.final -class RenderFrameRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class RenderFrameRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a camera' - mime_type: builtins.str + mime_type: _builtins.str 'Requested MIME type of response' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., mime_type: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., mime_type: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'mime_type', b'mime_type', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'mime_type', b'mime_type', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RenderFrameRequest = RenderFrameRequest +Global___RenderFrameRequest: _TypeAlias = RenderFrameRequest -@typing.final -class GetPointCloudRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPointCloudRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a camera' - mime_type: builtins.str + mime_type: _builtins.str 'Requested MIME type of response' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., mime_type: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., mime_type: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'mime_type', b'mime_type', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'mime_type', b'mime_type', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPointCloudRequest = GetPointCloudRequest +Global___GetPointCloudRequest: _TypeAlias = GetPointCloudRequest -@typing.final -class GetPointCloudResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MIME_TYPE_FIELD_NUMBER: builtins.int - POINT_CLOUD_FIELD_NUMBER: builtins.int - mime_type: builtins.str +@_typing.final +class GetPointCloudResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MIME_TYPE_FIELD_NUMBER: _builtins.int + POINT_CLOUD_FIELD_NUMBER: _builtins.int + mime_type: _builtins.str 'Actual MIME type of response' - point_cloud: builtins.bytes + point_cloud: _builtins.bytes 'Frame in bytes' - def __init__(self, *, mime_type: builtins.str=..., point_cloud: builtins.bytes=...) -> None: + def __init__(self, *, mime_type: _builtins.str=..., point_cloud: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['mime_type', b'mime_type', 'point_cloud', b'point_cloud'] - def ClearField(self, field_name: typing.Literal['mime_type', b'mime_type', 'point_cloud', b'point_cloud']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPointCloudResponse = GetPointCloudResponse +Global___GetPointCloudResponse: _TypeAlias = GetPointCloudResponse -@typing.final -class GetPropertiesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPropertiesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a camera' - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesRequest = GetPropertiesRequest +Global___GetPropertiesRequest: _TypeAlias = GetPropertiesRequest -@typing.final -class GetPropertiesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SUPPORTS_PCD_FIELD_NUMBER: builtins.int - INTRINSIC_PARAMETERS_FIELD_NUMBER: builtins.int - DISTORTION_PARAMETERS_FIELD_NUMBER: builtins.int - MIME_TYPES_FIELD_NUMBER: builtins.int - FRAME_RATE_FIELD_NUMBER: builtins.int - EXTRINSIC_PARAMETERS_FIELD_NUMBER: builtins.int - supports_pcd: builtins.bool +@_typing.final +class GetPropertiesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SUPPORTS_PCD_FIELD_NUMBER: _builtins.int + INTRINSIC_PARAMETERS_FIELD_NUMBER: _builtins.int + DISTORTION_PARAMETERS_FIELD_NUMBER: _builtins.int + MIME_TYPES_FIELD_NUMBER: _builtins.int + FRAME_RATE_FIELD_NUMBER: _builtins.int + EXTRINSIC_PARAMETERS_FIELD_NUMBER: _builtins.int + supports_pcd: _builtins.bool 'A boolean property determining whether the camera supports the return of pointcloud data' - frame_rate: builtins.float + frame_rate: _builtins.float 'Optional camera frame rate for image capture timing' - @property - def intrinsic_parameters(self) -> global___IntrinsicParameters: + @_builtins.property + def intrinsic_parameters(self) -> Global___IntrinsicParameters: """Parameters for doing a perspective of a 3D scene to a 2D plane If camera does not provide intrinsic parameters, leave the field empty Initializing the parameters with 0-values is considered an error """ - @property - def distortion_parameters(self) -> global___DistortionParameters: + @_builtins.property + def distortion_parameters(self) -> Global___DistortionParameters: """Parameters for modeling lens distortion in cameras If camera does not provide distortion parameters, leave the field empty Initializing the parameters with 0-values is considered an error """ - @property - def mime_types(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def mime_types(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Supported MIME types by the camera""" - @property - def extrinsic_parameters(self) -> global___ExtrinsicParameters: + @_builtins.property + def extrinsic_parameters(self) -> Global___ExtrinsicParameters: """Parameters for the camera's position relative to a reference frame If camera does not provide extrinsic parameters, leave the field empty """ - def __init__(self, *, supports_pcd: builtins.bool=..., intrinsic_parameters: global___IntrinsicParameters | None=..., distortion_parameters: global___DistortionParameters | None=..., mime_types: collections.abc.Iterable[builtins.str] | None=..., frame_rate: builtins.float | None=..., extrinsic_parameters: global___ExtrinsicParameters | None=...) -> None: + def __init__(self, *, supports_pcd: _builtins.bool=..., intrinsic_parameters: Global___IntrinsicParameters | None=..., distortion_parameters: Global___DistortionParameters | None=..., mime_types: _abc.Iterable[_builtins.str] | None=..., frame_rate: _builtins.float | None=..., extrinsic_parameters: Global___ExtrinsicParameters | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_frame_rate', b'_frame_rate', 'distortion_parameters', b'distortion_parameters', 'extrinsic_parameters', b'extrinsic_parameters', 'frame_rate', b'frame_rate', 'intrinsic_parameters', b'intrinsic_parameters'] - def HasField(self, field_name: typing.Literal['_frame_rate', b'_frame_rate', 'distortion_parameters', b'distortion_parameters', 'extrinsic_parameters', b'extrinsic_parameters', 'frame_rate', b'frame_rate', 'intrinsic_parameters', b'intrinsic_parameters']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_frame_rate', b'_frame_rate', 'distortion_parameters', b'distortion_parameters', 'extrinsic_parameters', b'extrinsic_parameters', 'frame_rate', b'frame_rate', 'intrinsic_parameters', b'intrinsic_parameters', 'mime_types', b'mime_types', 'supports_pcd', b'supports_pcd'] - def ClearField(self, field_name: typing.Literal['_frame_rate', b'_frame_rate', 'distortion_parameters', b'distortion_parameters', 'extrinsic_parameters', b'extrinsic_parameters', 'frame_rate', b'frame_rate', 'intrinsic_parameters', b'intrinsic_parameters', 'mime_types', b'mime_types', 'supports_pcd', b'supports_pcd']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__frame_rate: _TypeAlias = _typing.Literal['frame_rate'] + _WhichOneofArgType__frame_rate: _TypeAlias = _typing.Literal['_frame_rate', b'_frame_rate'] - def WhichOneof(self, oneof_group: typing.Literal['_frame_rate', b'_frame_rate']) -> typing.Literal['frame_rate'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__frame_rate) -> _WhichOneofReturnType__frame_rate | None: ... -global___GetPropertiesResponse = GetPropertiesResponse +Global___GetPropertiesResponse: _TypeAlias = GetPropertiesResponse -@typing.final -class Webcams(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - WEBCAMS_FIELD_NUMBER: builtins.int +@_typing.final +class Webcams(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + WEBCAMS_FIELD_NUMBER: _builtins.int - @property - def webcams(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Webcam]: + @_builtins.property + def webcams(self) -> _containers.RepeatedCompositeFieldContainer[Global___Webcam]: ... - def __init__(self, *, webcams: collections.abc.Iterable[global___Webcam] | None=...) -> None: + def __init__(self, *, webcams: _abc.Iterable[Global___Webcam] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['webcams', b'webcams'] - def ClearField(self, field_name: typing.Literal['webcams', b'webcams']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Webcams = Webcams +Global___Webcams: _TypeAlias = Webcams -@typing.final -class Webcam(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LABEL_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - PROPERTIES_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - ID_FIELD_NUMBER: builtins.int - label: builtins.str +@_typing.final +class Webcam(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LABEL_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + PROPERTIES_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + ID_FIELD_NUMBER: _builtins.int + label: _builtins.str 'Camera driver label (for internal use only)' - status: builtins.str + status: _builtins.str 'Camera driver status' - name: builtins.str + name: _builtins.str 'Camera human-readable driver name' - id: builtins.str + id: _builtins.str 'Camera unique identifier' - @property - def properties(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Property]: + @_builtins.property + def properties(self) -> _containers.RepeatedCompositeFieldContainer[Global___Property]: """Camera properties""" - def __init__(self, *, label: builtins.str=..., status: builtins.str=..., properties: collections.abc.Iterable[global___Property] | None=..., name: builtins.str=..., id: builtins.str=...) -> None: + def __init__(self, *, label: _builtins.str=..., status: _builtins.str=..., properties: _abc.Iterable[Global___Property] | None=..., name: _builtins.str=..., id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'label', b'label', 'name', b'name', 'properties', b'properties', 'status', b'status'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'label', b'label', 'name', b'name', 'properties', b'properties', 'status', b'status']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Webcam = Webcam +Global___Webcam: _TypeAlias = Webcam -@typing.final -class Property(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - WIDTH_PX_FIELD_NUMBER: builtins.int - HEIGHT_PX_FIELD_NUMBER: builtins.int - FRAME_FORMAT_FIELD_NUMBER: builtins.int - FRAME_RATE_FIELD_NUMBER: builtins.int - width_px: builtins.int +@_typing.final +class Property(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + WIDTH_PX_FIELD_NUMBER: _builtins.int + HEIGHT_PX_FIELD_NUMBER: _builtins.int + FRAME_FORMAT_FIELD_NUMBER: _builtins.int + FRAME_RATE_FIELD_NUMBER: _builtins.int + width_px: _builtins.int 'Video resolution width in px' - height_px: builtins.int + height_px: _builtins.int 'Video resolution height in px' - frame_format: builtins.str + frame_format: _builtins.str 'Video frame format' - frame_rate: builtins.float + frame_rate: _builtins.float 'Video frame rate in fps' - def __init__(self, *, width_px: builtins.int=..., height_px: builtins.int=..., frame_format: builtins.str=..., frame_rate: builtins.float=...) -> None: + def __init__(self, *, width_px: _builtins.int=..., height_px: _builtins.int=..., frame_format: _builtins.str=..., frame_rate: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['frame_format', b'frame_format', 'frame_rate', b'frame_rate', 'height_px', b'height_px', 'width_px', b'width_px'] - def ClearField(self, field_name: typing.Literal['frame_format', b'frame_format', 'frame_rate', b'frame_rate', 'height_px', b'height_px', 'width_px', b'width_px']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Property = Property +Global___Property: _TypeAlias = Property -@typing.final -class IntrinsicParameters(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - WIDTH_PX_FIELD_NUMBER: builtins.int - HEIGHT_PX_FIELD_NUMBER: builtins.int - FOCAL_X_PX_FIELD_NUMBER: builtins.int - FOCAL_Y_PX_FIELD_NUMBER: builtins.int - CENTER_X_PX_FIELD_NUMBER: builtins.int - CENTER_Y_PX_FIELD_NUMBER: builtins.int - width_px: builtins.int - height_px: builtins.int - focal_x_px: builtins.float - focal_y_px: builtins.float - center_x_px: builtins.float - center_y_px: builtins.float +@_typing.final +class IntrinsicParameters(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + WIDTH_PX_FIELD_NUMBER: _builtins.int + HEIGHT_PX_FIELD_NUMBER: _builtins.int + FOCAL_X_PX_FIELD_NUMBER: _builtins.int + FOCAL_Y_PX_FIELD_NUMBER: _builtins.int + CENTER_X_PX_FIELD_NUMBER: _builtins.int + CENTER_Y_PX_FIELD_NUMBER: _builtins.int + width_px: _builtins.int + height_px: _builtins.int + focal_x_px: _builtins.float + focal_y_px: _builtins.float + center_x_px: _builtins.float + center_y_px: _builtins.float - def __init__(self, *, width_px: builtins.int=..., height_px: builtins.int=..., focal_x_px: builtins.float=..., focal_y_px: builtins.float=..., center_x_px: builtins.float=..., center_y_px: builtins.float=...) -> None: + def __init__(self, *, width_px: _builtins.int=..., height_px: _builtins.int=..., focal_x_px: _builtins.float=..., focal_y_px: _builtins.float=..., center_x_px: _builtins.float=..., center_y_px: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['center_x_px', b'center_x_px', 'center_y_px', b'center_y_px', 'focal_x_px', b'focal_x_px', 'focal_y_px', b'focal_y_px', 'height_px', b'height_px', 'width_px', b'width_px'] - def ClearField(self, field_name: typing.Literal['center_x_px', b'center_x_px', 'center_y_px', b'center_y_px', 'focal_x_px', b'focal_x_px', 'focal_y_px', b'focal_y_px', 'height_px', b'height_px', 'width_px', b'width_px']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IntrinsicParameters = IntrinsicParameters +Global___IntrinsicParameters: _TypeAlias = IntrinsicParameters -@typing.final -class DistortionParameters(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODEL_FIELD_NUMBER: builtins.int - PARAMETERS_FIELD_NUMBER: builtins.int - model: builtins.str +@_typing.final +class DistortionParameters(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODEL_FIELD_NUMBER: _builtins.int + PARAMETERS_FIELD_NUMBER: _builtins.int + model: _builtins.str - @property - def parameters(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def parameters(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... - def __init__(self, *, model: builtins.str=..., parameters: collections.abc.Iterable[builtins.float] | None=...) -> None: + def __init__(self, *, model: _builtins.str=..., parameters: _abc.Iterable[_builtins.float] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['model', b'model', 'parameters', b'parameters'] - def ClearField(self, field_name: typing.Literal['model', b'model', 'parameters', b'parameters']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DistortionParameters = DistortionParameters +Global___DistortionParameters: _TypeAlias = DistortionParameters -@typing.final -class ExtrinsicParameters(google.protobuf.message.Message): +@_typing.final +class ExtrinsicParameters(_message.Message): """ExtrinsicParameters define the position of the camera relative to a reference frame (the world or another sensor). """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TRANSLATION_FIELD_NUMBER: builtins.int - ORIENTATION_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + TRANSLATION_FIELD_NUMBER: _builtins.int + ORIENTATION_FIELD_NUMBER: _builtins.int - @property - def translation(self) -> common.v1.common_pb2.Vector3: + @_builtins.property + def translation(self) -> _common_pb2.Vector3: """The translation from the reference frame to the camera.""" - @property - def orientation(self) -> common.v1.common_pb2.Orientation: + @_builtins.property + def orientation(self) -> _common_pb2.Orientation: """The orientation from the reference frame to the camera.""" - def __init__(self, *, translation: common.v1.common_pb2.Vector3 | None=..., orientation: common.v1.common_pb2.Orientation | None=...) -> None: + def __init__(self, *, translation: _common_pb2.Vector3 | None=..., orientation: _common_pb2.Orientation | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['orientation', b'orientation', 'translation', b'translation'] - def HasField(self, field_name: typing.Literal['orientation', b'orientation', 'translation', b'translation']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['orientation', b'orientation', 'translation', b'translation'] - def ClearField(self, field_name: typing.Literal['orientation', b'orientation', 'translation', b'translation']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ExtrinsicParameters = ExtrinsicParameters \ No newline at end of file +Global___ExtrinsicParameters: _TypeAlias = ExtrinsicParameters \ No newline at end of file diff --git a/src/viam/gen/component/encoder/v1/encoder_pb2.py b/src/viam/gen/component/encoder/v1/encoder_pb2.py index 286b8bd15b..ca724f687f 100644 --- a/src/viam/gen/component/encoder/v1/encoder_pb2.py +++ b/src/viam/gen/component/encoder/v1/encoder_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/encoder/v1/encoder.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/encoder/v1/encoder.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/encoder/v1/encoder_pb2.pyi b/src/viam/gen/component/encoder/v1/encoder_pb2.pyi index 5f30d983cc..9384315d2f 100644 --- a/src/viam/gen/component/encoder/v1/encoder_pb2.pyi +++ b/src/viam/gen/component/encoder/v1/encoder_pb2.pyi @@ -2,25 +2,25 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _PositionType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _PositionTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PositionType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _PositionTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_PositionType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor POSITION_TYPE_UNSPECIFIED: _PositionType.ValueType POSITION_TYPE_TICKS_COUNT: _PositionType.ValueType "Return type for relative encoders that report\n how far they've gone from a start position\n " @@ -34,114 +34,124 @@ POSITION_TYPE_TICKS_COUNT: PositionType.ValueType "Return type for relative encoders that report\nhow far they've gone from a start position\n" POSITION_TYPE_ANGLE_DEGREES: PositionType.ValueType 'Return type for absolute encoders that report\ntheir position in degrees along the radial axis\n' -global___PositionType = PositionType - -@typing.final -class GetPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - POSITION_TYPE_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___PositionType: _TypeAlias = PositionType + +@_typing.final +class GetPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + POSITION_TYPE_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of encoder' - position_type: global___PositionType.ValueType + position_type: Global___PositionType.ValueType 'If supplied, the response will return the specified\n position type. If the driver does not implement\n the requested type, this call will return an error.\n If position type is not specified, the response\n will return a default according to the driver.\n ' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., position_type: global___PositionType.ValueType | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., position_type: Global___PositionType.ValueType | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_position_type', b'_position_type', 'extra', b'extra', 'position_type', b'position_type'] - def HasField(self, field_name: typing.Literal['_position_type', b'_position_type', 'extra', b'extra', 'position_type', b'position_type']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_position_type', b'_position_type', 'extra', b'extra', 'name', b'name', 'position_type', b'position_type'] - def ClearField(self, field_name: typing.Literal['_position_type', b'_position_type', 'extra', b'extra', 'name', b'name', 'position_type', b'position_type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__position_type: _TypeAlias = _typing.Literal['position_type'] + _WhichOneofArgType__position_type: _TypeAlias = _typing.Literal['_position_type', b'_position_type'] - def WhichOneof(self, oneof_group: typing.Literal['_position_type', b'_position_type']) -> typing.Literal['position_type'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__position_type) -> _WhichOneofReturnType__position_type | None: ... -global___GetPositionRequest = GetPositionRequest +Global___GetPositionRequest: _TypeAlias = GetPositionRequest -@typing.final -class GetPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUE_FIELD_NUMBER: builtins.int - POSITION_TYPE_FIELD_NUMBER: builtins.int - value: builtins.float - position_type: global___PositionType.ValueType +@_typing.final +class GetPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VALUE_FIELD_NUMBER: _builtins.int + POSITION_TYPE_FIELD_NUMBER: _builtins.int + value: _builtins.float + position_type: Global___PositionType.ValueType - def __init__(self, *, value: builtins.float=..., position_type: global___PositionType.ValueType=...) -> None: + def __init__(self, *, value: _builtins.float=..., position_type: Global___PositionType.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['position_type', b'position_type', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['position_type', b'position_type', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionResponse = GetPositionResponse - -@typing.final -class ResetPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___GetPositionResponse: _TypeAlias = GetPositionResponse + +@_typing.final +class ResetPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of an encoder' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResetPositionRequest = ResetPositionRequest +Global___ResetPositionRequest: _TypeAlias = ResetPositionRequest -@typing.final -class ResetPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ResetPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ResetPositionResponse = ResetPositionResponse - -@typing.final -class GetPropertiesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___ResetPositionResponse: _TypeAlias = ResetPositionResponse + +@_typing.final +class GetPropertiesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the encoder' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesRequest = GetPropertiesRequest +Global___GetPropertiesRequest: _TypeAlias = GetPropertiesRequest -@typing.final -class GetPropertiesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TICKS_COUNT_SUPPORTED_FIELD_NUMBER: builtins.int - ANGLE_DEGREES_SUPPORTED_FIELD_NUMBER: builtins.int - ticks_count_supported: builtins.bool - angle_degrees_supported: builtins.bool +@_typing.final +class GetPropertiesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TICKS_COUNT_SUPPORTED_FIELD_NUMBER: _builtins.int + ANGLE_DEGREES_SUPPORTED_FIELD_NUMBER: _builtins.int + ticks_count_supported: _builtins.bool + angle_degrees_supported: _builtins.bool - def __init__(self, *, ticks_count_supported: builtins.bool=..., angle_degrees_supported: builtins.bool=...) -> None: + def __init__(self, *, ticks_count_supported: _builtins.bool=..., angle_degrees_supported: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['angle_degrees_supported', b'angle_degrees_supported', 'ticks_count_supported', b'ticks_count_supported'] - def ClearField(self, field_name: typing.Literal['angle_degrees_supported', b'angle_degrees_supported', 'ticks_count_supported', b'ticks_count_supported']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesResponse = GetPropertiesResponse \ No newline at end of file +Global___GetPropertiesResponse: _TypeAlias = GetPropertiesResponse \ No newline at end of file diff --git a/src/viam/gen/component/gantry/v1/gantry_pb2.py b/src/viam/gen/component/gantry/v1/gantry_pb2.py index f009d49f74..2d3aaf76eb 100644 --- a/src/viam/gen/component/gantry/v1/gantry_pb2.py +++ b/src/viam/gen/component/gantry/v1/gantry_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/gantry/v1/gantry.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/gantry/v1/gantry.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/gantry/v1/gantry_pb2.pyi b/src/viam/gen/component/gantry/v1/gantry_pb2.pyi index f66f0c95b7..909fcedab1 100644 --- a/src/viam/gen/component/gantry/v1/gantry_pb2.pyi +++ b/src/viam/gen/component/gantry/v1/gantry_pb2.pyi @@ -2,238 +2,259 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class GetPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class GetPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionRequest = GetPositionRequest +Global___GetPositionRequest: _TypeAlias = GetPositionRequest -@typing.final -class GetPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSITIONS_MM_FIELD_NUMBER: builtins.int +@_typing.final +class GetPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSITIONS_MM_FIELD_NUMBER: _builtins.int - @property - def positions_mm(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def positions_mm(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... - def __init__(self, *, positions_mm: collections.abc.Iterable[builtins.float] | None=...) -> None: + def __init__(self, *, positions_mm: _abc.Iterable[_builtins.float] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['positions_mm', b'positions_mm'] - def ClearField(self, field_name: typing.Literal['positions_mm', b'positions_mm']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionResponse = GetPositionResponse +Global___GetPositionResponse: _TypeAlias = GetPositionResponse -@typing.final -class MoveToPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - POSITIONS_MM_FIELD_NUMBER: builtins.int - SPEEDS_MM_PER_SEC_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class MoveToPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + POSITIONS_MM_FIELD_NUMBER: _builtins.int + SPEEDS_MM_PER_SEC_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def positions_mm(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def positions_mm(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: """Number of millimeters to move the gantry by respective to each axis.""" - @property - def speeds_mm_per_sec(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def speeds_mm_per_sec(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: """Speeds to move each gantry axis must match length and order of positions_mm.""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., positions_mm: collections.abc.Iterable[builtins.float] | None=..., speeds_mm_per_sec: collections.abc.Iterable[builtins.float] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., positions_mm: _abc.Iterable[_builtins.float] | None=..., speeds_mm_per_sec: _abc.Iterable[_builtins.float] | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'positions_mm', b'positions_mm', 'speeds_mm_per_sec', b'speeds_mm_per_sec'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'positions_mm', b'positions_mm', 'speeds_mm_per_sec', b'speeds_mm_per_sec']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MoveToPositionRequest = MoveToPositionRequest +Global___MoveToPositionRequest: _TypeAlias = MoveToPositionRequest -@typing.final -class MoveToPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class MoveToPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___MoveToPositionResponse = MoveToPositionResponse +Global___MoveToPositionResponse: _TypeAlias = MoveToPositionResponse -@typing.final -class HomeRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class HomeRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___HomeRequest = HomeRequest +Global___HomeRequest: _TypeAlias = HomeRequest -@typing.final -class HomeResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HOMED_FIELD_NUMBER: builtins.int - homed: builtins.bool +@_typing.final +class HomeResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + HOMED_FIELD_NUMBER: _builtins.int + homed: _builtins.bool 'A bool describing whether the gantry has completed homing' - def __init__(self, *, homed: builtins.bool=...) -> None: + def __init__(self, *, homed: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['homed', b'homed'] - def ClearField(self, field_name: typing.Literal['homed', b'homed']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___HomeResponse = HomeResponse +Global___HomeResponse: _TypeAlias = HomeResponse -@typing.final -class GetLengthsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetLengthsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLengthsRequest = GetLengthsRequest +Global___GetLengthsRequest: _TypeAlias = GetLengthsRequest -@typing.final -class GetLengthsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LENGTHS_MM_FIELD_NUMBER: builtins.int +@_typing.final +class GetLengthsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LENGTHS_MM_FIELD_NUMBER: _builtins.int - @property - def lengths_mm(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def lengths_mm(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... - def __init__(self, *, lengths_mm: collections.abc.Iterable[builtins.float] | None=...) -> None: + def __init__(self, *, lengths_mm: _abc.Iterable[_builtins.float] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['lengths_mm', b'lengths_mm'] - def ClearField(self, field_name: typing.Literal['lengths_mm', b'lengths_mm']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLengthsResponse = GetLengthsResponse +Global___GetLengthsResponse: _TypeAlias = GetLengthsResponse -@typing.final -class StopRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class StopRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a gantry' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopRequest = StopRequest +Global___StopRequest: _TypeAlias = StopRequest -@typing.final -class StopResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StopResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___StopResponse = StopResponse +Global___StopResponse: _TypeAlias = StopResponse -@typing.final -class Status(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSITIONS_MM_FIELD_NUMBER: builtins.int - LENGTHS_MM_FIELD_NUMBER: builtins.int - IS_MOVING_FIELD_NUMBER: builtins.int - is_moving: builtins.bool +@_typing.final +class Status(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSITIONS_MM_FIELD_NUMBER: _builtins.int + LENGTHS_MM_FIELD_NUMBER: _builtins.int + IS_MOVING_FIELD_NUMBER: _builtins.int + is_moving: _builtins.bool - @property - def positions_mm(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def positions_mm(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... - @property - def lengths_mm(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def lengths_mm(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... - def __init__(self, *, positions_mm: collections.abc.Iterable[builtins.float] | None=..., lengths_mm: collections.abc.Iterable[builtins.float] | None=..., is_moving: builtins.bool=...) -> None: + def __init__(self, *, positions_mm: _abc.Iterable[_builtins.float] | None=..., lengths_mm: _abc.Iterable[_builtins.float] | None=..., is_moving: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_moving', b'is_moving', 'lengths_mm', b'lengths_mm', 'positions_mm', b'positions_mm'] - def ClearField(self, field_name: typing.Literal['is_moving', b'is_moving', 'lengths_mm', b'lengths_mm', 'positions_mm', b'positions_mm']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Status = Status +Global___Status: _TypeAlias = Status -@typing.final -class IsMovingRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class IsMovingRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingRequest = IsMovingRequest +Global___IsMovingRequest: _TypeAlias = IsMovingRequest -@typing.final -class IsMovingResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IS_MOVING_FIELD_NUMBER: builtins.int - is_moving: builtins.bool +@_typing.final +class IsMovingResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + IS_MOVING_FIELD_NUMBER: _builtins.int + is_moving: _builtins.bool - def __init__(self, *, is_moving: builtins.bool=...) -> None: + def __init__(self, *, is_moving: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_moving', b'is_moving'] - def ClearField(self, field_name: typing.Literal['is_moving', b'is_moving']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingResponse = IsMovingResponse \ No newline at end of file +Global___IsMovingResponse: _TypeAlias = IsMovingResponse \ No newline at end of file diff --git a/src/viam/gen/component/generic/v1/generic_pb2.py b/src/viam/gen/component/generic/v1/generic_pb2.py index 115b69c095..e730bb8380 100644 --- a/src/viam/gen/component/generic/v1/generic_pb2.py +++ b/src/viam/gen/component/generic/v1/generic_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/generic/v1/generic.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/generic/v1/generic.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/generic/v1/generic_pb2.pyi b/src/viam/gen/component/generic/v1/generic_pb2.pyi index ab07168813..554b3b57f8 100644 --- a/src/viam/gen/component/generic/v1/generic_pb2.pyi +++ b/src/viam/gen/component/generic/v1/generic_pb2.pyi @@ -2,5 +2,5 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import google.protobuf.descriptor -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor \ No newline at end of file +from google.protobuf import descriptor as _descriptor +DESCRIPTOR: _descriptor.FileDescriptor \ No newline at end of file diff --git a/src/viam/gen/component/gripper/v1/gripper_pb2.py b/src/viam/gen/component/gripper/v1/gripper_pb2.py index 208e610792..0c2320307c 100644 --- a/src/viam/gen/component/gripper/v1/gripper_pb2.py +++ b/src/viam/gen/component/gripper/v1/gripper_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/gripper/v1/gripper.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/gripper/v1/gripper.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/gripper/v1/gripper_pb2.pyi b/src/viam/gen/component/gripper/v1/gripper_pb2.pyi index 8977788710..8623929912 100644 --- a/src/viam/gen/component/gripper/v1/gripper_pb2.pyi +++ b/src/viam/gen/component/gripper/v1/gripper_pb2.pyi @@ -2,178 +2,197 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing.final -class OpenRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class OpenRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OpenRequest = OpenRequest +Global___OpenRequest: _TypeAlias = OpenRequest -@typing.final -class OpenResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class OpenResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___OpenResponse = OpenResponse +Global___OpenResponse: _TypeAlias = OpenResponse -@typing.final -class GrabRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GrabRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GrabRequest = GrabRequest +Global___GrabRequest: _TypeAlias = GrabRequest -@typing.final -class GrabResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SUCCESS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - success: builtins.bool +@_typing.final +class GrabResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SUCCESS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + success: _builtins.bool - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, success: builtins.bool=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, success: _builtins.bool=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'success', b'success'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'success', b'success']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GrabResponse = GrabResponse +Global___GrabResponse: _TypeAlias = GrabResponse -@typing.final -class StopRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class StopRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a gripper' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopRequest = StopRequest +Global___StopRequest: _TypeAlias = StopRequest -@typing.final -class StopResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StopResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___StopResponse = StopResponse +Global___StopResponse: _TypeAlias = StopResponse -@typing.final -class IsMovingRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class IsMovingRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingRequest = IsMovingRequest +Global___IsMovingRequest: _TypeAlias = IsMovingRequest -@typing.final -class IsMovingResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IS_MOVING_FIELD_NUMBER: builtins.int - is_moving: builtins.bool +@_typing.final +class IsMovingResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + IS_MOVING_FIELD_NUMBER: _builtins.int + is_moving: _builtins.bool - def __init__(self, *, is_moving: builtins.bool=...) -> None: + def __init__(self, *, is_moving: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_moving', b'is_moving'] - def ClearField(self, field_name: typing.Literal['is_moving', b'is_moving']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingResponse = IsMovingResponse +Global___IsMovingResponse: _TypeAlias = IsMovingResponse -@typing.final -class IsHoldingSomethingRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class IsHoldingSomethingRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsHoldingSomethingRequest = IsHoldingSomethingRequest +Global___IsHoldingSomethingRequest: _TypeAlias = IsHoldingSomethingRequest -@typing.final -class IsHoldingSomethingResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IS_HOLDING_SOMETHING_FIELD_NUMBER: builtins.int - META_FIELD_NUMBER: builtins.int - is_holding_something: builtins.bool +@_typing.final +class IsHoldingSomethingResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + IS_HOLDING_SOMETHING_FIELD_NUMBER: _builtins.int + META_FIELD_NUMBER: _builtins.int + is_holding_something: _builtins.bool - @property - def meta(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def meta(self) -> _struct_pb2.Struct: ... - def __init__(self, *, is_holding_something: builtins.bool=..., meta: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, is_holding_something: _builtins.bool=..., meta: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['meta', b'meta'] - def HasField(self, field_name: typing.Literal['meta', b'meta']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_holding_something', b'is_holding_something', 'meta', b'meta'] - def ClearField(self, field_name: typing.Literal['is_holding_something', b'is_holding_something', 'meta', b'meta']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsHoldingSomethingResponse = IsHoldingSomethingResponse \ No newline at end of file +Global___IsHoldingSomethingResponse: _TypeAlias = IsHoldingSomethingResponse \ No newline at end of file diff --git a/src/viam/gen/component/inputcontroller/v1/input_controller_pb2.py b/src/viam/gen/component/inputcontroller/v1/input_controller_pb2.py index c1273036c9..7bf1e16cc0 100644 --- a/src/viam/gen/component/inputcontroller/v1/input_controller_pb2.py +++ b/src/viam/gen/component/inputcontroller/v1/input_controller_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/inputcontroller/v1/input_controller.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/inputcontroller/v1/input_controller.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/inputcontroller/v1/input_controller_pb2.pyi b/src/viam/gen/component/inputcontroller/v1/input_controller_pb2.pyi index ad7acd929d..e7246c3ef5 100644 --- a/src/viam/gen/component/inputcontroller/v1/input_controller_pb2.pyi +++ b/src/viam/gen/component/inputcontroller/v1/input_controller_pb2.pyi @@ -2,242 +2,263 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class GetControlsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONTROLLER_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - controller: builtins.str +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class GetControlsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CONTROLLER_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + controller: _builtins.str 'Name of an input controller' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, controller: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, controller: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['controller', b'controller', 'extra', b'extra'] - def ClearField(self, field_name: typing.Literal['controller', b'controller', 'extra', b'extra']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetControlsRequest = GetControlsRequest +Global___GetControlsRequest: _TypeAlias = GetControlsRequest -@typing.final -class GetControlsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONTROLS_FIELD_NUMBER: builtins.int +@_typing.final +class GetControlsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CONTROLS_FIELD_NUMBER: _builtins.int - @property - def controls(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def controls(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Returns a list of all the controls (buttons and axes) that are available to a given Input Controller """ - def __init__(self, *, controls: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, controls: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['controls', b'controls'] - def ClearField(self, field_name: typing.Literal['controls', b'controls']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetControlsResponse = GetControlsResponse - -@typing.final -class GetEventsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONTROLLER_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - controller: builtins.str +Global___GetControlsResponse: _TypeAlias = GetControlsResponse + +@_typing.final +class GetEventsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CONTROLLER_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + controller: _builtins.str 'Name of an input controller' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, controller: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, controller: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['controller', b'controller', 'extra', b'extra'] - def ClearField(self, field_name: typing.Literal['controller', b'controller', 'extra', b'extra']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetEventsRequest = GetEventsRequest +Global___GetEventsRequest: _TypeAlias = GetEventsRequest -@typing.final -class GetEventsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EVENTS_FIELD_NUMBER: builtins.int +@_typing.final +class GetEventsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + EVENTS_FIELD_NUMBER: _builtins.int - @property - def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event]: + @_builtins.property + def events(self) -> _containers.RepeatedCompositeFieldContainer[Global___Event]: """Returns a list of the most recent event for each control on a given InputController. Effectively provides the current "state" of all buttons/axes on a given input controller """ - def __init__(self, *, events: collections.abc.Iterable[global___Event] | None=...) -> None: + def __init__(self, *, events: _abc.Iterable[Global___Event] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['events', b'events'] - def ClearField(self, field_name: typing.Literal['events', b'events']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetEventsResponse = GetEventsResponse - -@typing.final -class TriggerEventRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONTROLLER_FIELD_NUMBER: builtins.int - EVENT_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - controller: builtins.str +Global___GetEventsResponse: _TypeAlias = GetEventsResponse + +@_typing.final +class TriggerEventRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CONTROLLER_FIELD_NUMBER: _builtins.int + EVENT_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + controller: _builtins.str 'Name of an input controller' - @property - def event(self) -> global___Event: + @_builtins.property + def event(self) -> Global___Event: """Digitally assert a given event""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, controller: builtins.str=..., event: global___Event | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, controller: _builtins.str=..., event: Global___Event | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['event', b'event', 'extra', b'extra'] - def HasField(self, field_name: typing.Literal['event', b'event', 'extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['controller', b'controller', 'event', b'event', 'extra', b'extra'] - def ClearField(self, field_name: typing.Literal['controller', b'controller', 'event', b'event', 'extra', b'extra']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TriggerEventRequest = TriggerEventRequest +Global___TriggerEventRequest: _TypeAlias = TriggerEventRequest -@typing.final -class TriggerEventResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class TriggerEventResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___TriggerEventResponse = TriggerEventResponse - -@typing.final -class Event(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TIME_FIELD_NUMBER: builtins.int - EVENT_FIELD_NUMBER: builtins.int - CONTROL_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - event: builtins.str +Global___TriggerEventResponse: _TypeAlias = TriggerEventResponse + +@_typing.final +class Event(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TIME_FIELD_NUMBER: _builtins.int + EVENT_FIELD_NUMBER: _builtins.int + CONTROL_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + event: _builtins.str 'An event type (eg: ButtonPress, ButtonRelease)' - control: builtins.str + control: _builtins.str 'A control, can be a button (eg: ButtonSouth) or an axis (eg: AbsoluteX)' - value: builtins.float + value: _builtins.float '0 or 1 for buttons, -1.0 to +1.0 for axes' - @property - def time(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def time(self) -> _timestamp_pb2.Timestamp: """Timestamp of event""" - def __init__(self, *, time: google.protobuf.timestamp_pb2.Timestamp | None=..., event: builtins.str=..., control: builtins.str=..., value: builtins.float=...) -> None: + def __init__(self, *, time: _timestamp_pb2.Timestamp | None=..., event: _builtins.str=..., control: _builtins.str=..., value: _builtins.float=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['time', b'time'] - def HasField(self, field_name: typing.Literal['time', b'time']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['control', b'control', 'event', b'event', 'time', b'time', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['control', b'control', 'event', b'event', 'time', b'time', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Event = Event - -@typing.final -class StreamEventsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - - @typing.final - class Events(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONTROL_FIELD_NUMBER: builtins.int - EVENTS_FIELD_NUMBER: builtins.int - CANCELLED_EVENTS_FIELD_NUMBER: builtins.int - control: builtins.str +Global___Event: _TypeAlias = Event + +@_typing.final +class StreamEventsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + + @_typing.final + class Events(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CONTROL_FIELD_NUMBER: _builtins.int + EVENTS_FIELD_NUMBER: _builtins.int + CANCELLED_EVENTS_FIELD_NUMBER: _builtins.int + control: _builtins.str 'Name of a control (button or axis)' - @property - def events(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def events(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Specify which event types to recieve events for""" - @property - def cancelled_events(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def cancelled_events(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Specify which event types to stop recieving events for This can be an empty list """ - def __init__(self, *, control: builtins.str=..., events: collections.abc.Iterable[builtins.str] | None=..., cancelled_events: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, control: _builtins.str=..., events: _abc.Iterable[_builtins.str] | None=..., cancelled_events: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['cancelled_events', b'cancelled_events', 'control', b'control', 'events', b'events'] - def ClearField(self, field_name: typing.Literal['cancelled_events', b'cancelled_events', 'control', b'control', 'events', b'events']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - CONTROLLER_FIELD_NUMBER: builtins.int - EVENTS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - controller: builtins.str + CONTROLLER_FIELD_NUMBER: _builtins.int + EVENTS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + controller: _builtins.str 'Name of an input controller' - @property - def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___StreamEventsRequest.Events]: + @_builtins.property + def events(self) -> _containers.RepeatedCompositeFieldContainer[Global___StreamEventsRequest.Events]: """A list of Events""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, controller: builtins.str=..., events: collections.abc.Iterable[global___StreamEventsRequest.Events] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, controller: _builtins.str=..., events: _abc.Iterable[Global___StreamEventsRequest.Events] | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['controller', b'controller', 'events', b'events', 'extra', b'extra'] - def ClearField(self, field_name: typing.Literal['controller', b'controller', 'events', b'events', 'extra', b'extra']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StreamEventsRequest = StreamEventsRequest +Global___StreamEventsRequest: _TypeAlias = StreamEventsRequest -@typing.final -class StreamEventsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EVENT_FIELD_NUMBER: builtins.int +@_typing.final +class StreamEventsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + EVENT_FIELD_NUMBER: _builtins.int - @property - def event(self) -> global___Event: + @_builtins.property + def event(self) -> Global___Event: """Event for a controller""" - def __init__(self, *, event: global___Event | None=...) -> None: + def __init__(self, *, event: Global___Event | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['event', b'event'] - def HasField(self, field_name: typing.Literal['event', b'event']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['event', b'event'] - def ClearField(self, field_name: typing.Literal['event', b'event']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StreamEventsResponse = StreamEventsResponse +Global___StreamEventsResponse: _TypeAlias = StreamEventsResponse -@typing.final -class Status(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EVENTS_FIELD_NUMBER: builtins.int +@_typing.final +class Status(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + EVENTS_FIELD_NUMBER: _builtins.int - @property - def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Event]: + @_builtins.property + def events(self) -> _containers.RepeatedCompositeFieldContainer[Global___Event]: ... - def __init__(self, *, events: collections.abc.Iterable[global___Event] | None=...) -> None: + def __init__(self, *, events: _abc.Iterable[Global___Event] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['events', b'events'] - def ClearField(self, field_name: typing.Literal['events', b'events']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Status = Status \ No newline at end of file +Global___Status: _TypeAlias = Status \ No newline at end of file diff --git a/src/viam/gen/component/motor/v1/motor_pb2.py b/src/viam/gen/component/motor/v1/motor_pb2.py index 17bb3d4405..1d6f497062 100644 --- a/src/viam/gen/component/motor/v1/motor_pb2.py +++ b/src/viam/gen/component/motor/v1/motor_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/motor/v1/motor.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/motor/v1/motor.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/motor/v1/motor_pb2.pyi b/src/viam/gen/component/motor/v1/motor_pb2.pyi index 2a43f4f6e9..244bd36871 100644 --- a/src/viam/gen/component/motor/v1/motor_pb2.pyi +++ b/src/viam/gen/component/motor/v1/motor_pb2.pyi @@ -2,367 +2,396 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class SetPowerRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - POWER_PCT_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class SetPowerRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + POWER_PCT_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a motor' - power_pct: builtins.float + power_pct: _builtins.float "Percentage of motor's power, between -1 and 1" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., power_pct: builtins.float=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., power_pct: _builtins.float=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'power_pct', b'power_pct'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'power_pct', b'power_pct']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetPowerRequest = SetPowerRequest +Global___SetPowerRequest: _TypeAlias = SetPowerRequest -@typing.final -class SetPowerResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetPowerResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetPowerResponse = SetPowerResponse +Global___SetPowerResponse: _TypeAlias = SetPowerResponse -@typing.final -class GoForRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - RPM_FIELD_NUMBER: builtins.int - REVOLUTIONS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GoForRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + RPM_FIELD_NUMBER: _builtins.int + REVOLUTIONS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a motor' - rpm: builtins.float + rpm: _builtins.float 'Speed of motor travel in rotations per minute' - revolutions: builtins.float + revolutions: _builtins.float "Number of revolutions relative to motor's start position" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., rpm: builtins.float=..., revolutions: builtins.float=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., rpm: _builtins.float=..., revolutions: _builtins.float=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'revolutions', b'revolutions', 'rpm', b'rpm'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'revolutions', b'revolutions', 'rpm', b'rpm']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GoForRequest = GoForRequest +Global___GoForRequest: _TypeAlias = GoForRequest -@typing.final -class GoForResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GoForResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___GoForResponse = GoForResponse +Global___GoForResponse: _TypeAlias = GoForResponse -@typing.final -class GoToRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - RPM_FIELD_NUMBER: builtins.int - POSITION_REVOLUTIONS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GoToRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + RPM_FIELD_NUMBER: _builtins.int + POSITION_REVOLUTIONS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a motor' - rpm: builtins.float + rpm: _builtins.float 'Speed of motor travel in rotations per minute' - position_revolutions: builtins.float + position_revolutions: _builtins.float "Number of revolutions relative to motor's home home/zero" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., rpm: builtins.float=..., position_revolutions: builtins.float=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., rpm: _builtins.float=..., position_revolutions: _builtins.float=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'position_revolutions', b'position_revolutions', 'rpm', b'rpm'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'position_revolutions', b'position_revolutions', 'rpm', b'rpm']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GoToRequest = GoToRequest +Global___GoToRequest: _TypeAlias = GoToRequest -@typing.final -class GoToResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GoToResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___GoToResponse = GoToResponse +Global___GoToResponse: _TypeAlias = GoToResponse -@typing.final -class SetRPMRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - RPM_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class SetRPMRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + RPM_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a motor' - rpm: builtins.float + rpm: _builtins.float 'Speed of motor travel in rotations per minute' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., rpm: builtins.float=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., rpm: _builtins.float=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'rpm', b'rpm'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'rpm', b'rpm']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetRPMRequest = SetRPMRequest +Global___SetRPMRequest: _TypeAlias = SetRPMRequest -@typing.final -class SetRPMResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetRPMResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetRPMResponse = SetRPMResponse +Global___SetRPMResponse: _TypeAlias = SetRPMResponse -@typing.final -class ResetZeroPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - OFFSET_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class ResetZeroPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + OFFSET_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a motor' - offset: builtins.float + offset: _builtins.float 'Motor position' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., offset: builtins.float=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., offset: _builtins.float=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'offset', b'offset'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'offset', b'offset']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResetZeroPositionRequest = ResetZeroPositionRequest +Global___ResetZeroPositionRequest: _TypeAlias = ResetZeroPositionRequest -@typing.final -class ResetZeroPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ResetZeroPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ResetZeroPositionResponse = ResetZeroPositionResponse +Global___ResetZeroPositionResponse: _TypeAlias = ResetZeroPositionResponse -@typing.final -class GetPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a motor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionRequest = GetPositionRequest +Global___GetPositionRequest: _TypeAlias = GetPositionRequest -@typing.final -class GetPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSITION_FIELD_NUMBER: builtins.int - position: builtins.float +@_typing.final +class GetPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSITION_FIELD_NUMBER: _builtins.int + position: _builtins.float 'Current position of the motor relative to its home' - def __init__(self, *, position: builtins.float=...) -> None: + def __init__(self, *, position: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['position', b'position'] - def ClearField(self, field_name: typing.Literal['position', b'position']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionResponse = GetPositionResponse +Global___GetPositionResponse: _TypeAlias = GetPositionResponse -@typing.final -class StopRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class StopRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a motor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopRequest = StopRequest +Global___StopRequest: _TypeAlias = StopRequest -@typing.final -class StopResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StopResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___StopResponse = StopResponse +Global___StopResponse: _TypeAlias = StopResponse -@typing.final -class IsPoweredRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class IsPoweredRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a motor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsPoweredRequest = IsPoweredRequest +Global___IsPoweredRequest: _TypeAlias = IsPoweredRequest -@typing.final -class IsPoweredResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IS_ON_FIELD_NUMBER: builtins.int - POWER_PCT_FIELD_NUMBER: builtins.int - is_on: builtins.bool +@_typing.final +class IsPoweredResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + IS_ON_FIELD_NUMBER: _builtins.int + POWER_PCT_FIELD_NUMBER: _builtins.int + is_on: _builtins.bool 'Returns true if the motor is on' - power_pct: builtins.float + power_pct: _builtins.float 'Returns power percent (from 0 to 1, or from -1 to 1 for motors that support negative power),\n based on the last command sent to motor. If the last command was a stop command, this value\n will be 0.\n ' - def __init__(self, *, is_on: builtins.bool=..., power_pct: builtins.float=...) -> None: + def __init__(self, *, is_on: _builtins.bool=..., power_pct: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_on', b'is_on', 'power_pct', b'power_pct'] - def ClearField(self, field_name: typing.Literal['is_on', b'is_on', 'power_pct', b'power_pct']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsPoweredResponse = IsPoweredResponse +Global___IsPoweredResponse: _TypeAlias = IsPoweredResponse -@typing.final -class GetPropertiesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPropertiesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a motor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesRequest = GetPropertiesRequest +Global___GetPropertiesRequest: _TypeAlias = GetPropertiesRequest -@typing.final -class GetPropertiesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSITION_REPORTING_FIELD_NUMBER: builtins.int - position_reporting: builtins.bool +@_typing.final +class GetPropertiesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSITION_REPORTING_FIELD_NUMBER: _builtins.int + position_reporting: _builtins.bool 'Returns true if the motor supports reporting its position' - def __init__(self, *, position_reporting: builtins.bool=...) -> None: + def __init__(self, *, position_reporting: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['position_reporting', b'position_reporting'] - def ClearField(self, field_name: typing.Literal['position_reporting', b'position_reporting']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesResponse = GetPropertiesResponse +Global___GetPropertiesResponse: _TypeAlias = GetPropertiesResponse -@typing.final -class Status(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IS_POWERED_FIELD_NUMBER: builtins.int - POSITION_FIELD_NUMBER: builtins.int - IS_MOVING_FIELD_NUMBER: builtins.int - is_powered: builtins.bool +@_typing.final +class Status(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + IS_POWERED_FIELD_NUMBER: _builtins.int + POSITION_FIELD_NUMBER: _builtins.int + IS_MOVING_FIELD_NUMBER: _builtins.int + is_powered: _builtins.bool 'Returns true if the motor is powered' - position: builtins.float + position: _builtins.float 'Returns current position of the motor relative to its home' - is_moving: builtins.bool + is_moving: _builtins.bool 'Returns true if the motor is moving' - def __init__(self, *, is_powered: builtins.bool=..., position: builtins.float=..., is_moving: builtins.bool=...) -> None: + def __init__(self, *, is_powered: _builtins.bool=..., position: _builtins.float=..., is_moving: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_moving', b'is_moving', 'is_powered', b'is_powered', 'position', b'position'] - def ClearField(self, field_name: typing.Literal['is_moving', b'is_moving', 'is_powered', b'is_powered', 'position', b'position']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Status = Status +Global___Status: _TypeAlias = Status -@typing.final -class IsMovingRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class IsMovingRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingRequest = IsMovingRequest +Global___IsMovingRequest: _TypeAlias = IsMovingRequest -@typing.final -class IsMovingResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IS_MOVING_FIELD_NUMBER: builtins.int - is_moving: builtins.bool +@_typing.final +class IsMovingResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + IS_MOVING_FIELD_NUMBER: _builtins.int + is_moving: _builtins.bool - def __init__(self, *, is_moving: builtins.bool=...) -> None: + def __init__(self, *, is_moving: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_moving', b'is_moving'] - def ClearField(self, field_name: typing.Literal['is_moving', b'is_moving']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingResponse = IsMovingResponse \ No newline at end of file +Global___IsMovingResponse: _TypeAlias = IsMovingResponse \ No newline at end of file diff --git a/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.py b/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.py index 9b69ba69cc..784f94937b 100644 --- a/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.py +++ b/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/movementsensor/v1/movementsensor.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/movementsensor/v1/movementsensor.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi b/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi index c63d99cc25..82f4597ee2 100644 --- a/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi +++ b/src/viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi @@ -2,383 +2,427 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from .... import common -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class GetLinearVelocityRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class GetLinearVelocityRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a movement sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLinearVelocityRequest = GetLinearVelocityRequest +Global___GetLinearVelocityRequest: _TypeAlias = GetLinearVelocityRequest -@typing.final -class GetLinearVelocityResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LINEAR_VELOCITY_FIELD_NUMBER: builtins.int +@_typing.final +class GetLinearVelocityResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LINEAR_VELOCITY_FIELD_NUMBER: _builtins.int - @property - def linear_velocity(self) -> common.v1.common_pb2.Vector3: + @_builtins.property + def linear_velocity(self) -> _common_pb2.Vector3: """Linear velocity in m/s across x/y/z axes""" - def __init__(self, *, linear_velocity: common.v1.common_pb2.Vector3 | None=...) -> None: + def __init__(self, *, linear_velocity: _common_pb2.Vector3 | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['linear_velocity', b'linear_velocity'] - def HasField(self, field_name: typing.Literal['linear_velocity', b'linear_velocity']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['linear_velocity', b'linear_velocity'] - def ClearField(self, field_name: typing.Literal['linear_velocity', b'linear_velocity']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLinearVelocityResponse = GetLinearVelocityResponse +Global___GetLinearVelocityResponse: _TypeAlias = GetLinearVelocityResponse -@typing.final -class GetAngularVelocityRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetAngularVelocityRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a movement sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAngularVelocityRequest = GetAngularVelocityRequest +Global___GetAngularVelocityRequest: _TypeAlias = GetAngularVelocityRequest -@typing.final -class GetAngularVelocityResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ANGULAR_VELOCITY_FIELD_NUMBER: builtins.int +@_typing.final +class GetAngularVelocityResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ANGULAR_VELOCITY_FIELD_NUMBER: _builtins.int - @property - def angular_velocity(self) -> common.v1.common_pb2.Vector3: + @_builtins.property + def angular_velocity(self) -> _common_pb2.Vector3: """Angular velocity in degrees/s across x/y/z axes""" - def __init__(self, *, angular_velocity: common.v1.common_pb2.Vector3 | None=...) -> None: + def __init__(self, *, angular_velocity: _common_pb2.Vector3 | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['angular_velocity', b'angular_velocity'] - def HasField(self, field_name: typing.Literal['angular_velocity', b'angular_velocity']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['angular_velocity', b'angular_velocity'] - def ClearField(self, field_name: typing.Literal['angular_velocity', b'angular_velocity']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAngularVelocityResponse = GetAngularVelocityResponse +Global___GetAngularVelocityResponse: _TypeAlias = GetAngularVelocityResponse -@typing.final -class GetCompassHeadingRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetCompassHeadingRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a movement sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetCompassHeadingRequest = GetCompassHeadingRequest +Global___GetCompassHeadingRequest: _TypeAlias = GetCompassHeadingRequest -@typing.final -class GetCompassHeadingResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUE_FIELD_NUMBER: builtins.int - value: builtins.float +@_typing.final +class GetCompassHeadingResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VALUE_FIELD_NUMBER: _builtins.int + value: _builtins.float 'A number from 0-359 in degrees where\n 0 is North, 90 is East, 180 is South, and 270 is West\n ' - def __init__(self, *, value: builtins.float=...) -> None: + def __init__(self, *, value: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def ClearField(self, field_name: typing.Literal['value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetCompassHeadingResponse = GetCompassHeadingResponse +Global___GetCompassHeadingResponse: _TypeAlias = GetCompassHeadingResponse -@typing.final -class GetOrientationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetOrientationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a movement sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOrientationRequest = GetOrientationRequest +Global___GetOrientationRequest: _TypeAlias = GetOrientationRequest -@typing.final -class GetOrientationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORIENTATION_FIELD_NUMBER: builtins.int +@_typing.final +class GetOrientationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ORIENTATION_FIELD_NUMBER: _builtins.int - @property - def orientation(self) -> common.v1.common_pb2.Orientation: + @_builtins.property + def orientation(self) -> _common_pb2.Orientation: """Orientation is returned as an orientation message with OX OY OZ as unit-normalized components of the axis of the vector, and Theta in degrees """ - def __init__(self, *, orientation: common.v1.common_pb2.Orientation | None=...) -> None: + def __init__(self, *, orientation: _common_pb2.Orientation | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['orientation', b'orientation'] - def HasField(self, field_name: typing.Literal['orientation', b'orientation']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['orientation', b'orientation'] - def ClearField(self, field_name: typing.Literal['orientation', b'orientation']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOrientationResponse = GetOrientationResponse +Global___GetOrientationResponse: _TypeAlias = GetOrientationResponse -@typing.final -class GetPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a movement sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionRequest = GetPositionRequest +Global___GetPositionRequest: _TypeAlias = GetPositionRequest -@typing.final -class GetPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COORDINATE_FIELD_NUMBER: builtins.int - ALTITUDE_M_FIELD_NUMBER: builtins.int - altitude_m: builtins.float +@_typing.final +class GetPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + COORDINATE_FIELD_NUMBER: _builtins.int + ALTITUDE_M_FIELD_NUMBER: _builtins.int + altitude_m: _builtins.float - @property - def coordinate(self) -> common.v1.common_pb2.GeoPoint: + @_builtins.property + def coordinate(self) -> _common_pb2.GeoPoint: """Position is returned in a coordinate of latitute and longitude and an altidue in meters """ - def __init__(self, *, coordinate: common.v1.common_pb2.GeoPoint | None=..., altitude_m: builtins.float=...) -> None: + def __init__(self, *, coordinate: _common_pb2.GeoPoint | None=..., altitude_m: _builtins.float=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['coordinate', b'coordinate'] - def HasField(self, field_name: typing.Literal['coordinate', b'coordinate']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['altitude_m', b'altitude_m', 'coordinate', b'coordinate'] - def ClearField(self, field_name: typing.Literal['altitude_m', b'altitude_m', 'coordinate', b'coordinate']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionResponse = GetPositionResponse +Global___GetPositionResponse: _TypeAlias = GetPositionResponse -@typing.final -class GetPropertiesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPropertiesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a movement sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesRequest = GetPropertiesRequest +Global___GetPropertiesRequest: _TypeAlias = GetPropertiesRequest -@typing.final -class GetPropertiesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LINEAR_VELOCITY_SUPPORTED_FIELD_NUMBER: builtins.int - ANGULAR_VELOCITY_SUPPORTED_FIELD_NUMBER: builtins.int - ORIENTATION_SUPPORTED_FIELD_NUMBER: builtins.int - POSITION_SUPPORTED_FIELD_NUMBER: builtins.int - COMPASS_HEADING_SUPPORTED_FIELD_NUMBER: builtins.int - LINEAR_ACCELERATION_SUPPORTED_FIELD_NUMBER: builtins.int - linear_velocity_supported: builtins.bool - angular_velocity_supported: builtins.bool - orientation_supported: builtins.bool - position_supported: builtins.bool - compass_heading_supported: builtins.bool - linear_acceleration_supported: builtins.bool +@_typing.final +class GetPropertiesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LINEAR_VELOCITY_SUPPORTED_FIELD_NUMBER: _builtins.int + ANGULAR_VELOCITY_SUPPORTED_FIELD_NUMBER: _builtins.int + ORIENTATION_SUPPORTED_FIELD_NUMBER: _builtins.int + POSITION_SUPPORTED_FIELD_NUMBER: _builtins.int + COMPASS_HEADING_SUPPORTED_FIELD_NUMBER: _builtins.int + LINEAR_ACCELERATION_SUPPORTED_FIELD_NUMBER: _builtins.int + linear_velocity_supported: _builtins.bool + angular_velocity_supported: _builtins.bool + orientation_supported: _builtins.bool + position_supported: _builtins.bool + compass_heading_supported: _builtins.bool + linear_acceleration_supported: _builtins.bool - def __init__(self, *, linear_velocity_supported: builtins.bool=..., angular_velocity_supported: builtins.bool=..., orientation_supported: builtins.bool=..., position_supported: builtins.bool=..., compass_heading_supported: builtins.bool=..., linear_acceleration_supported: builtins.bool=...) -> None: + def __init__(self, *, linear_velocity_supported: _builtins.bool=..., angular_velocity_supported: _builtins.bool=..., orientation_supported: _builtins.bool=..., position_supported: _builtins.bool=..., compass_heading_supported: _builtins.bool=..., linear_acceleration_supported: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['angular_velocity_supported', b'angular_velocity_supported', 'compass_heading_supported', b'compass_heading_supported', 'linear_acceleration_supported', b'linear_acceleration_supported', 'linear_velocity_supported', b'linear_velocity_supported', 'orientation_supported', b'orientation_supported', 'position_supported', b'position_supported'] - def ClearField(self, field_name: typing.Literal['angular_velocity_supported', b'angular_velocity_supported', 'compass_heading_supported', b'compass_heading_supported', 'linear_acceleration_supported', b'linear_acceleration_supported', 'linear_velocity_supported', b'linear_velocity_supported', 'orientation_supported', b'orientation_supported', 'position_supported', b'position_supported']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesResponse = GetPropertiesResponse +Global___GetPropertiesResponse: _TypeAlias = GetPropertiesResponse -@typing.final -class GetAccuracyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetAccuracyRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a movement sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetAccuracyRequest = GetAccuracyRequest +Global___GetAccuracyRequest: _TypeAlias = GetAccuracyRequest -@typing.final -class GetAccuracyResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetAccuracyResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class AccuracyEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str - value: builtins.float + @_typing.final + class AccuracyEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str + value: _builtins.float - def __init__(self, *, key: builtins.str=..., value: builtins.float=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - ACCURACY_FIELD_NUMBER: builtins.int - POSITION_HDOP_FIELD_NUMBER: builtins.int - POSITION_VDOP_FIELD_NUMBER: builtins.int - POSITION_NMEA_GGA_FIX_FIELD_NUMBER: builtins.int - COMPASS_DEGREES_ERROR_FIELD_NUMBER: builtins.int - position_hdop: builtins.float - position_vdop: builtins.float - position_nmea_gga_fix: builtins.int - compass_degrees_error: builtins.float + ACCURACY_FIELD_NUMBER: _builtins.int + POSITION_HDOP_FIELD_NUMBER: _builtins.int + POSITION_VDOP_FIELD_NUMBER: _builtins.int + POSITION_NMEA_GGA_FIX_FIELD_NUMBER: _builtins.int + COMPASS_DEGREES_ERROR_FIELD_NUMBER: _builtins.int + position_hdop: _builtins.float + position_vdop: _builtins.float + position_nmea_gga_fix: _builtins.int + compass_degrees_error: _builtins.float - @property - def accuracy(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.float]: + @_builtins.property + def accuracy(self) -> _containers.ScalarMap[_builtins.str, _builtins.float]: ... - def __init__(self, *, accuracy: collections.abc.Mapping[builtins.str, builtins.float] | None=..., position_hdop: builtins.float | None=..., position_vdop: builtins.float | None=..., position_nmea_gga_fix: builtins.int | None=..., compass_degrees_error: builtins.float | None=...) -> None: + def __init__(self, *, accuracy: _abc.Mapping[_builtins.str, _builtins.float] | None=..., position_hdop: _builtins.float | None=..., position_vdop: _builtins.float | None=..., position_nmea_gga_fix: _builtins.int | None=..., compass_degrees_error: _builtins.float | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_compass_degrees_error', b'_compass_degrees_error', '_position_hdop', b'_position_hdop', '_position_nmea_gga_fix', b'_position_nmea_gga_fix', '_position_vdop', b'_position_vdop', 'compass_degrees_error', b'compass_degrees_error', 'position_hdop', b'position_hdop', 'position_nmea_gga_fix', b'position_nmea_gga_fix', 'position_vdop', b'position_vdop'] - def HasField(self, field_name: typing.Literal['_compass_degrees_error', b'_compass_degrees_error', '_position_hdop', b'_position_hdop', '_position_nmea_gga_fix', b'_position_nmea_gga_fix', '_position_vdop', b'_position_vdop', 'compass_degrees_error', b'compass_degrees_error', 'position_hdop', b'position_hdop', 'position_nmea_gga_fix', b'position_nmea_gga_fix', 'position_vdop', b'position_vdop']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_compass_degrees_error', b'_compass_degrees_error', '_position_hdop', b'_position_hdop', '_position_nmea_gga_fix', b'_position_nmea_gga_fix', '_position_vdop', b'_position_vdop', 'accuracy', b'accuracy', 'compass_degrees_error', b'compass_degrees_error', 'position_hdop', b'position_hdop', 'position_nmea_gga_fix', b'position_nmea_gga_fix', 'position_vdop', b'position_vdop'] - def ClearField(self, field_name: typing.Literal['_compass_degrees_error', b'_compass_degrees_error', '_position_hdop', b'_position_hdop', '_position_nmea_gga_fix', b'_position_nmea_gga_fix', '_position_vdop', b'_position_vdop', 'accuracy', b'accuracy', 'compass_degrees_error', b'compass_degrees_error', 'position_hdop', b'position_hdop', 'position_nmea_gga_fix', b'position_nmea_gga_fix', 'position_vdop', b'position_vdop']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__compass_degrees_error: _TypeAlias = _typing.Literal['compass_degrees_error'] + _WhichOneofArgType__compass_degrees_error: _TypeAlias = _typing.Literal['_compass_degrees_error', b'_compass_degrees_error'] + _WhichOneofReturnType__position_hdop: _TypeAlias = _typing.Literal['position_hdop'] + _WhichOneofArgType__position_hdop: _TypeAlias = _typing.Literal['_position_hdop', b'_position_hdop'] + _WhichOneofReturnType__position_nmea_gga_fix: _TypeAlias = _typing.Literal['position_nmea_gga_fix'] + _WhichOneofArgType__position_nmea_gga_fix: _TypeAlias = _typing.Literal['_position_nmea_gga_fix', b'_position_nmea_gga_fix'] + _WhichOneofReturnType__position_vdop: _TypeAlias = _typing.Literal['position_vdop'] + _WhichOneofArgType__position_vdop: _TypeAlias = _typing.Literal['_position_vdop', b'_position_vdop'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_compass_degrees_error', b'_compass_degrees_error']) -> typing.Literal['compass_degrees_error'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__compass_degrees_error) -> _WhichOneofReturnType__compass_degrees_error | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_position_hdop', b'_position_hdop']) -> typing.Literal['position_hdop'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__position_hdop) -> _WhichOneofReturnType__position_hdop | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_position_nmea_gga_fix', b'_position_nmea_gga_fix']) -> typing.Literal['position_nmea_gga_fix'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__position_nmea_gga_fix) -> _WhichOneofReturnType__position_nmea_gga_fix | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_position_vdop', b'_position_vdop']) -> typing.Literal['position_vdop'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__position_vdop) -> _WhichOneofReturnType__position_vdop | None: ... -global___GetAccuracyResponse = GetAccuracyResponse +Global___GetAccuracyResponse: _TypeAlias = GetAccuracyResponse -@typing.final -class GetLinearAccelerationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetLinearAccelerationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a movement sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLinearAccelerationRequest = GetLinearAccelerationRequest +Global___GetLinearAccelerationRequest: _TypeAlias = GetLinearAccelerationRequest -@typing.final -class GetLinearAccelerationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LINEAR_ACCELERATION_FIELD_NUMBER: builtins.int +@_typing.final +class GetLinearAccelerationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LINEAR_ACCELERATION_FIELD_NUMBER: _builtins.int - @property - def linear_acceleration(self) -> common.v1.common_pb2.Vector3: + @_builtins.property + def linear_acceleration(self) -> _common_pb2.Vector3: """Linear acceleration in m/s across x/y/z axes""" - def __init__(self, *, linear_acceleration: common.v1.common_pb2.Vector3 | None=...) -> None: + def __init__(self, *, linear_acceleration: _common_pb2.Vector3 | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['linear_acceleration', b'linear_acceleration'] - def HasField(self, field_name: typing.Literal['linear_acceleration', b'linear_acceleration']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['linear_acceleration', b'linear_acceleration'] - def ClearField(self, field_name: typing.Literal['linear_acceleration', b'linear_acceleration']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLinearAccelerationResponse = GetLinearAccelerationResponse \ No newline at end of file +Global___GetLinearAccelerationResponse: _TypeAlias = GetLinearAccelerationResponse \ No newline at end of file diff --git a/src/viam/gen/component/posetracker/v1/pose_tracker_pb2.py b/src/viam/gen/component/posetracker/v1/pose_tracker_pb2.py index fe089e8e6c..5eb9c00164 100644 --- a/src/viam/gen/component/posetracker/v1/pose_tracker_pb2.py +++ b/src/viam/gen/component/posetracker/v1/pose_tracker_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/posetracker/v1/pose_tracker.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/posetracker/v1/pose_tracker.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/posetracker/v1/pose_tracker_pb2.pyi b/src/viam/gen/component/posetracker/v1/pose_tracker_pb2.pyi index 1ff7259f11..bb7b327463 100644 --- a/src/viam/gen/component/posetracker/v1/pose_tracker_pb2.pyi +++ b/src/viam/gen/component/posetracker/v1/pose_tracker_pb2.pyi @@ -2,78 +2,88 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from .... import common -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing.final -class GetPosesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - BODY_NAMES_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPosesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + BODY_NAMES_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the pose tracker' - @property - def body_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def body_names(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Names of the bodies whose poses are being requested. In the event this parameter is not supplied or is an empty list, all available poses are returned """ - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., body_names: collections.abc.Iterable[builtins.str] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., body_names: _abc.Iterable[_builtins.str] | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['body_names', b'body_names', 'extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['body_names', b'body_names', 'extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPosesRequest = GetPosesRequest +Global___GetPosesRequest: _TypeAlias = GetPosesRequest -@typing.final -class GetPosesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetPosesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class BodyPosesEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class BodyPosesEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> common.v1.common_pb2.PoseInFrame: + @_builtins.property + def value(self) -> _common_pb2.PoseInFrame: ... - def __init__(self, *, key: builtins.str=..., value: common.v1.common_pb2.PoseInFrame | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _common_pb2.PoseInFrame | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - BODY_POSES_FIELD_NUMBER: builtins.int + BODY_POSES_FIELD_NUMBER: _builtins.int - @property - def body_poses(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, common.v1.common_pb2.PoseInFrame]: + @_builtins.property + def body_poses(self) -> _containers.MessageMap[_builtins.str, _common_pb2.PoseInFrame]: """Mapping of each body name to the pose representing the center of the body.""" - def __init__(self, *, body_poses: collections.abc.Mapping[builtins.str, common.v1.common_pb2.PoseInFrame] | None=...) -> None: + def __init__(self, *, body_poses: _abc.Mapping[_builtins.str, _common_pb2.PoseInFrame] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['body_poses', b'body_poses'] - def ClearField(self, field_name: typing.Literal['body_poses', b'body_poses']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPosesResponse = GetPosesResponse \ No newline at end of file +Global___GetPosesResponse: _TypeAlias = GetPosesResponse \ No newline at end of file diff --git a/src/viam/gen/component/powersensor/v1/powersensor_pb2.py b/src/viam/gen/component/powersensor/v1/powersensor_pb2.py index cef983f910..18107c9bf4 100644 --- a/src/viam/gen/component/powersensor/v1/powersensor_pb2.py +++ b/src/viam/gen/component/powersensor/v1/powersensor_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/powersensor/v1/powersensor.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/powersensor/v1/powersensor.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/powersensor/v1/powersensor_pb2.pyi b/src/viam/gen/component/powersensor/v1/powersensor_pb2.pyi index d7fdb4669c..c3d32e6851 100644 --- a/src/viam/gen/component/powersensor/v1/powersensor_pb2.pyi +++ b/src/viam/gen/component/powersensor/v1/powersensor_pb2.pyi @@ -2,123 +2,137 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class GetVoltageRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class GetVoltageRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a power sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetVoltageRequest = GetVoltageRequest - -@typing.final -class GetVoltageResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VOLTS_FIELD_NUMBER: builtins.int - IS_AC_FIELD_NUMBER: builtins.int - volts: builtins.float +Global___GetVoltageRequest: _TypeAlias = GetVoltageRequest + +@_typing.final +class GetVoltageResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VOLTS_FIELD_NUMBER: _builtins.int + IS_AC_FIELD_NUMBER: _builtins.int + volts: _builtins.float 'Voltage in volts' - is_ac: builtins.bool + is_ac: _builtins.bool 'Bool describing whether the voltage is DC or AC' - def __init__(self, *, volts: builtins.float=..., is_ac: builtins.bool=...) -> None: + def __init__(self, *, volts: _builtins.float=..., is_ac: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_ac', b'is_ac', 'volts', b'volts'] - def ClearField(self, field_name: typing.Literal['is_ac', b'is_ac', 'volts', b'volts']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetVoltageResponse = GetVoltageResponse - -@typing.final -class GetCurrentRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___GetVoltageResponse: _TypeAlias = GetVoltageResponse + +@_typing.final +class GetCurrentRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a power sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetCurrentRequest = GetCurrentRequest - -@typing.final -class GetCurrentResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - AMPERES_FIELD_NUMBER: builtins.int - IS_AC_FIELD_NUMBER: builtins.int - amperes: builtins.float +Global___GetCurrentRequest: _TypeAlias = GetCurrentRequest + +@_typing.final +class GetCurrentResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + AMPERES_FIELD_NUMBER: _builtins.int + IS_AC_FIELD_NUMBER: _builtins.int + amperes: _builtins.float 'Current in amperes' - is_ac: builtins.bool + is_ac: _builtins.bool 'Bool descibing whether the current is DC or AC' - def __init__(self, *, amperes: builtins.float=..., is_ac: builtins.bool=...) -> None: + def __init__(self, *, amperes: _builtins.float=..., is_ac: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['amperes', b'amperes', 'is_ac', b'is_ac'] - def ClearField(self, field_name: typing.Literal['amperes', b'amperes', 'is_ac', b'is_ac']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetCurrentResponse = GetCurrentResponse - -@typing.final -class GetPowerRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___GetCurrentResponse: _TypeAlias = GetCurrentResponse + +@_typing.final +class GetPowerRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a power sensor' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPowerRequest = GetPowerRequest +Global___GetPowerRequest: _TypeAlias = GetPowerRequest -@typing.final -class GetPowerResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - WATTS_FIELD_NUMBER: builtins.int - watts: builtins.float +@_typing.final +class GetPowerResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + WATTS_FIELD_NUMBER: _builtins.int + watts: _builtins.float 'Power in watts' - def __init__(self, *, watts: builtins.float=...) -> None: + def __init__(self, *, watts: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['watts', b'watts'] - def ClearField(self, field_name: typing.Literal['watts', b'watts']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPowerResponse = GetPowerResponse \ No newline at end of file +Global___GetPowerResponse: _TypeAlias = GetPowerResponse \ No newline at end of file diff --git a/src/viam/gen/component/sensor/v1/sensor_pb2.py b/src/viam/gen/component/sensor/v1/sensor_pb2.py index d9236b72c4..c83ce870ca 100644 --- a/src/viam/gen/component/sensor/v1/sensor_pb2.py +++ b/src/viam/gen/component/sensor/v1/sensor_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/sensor/v1/sensor.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/sensor/v1/sensor.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/sensor/v1/sensor_pb2.pyi b/src/viam/gen/component/sensor/v1/sensor_pb2.pyi index ab07168813..554b3b57f8 100644 --- a/src/viam/gen/component/sensor/v1/sensor_pb2.pyi +++ b/src/viam/gen/component/sensor/v1/sensor_pb2.pyi @@ -2,5 +2,5 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import google.protobuf.descriptor -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor \ No newline at end of file +from google.protobuf import descriptor as _descriptor +DESCRIPTOR: _descriptor.FileDescriptor \ No newline at end of file diff --git a/src/viam/gen/component/servo/v1/servo_pb2.py b/src/viam/gen/component/servo/v1/servo_pb2.py index da9e9da06a..de3650784c 100644 --- a/src/viam/gen/component/servo/v1/servo_pb2.py +++ b/src/viam/gen/component/servo/v1/servo_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/servo/v1/servo.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/servo/v1/servo.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/servo/v1/servo_pb2.pyi b/src/viam/gen/component/servo/v1/servo_pb2.pyi index 75602b1d07..46fd9cb91e 100644 --- a/src/viam/gen/component/servo/v1/servo_pb2.pyi +++ b/src/viam/gen/component/servo/v1/servo_pb2.pyi @@ -2,149 +2,164 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class MoveRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - ANGLE_DEG_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class MoveRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + ANGLE_DEG_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'the name of the servo, as registered' - angle_deg: builtins.int + angle_deg: _builtins.int 'the degrees by which to rotate the servo.' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., angle_deg: builtins.int=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., angle_deg: _builtins.int=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['angle_deg', b'angle_deg', 'extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['angle_deg', b'angle_deg', 'extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MoveRequest = MoveRequest +Global___MoveRequest: _TypeAlias = MoveRequest -@typing.final -class MoveResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class MoveResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___MoveResponse = MoveResponse +Global___MoveResponse: _TypeAlias = MoveResponse -@typing.final -class GetPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'the name of the servo, as registered' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionRequest = GetPositionRequest +Global___GetPositionRequest: _TypeAlias = GetPositionRequest -@typing.final -class GetPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSITION_DEG_FIELD_NUMBER: builtins.int - position_deg: builtins.int +@_typing.final +class GetPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSITION_DEG_FIELD_NUMBER: _builtins.int + position_deg: _builtins.int 'the degrees from neutral by which the servo is currently rotated.' - def __init__(self, *, position_deg: builtins.int=...) -> None: + def __init__(self, *, position_deg: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['position_deg', b'position_deg'] - def ClearField(self, field_name: typing.Literal['position_deg', b'position_deg']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionResponse = GetPositionResponse +Global___GetPositionResponse: _TypeAlias = GetPositionResponse -@typing.final -class StopRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class StopRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of a servo' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopRequest = StopRequest +Global___StopRequest: _TypeAlias = StopRequest -@typing.final -class StopResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StopResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___StopResponse = StopResponse +Global___StopResponse: _TypeAlias = StopResponse -@typing.final -class Status(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSITION_DEG_FIELD_NUMBER: builtins.int - IS_MOVING_FIELD_NUMBER: builtins.int - position_deg: builtins.int - is_moving: builtins.bool +@_typing.final +class Status(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSITION_DEG_FIELD_NUMBER: _builtins.int + IS_MOVING_FIELD_NUMBER: _builtins.int + position_deg: _builtins.int + is_moving: _builtins.bool - def __init__(self, *, position_deg: builtins.int=..., is_moving: builtins.bool=...) -> None: + def __init__(self, *, position_deg: _builtins.int=..., is_moving: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_moving', b'is_moving', 'position_deg', b'position_deg'] - def ClearField(self, field_name: typing.Literal['is_moving', b'is_moving', 'position_deg', b'position_deg']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Status = Status +Global___Status: _TypeAlias = Status -@typing.final -class IsMovingRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class IsMovingRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingRequest = IsMovingRequest +Global___IsMovingRequest: _TypeAlias = IsMovingRequest -@typing.final -class IsMovingResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IS_MOVING_FIELD_NUMBER: builtins.int - is_moving: builtins.bool +@_typing.final +class IsMovingResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + IS_MOVING_FIELD_NUMBER: _builtins.int + is_moving: _builtins.bool - def __init__(self, *, is_moving: builtins.bool=...) -> None: + def __init__(self, *, is_moving: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['is_moving', b'is_moving'] - def ClearField(self, field_name: typing.Literal['is_moving', b'is_moving']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___IsMovingResponse = IsMovingResponse \ No newline at end of file +Global___IsMovingResponse: _TypeAlias = IsMovingResponse \ No newline at end of file diff --git a/src/viam/gen/component/switch/v1/switch_pb2.py b/src/viam/gen/component/switch/v1/switch_pb2.py index 9990be8a09..e70975660e 100644 --- a/src/viam/gen/component/switch/v1/switch_pb2.py +++ b/src/viam/gen/component/switch/v1/switch_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/switch/v1/switch.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/switch/v1/switch.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/component/switch/v1/switch_pb2.pyi b/src/viam/gen/component/switch/v1/switch_pb2.pyi index 829e7c89ff..14e26d1859 100644 --- a/src/viam/gen/component/switch/v1/switch_pb2.pyi +++ b/src/viam/gen/component/switch/v1/switch_pb2.pyi @@ -2,115 +2,128 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing.final -class SetPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - POSITION_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - position: builtins.int +@_typing.final +class SetPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + POSITION_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + position: _builtins.int - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., position: builtins.int=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., position: _builtins.int=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'position', b'position'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'position', b'position']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetPositionRequest = SetPositionRequest +Global___SetPositionRequest: _TypeAlias = SetPositionRequest -@typing.final -class SetPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetPositionResponse = SetPositionResponse +Global___SetPositionResponse: _TypeAlias = SetPositionResponse -@typing.final -class GetPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionRequest = GetPositionRequest +Global___GetPositionRequest: _TypeAlias = GetPositionRequest -@typing.final -class GetPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSITION_FIELD_NUMBER: builtins.int - position: builtins.int +@_typing.final +class GetPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSITION_FIELD_NUMBER: _builtins.int + position: _builtins.int - def __init__(self, *, position: builtins.int=...) -> None: + def __init__(self, *, position: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['position', b'position'] - def ClearField(self, field_name: typing.Literal['position', b'position']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionResponse = GetPositionResponse +Global___GetPositionResponse: _TypeAlias = GetPositionResponse -@typing.final -class GetNumberOfPositionsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetNumberOfPositionsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetNumberOfPositionsRequest = GetNumberOfPositionsRequest +Global___GetNumberOfPositionsRequest: _TypeAlias = GetNumberOfPositionsRequest -@typing.final -class GetNumberOfPositionsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NUMBER_OF_POSITIONS_FIELD_NUMBER: builtins.int - LABELS_FIELD_NUMBER: builtins.int - number_of_positions: builtins.int +@_typing.final +class GetNumberOfPositionsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NUMBER_OF_POSITIONS_FIELD_NUMBER: _builtins.int + LABELS_FIELD_NUMBER: _builtins.int + number_of_positions: _builtins.int - @property - def labels(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def labels(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, number_of_positions: builtins.int=..., labels: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, number_of_positions: _builtins.int=..., labels: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['labels', b'labels', 'number_of_positions', b'number_of_positions'] - def ClearField(self, field_name: typing.Literal['labels', b'labels', 'number_of_positions', b'number_of_positions']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetNumberOfPositionsResponse = GetNumberOfPositionsResponse \ No newline at end of file +Global___GetNumberOfPositionsResponse: _TypeAlias = GetNumberOfPositionsResponse \ No newline at end of file diff --git a/src/viam/gen/component/testecho/v1/testecho_pb2.py b/src/viam/gen/component/testecho/v1/testecho_pb2.py index 5df37b3f86..7c2cf8c55d 100644 --- a/src/viam/gen/component/testecho/v1/testecho_pb2.py +++ b/src/viam/gen/component/testecho/v1/testecho_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/testecho/v1/testecho.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'component/testecho/v1/testecho.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$component/testecho/v1/testecho.proto\x12\x1aviam.component.testecho.v1\x1a\x16common/v1/common.proto";\n\x0bEchoRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message"(\n\x0cEchoResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message"C\n\x13EchoMultipleRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message"0\n\x14EchoMultipleResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message"?\n\x0fEchoBiDiRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message",\n\x10EchoBiDiResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message"!\n\x0bStopRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name"\x0e\n\x0cStopResponse2\xb3\x03\n\x0fTestEchoService\x12[\n\x04Echo\x12\'.viam.component.testecho.v1.EchoRequest\x1a(.viam.component.testecho.v1.EchoResponse"\x00\x12y\n\x0cEchoMultiple\x12/.viam.component.testecho.v1.EchoMultipleRequest\x1a0.viam.component.testecho.v1.EchoMultipleResponse"\x04\xa0\x92)\x010\x01\x12k\n\x08EchoBiDi\x12+.viam.component.testecho.v1.EchoBiDiRequest\x1a,.viam.component.testecho.v1.EchoBiDiResponse"\x00(\x010\x01\x12[\n\x04Stop\x12\'.viam.component.testecho.v1.StopRequest\x1a(.viam.component.testecho.v1.StopResponse"\x00BG\n\x1ecom.viam.component.testecho.v1Z%go.viam.com/api/component/testecho/v1b\x06proto3') diff --git a/src/viam/gen/component/testecho/v1/testecho_pb2.pyi b/src/viam/gen/component/testecho/v1/testecho_pb2.pyi index 9761268085..c93034d5f7 100644 --- a/src/viam/gen/component/testecho/v1/testecho_pb2.pyi +++ b/src/viam/gen/component/testecho/v1/testecho_pb2.pyi @@ -2,113 +2,125 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class EchoRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - name: builtins.str - message: builtins.str - - def __init__(self, *, name: builtins.str=..., message: builtins.str=...) -> None: +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class EchoRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + name: _builtins.str + message: _builtins.str + + def __init__(self, *, name: _builtins.str=..., message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['message', b'message', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoRequest = EchoRequest +Global___EchoRequest: _TypeAlias = EchoRequest -@typing.final -class EchoResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str +@_typing.final +class EchoResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str - def __init__(self, *, message: builtins.str=...) -> None: + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoResponse = EchoResponse +Global___EchoResponse: _TypeAlias = EchoResponse -@typing.final -class EchoMultipleRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - name: builtins.str - message: builtins.str +@_typing.final +class EchoMultipleRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + name: _builtins.str + message: _builtins.str - def __init__(self, *, name: builtins.str=..., message: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=..., message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['message', b'message', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoMultipleRequest = EchoMultipleRequest +Global___EchoMultipleRequest: _TypeAlias = EchoMultipleRequest -@typing.final -class EchoMultipleResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str +@_typing.final +class EchoMultipleResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str - def __init__(self, *, message: builtins.str=...) -> None: + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoMultipleResponse = EchoMultipleResponse +Global___EchoMultipleResponse: _TypeAlias = EchoMultipleResponse -@typing.final -class EchoBiDiRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - name: builtins.str - message: builtins.str +@_typing.final +class EchoBiDiRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + name: _builtins.str + message: _builtins.str - def __init__(self, *, name: builtins.str=..., message: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=..., message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['message', b'message', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoBiDiRequest = EchoBiDiRequest +Global___EchoBiDiRequest: _TypeAlias = EchoBiDiRequest -@typing.final -class EchoBiDiResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str +@_typing.final +class EchoBiDiResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str - def __init__(self, *, message: builtins.str=...) -> None: + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoBiDiResponse = EchoBiDiResponse +Global___EchoBiDiResponse: _TypeAlias = EchoBiDiResponse -@typing.final -class StopRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class StopRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopRequest = StopRequest +Global___StopRequest: _TypeAlias = StopRequest -@typing.final -class StopResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StopResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___StopResponse = StopResponse \ No newline at end of file +Global___StopResponse: _TypeAlias = StopResponse \ No newline at end of file diff --git a/src/viam/gen/module/v1/module_pb2.py b/src/viam/gen/module/v1/module_pb2.py index dfec7f8f9b..034b8ecaf0 100644 --- a/src/viam/gen/module/v1/module_pb2.py +++ b/src/viam/gen/module/v1/module_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'module/v1/module.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'module/v1/module.proto') _sym_db = _symbol_database.Default() from ...app.v1 import robot_pb2 as app_dot_v1_dot_robot__pb2 from ...robot.v1 import robot_pb2 as robot_dot_v1_dot_robot__pb2 diff --git a/src/viam/gen/module/v1/module_pb2.pyi b/src/viam/gen/module/v1/module_pb2.pyi index 168d8aee3f..a4891fefd3 100644 --- a/src/viam/gen/module/v1/module_pb2.pyi +++ b/src/viam/gen/module/v1/module_pb2.pyi @@ -2,215 +2,234 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -from ... import app -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -from ... import robot -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +from app.v1 import robot_pb2 as _robot_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from robot.v1 import robot_pb2 as _robot_pb2_1 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing.final -class AddResourceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONFIG_FIELD_NUMBER: builtins.int - DEPENDENCIES_FIELD_NUMBER: builtins.int +@_typing.final +class AddResourceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CONFIG_FIELD_NUMBER: _builtins.int + DEPENDENCIES_FIELD_NUMBER: _builtins.int - @property - def config(self) -> app.v1.robot_pb2.ComponentConfig: + @_builtins.property + def config(self) -> _robot_pb2.ComponentConfig: ... - @property - def dependencies(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def dependencies(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, config: app.v1.robot_pb2.ComponentConfig | None=..., dependencies: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, config: _robot_pb2.ComponentConfig | None=..., dependencies: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['config', b'config'] - def HasField(self, field_name: typing.Literal['config', b'config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['config', b'config', 'dependencies', b'dependencies'] - def ClearField(self, field_name: typing.Literal['config', b'config', 'dependencies', b'dependencies']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AddResourceRequest = AddResourceRequest +Global___AddResourceRequest: _TypeAlias = AddResourceRequest -@typing.final -class AddResourceResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class AddResourceResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AddResourceResponse = AddResourceResponse +Global___AddResourceResponse: _TypeAlias = AddResourceResponse -@typing.final -class ReconfigureResourceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONFIG_FIELD_NUMBER: builtins.int - DEPENDENCIES_FIELD_NUMBER: builtins.int +@_typing.final +class ReconfigureResourceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CONFIG_FIELD_NUMBER: _builtins.int + DEPENDENCIES_FIELD_NUMBER: _builtins.int - @property - def config(self) -> app.v1.robot_pb2.ComponentConfig: + @_builtins.property + def config(self) -> _robot_pb2.ComponentConfig: ... - @property - def dependencies(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def dependencies(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, config: app.v1.robot_pb2.ComponentConfig | None=..., dependencies: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, config: _robot_pb2.ComponentConfig | None=..., dependencies: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['config', b'config'] - def HasField(self, field_name: typing.Literal['config', b'config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['config', b'config', 'dependencies', b'dependencies'] - def ClearField(self, field_name: typing.Literal['config', b'config', 'dependencies', b'dependencies']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ReconfigureResourceRequest = ReconfigureResourceRequest +Global___ReconfigureResourceRequest: _TypeAlias = ReconfigureResourceRequest -@typing.final -class ReconfigureResourceResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ReconfigureResourceResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ReconfigureResourceResponse = ReconfigureResourceResponse +Global___ReconfigureResourceResponse: _TypeAlias = ReconfigureResourceResponse -@typing.final -class RemoveResourceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class RemoveResourceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoveResourceRequest = RemoveResourceRequest +Global___RemoveResourceRequest: _TypeAlias = RemoveResourceRequest -@typing.final -class RemoveResourceResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class RemoveResourceResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___RemoveResourceResponse = RemoveResourceResponse +Global___RemoveResourceResponse: _TypeAlias = RemoveResourceResponse -@typing.final -class HandlerDefinition(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SUBTYPE_FIELD_NUMBER: builtins.int - MODELS_FIELD_NUMBER: builtins.int +@_typing.final +class HandlerDefinition(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SUBTYPE_FIELD_NUMBER: _builtins.int + MODELS_FIELD_NUMBER: _builtins.int - @property - def subtype(self) -> robot.v1.robot_pb2.ResourceRPCSubtype: + @_builtins.property + def subtype(self) -> _robot_pb2_1.ResourceRPCSubtype: ... - @property - def models(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def models(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, subtype: robot.v1.robot_pb2.ResourceRPCSubtype | None=..., models: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, subtype: _robot_pb2_1.ResourceRPCSubtype | None=..., models: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['subtype', b'subtype'] - def HasField(self, field_name: typing.Literal['subtype', b'subtype']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['models', b'models', 'subtype', b'subtype'] - def ClearField(self, field_name: typing.Literal['models', b'models', 'subtype', b'subtype']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___HandlerDefinition = HandlerDefinition +Global___HandlerDefinition: _TypeAlias = HandlerDefinition -@typing.final -class HandlerMap(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HANDLERS_FIELD_NUMBER: builtins.int +@_typing.final +class HandlerMap(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + HANDLERS_FIELD_NUMBER: _builtins.int - @property - def handlers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___HandlerDefinition]: + @_builtins.property + def handlers(self) -> _containers.RepeatedCompositeFieldContainer[Global___HandlerDefinition]: ... - def __init__(self, *, handlers: collections.abc.Iterable[global___HandlerDefinition] | None=...) -> None: + def __init__(self, *, handlers: _abc.Iterable[Global___HandlerDefinition] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['handlers', b'handlers'] - def ClearField(self, field_name: typing.Literal['handlers', b'handlers']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___HandlerMap = HandlerMap +Global___HandlerMap: _TypeAlias = HandlerMap -@typing.final -class ReadyRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARENT_ADDRESS_FIELD_NUMBER: builtins.int - WEBRTC_OFFER_FIELD_NUMBER: builtins.int - parent_address: builtins.str - webrtc_offer: builtins.str +@_typing.final +class ReadyRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PARENT_ADDRESS_FIELD_NUMBER: _builtins.int + WEBRTC_OFFER_FIELD_NUMBER: _builtins.int + parent_address: _builtins.str + webrtc_offer: _builtins.str - def __init__(self, *, parent_address: builtins.str=..., webrtc_offer: builtins.str=...) -> None: + def __init__(self, *, parent_address: _builtins.str=..., webrtc_offer: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['parent_address', b'parent_address', 'webrtc_offer', b'webrtc_offer'] - def ClearField(self, field_name: typing.Literal['parent_address', b'parent_address', 'webrtc_offer', b'webrtc_offer']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ReadyRequest = ReadyRequest +Global___ReadyRequest: _TypeAlias = ReadyRequest -@typing.final -class ReadyResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - READY_FIELD_NUMBER: builtins.int - HANDLERMAP_FIELD_NUMBER: builtins.int - WEBRTC_ANSWER_FIELD_NUMBER: builtins.int - ready: builtins.bool - webrtc_answer: builtins.str +@_typing.final +class ReadyResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + READY_FIELD_NUMBER: _builtins.int + HANDLERMAP_FIELD_NUMBER: _builtins.int + WEBRTC_ANSWER_FIELD_NUMBER: _builtins.int + ready: _builtins.bool + webrtc_answer: _builtins.str - @property - def handlermap(self) -> global___HandlerMap: + @_builtins.property + def handlermap(self) -> Global___HandlerMap: ... - def __init__(self, *, ready: builtins.bool=..., handlermap: global___HandlerMap | None=..., webrtc_answer: builtins.str=...) -> None: + def __init__(self, *, ready: _builtins.bool=..., handlermap: Global___HandlerMap | None=..., webrtc_answer: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['handlermap', b'handlermap'] - def HasField(self, field_name: typing.Literal['handlermap', b'handlermap']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['handlermap', b'handlermap', 'ready', b'ready', 'webrtc_answer', b'webrtc_answer'] - def ClearField(self, field_name: typing.Literal['handlermap', b'handlermap', 'ready', b'ready', 'webrtc_answer', b'webrtc_answer']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ReadyResponse = ReadyResponse +Global___ReadyResponse: _TypeAlias = ReadyResponse -@typing.final -class ValidateConfigRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONFIG_FIELD_NUMBER: builtins.int +@_typing.final +class ValidateConfigRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CONFIG_FIELD_NUMBER: _builtins.int - @property - def config(self) -> app.v1.robot_pb2.ComponentConfig: + @_builtins.property + def config(self) -> _robot_pb2.ComponentConfig: ... - def __init__(self, *, config: app.v1.robot_pb2.ComponentConfig | None=...) -> None: + def __init__(self, *, config: _robot_pb2.ComponentConfig | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['config', b'config'] - def HasField(self, field_name: typing.Literal['config', b'config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['config', b'config'] - def ClearField(self, field_name: typing.Literal['config', b'config']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ValidateConfigRequest = ValidateConfigRequest +Global___ValidateConfigRequest: _TypeAlias = ValidateConfigRequest -@typing.final -class ValidateConfigResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DEPENDENCIES_FIELD_NUMBER: builtins.int - OPTIONAL_DEPENDENCIES_FIELD_NUMBER: builtins.int +@_typing.final +class ValidateConfigResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DEPENDENCIES_FIELD_NUMBER: _builtins.int + OPTIONAL_DEPENDENCIES_FIELD_NUMBER: _builtins.int - @property - def dependencies(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def dependencies(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def optional_dependencies(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def optional_dependencies(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, dependencies: collections.abc.Iterable[builtins.str] | None=..., optional_dependencies: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, dependencies: _abc.Iterable[_builtins.str] | None=..., optional_dependencies: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['dependencies', b'dependencies', 'optional_dependencies', b'optional_dependencies'] - def ClearField(self, field_name: typing.Literal['dependencies', b'dependencies', 'optional_dependencies', b'optional_dependencies']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ValidateConfigResponse = ValidateConfigResponse \ No newline at end of file +Global___ValidateConfigResponse: _TypeAlias = ValidateConfigResponse \ No newline at end of file diff --git a/src/viam/gen/opentelemetry/proto/common/v1/common_pb2.py b/src/viam/gen/opentelemetry/proto/common/v1/common_pb2.py index 1f32956f99..68a49a1ebc 100644 --- a/src/viam/gen/opentelemetry/proto/common/v1/common_pb2.py +++ b/src/viam/gen/opentelemetry/proto/common/v1/common_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'opentelemetry/proto/common/v1/common.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'opentelemetry/proto/common/v1/common.proto') _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n*opentelemetry/proto/common/v1/common.proto\x12\x1dopentelemetry.proto.common.v1"\xe0\x02\n\x08AnyValue\x12#\n\x0cstring_value\x18\x01 \x01(\tH\x00R\x0bstringValue\x12\x1f\n\nbool_value\x18\x02 \x01(\x08H\x00R\tboolValue\x12\x1d\n\tint_value\x18\x03 \x01(\x03H\x00R\x08intValue\x12#\n\x0cdouble_value\x18\x04 \x01(\x01H\x00R\x0bdoubleValue\x12L\n\x0barray_value\x18\x05 \x01(\x0b2).opentelemetry.proto.common.v1.ArrayValueH\x00R\narrayValue\x12P\n\x0ckvlist_value\x18\x06 \x01(\x0b2+.opentelemetry.proto.common.v1.KeyValueListH\x00R\x0bkvlistValue\x12!\n\x0bbytes_value\x18\x07 \x01(\x0cH\x00R\nbytesValueB\x07\n\x05value"M\n\nArrayValue\x12?\n\x06values\x18\x01 \x03(\x0b2\'.opentelemetry.proto.common.v1.AnyValueR\x06values"O\n\x0cKeyValueList\x12?\n\x06values\x18\x01 \x03(\x0b2\'.opentelemetry.proto.common.v1.KeyValueR\x06values"[\n\x08KeyValue\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12=\n\x05value\x18\x02 \x01(\x0b2\'.opentelemetry.proto.common.v1.AnyValueR\x05value"\xc7\x01\n\x14InstrumentationScope\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07version\x18\x02 \x01(\tR\x07version\x12G\n\nattributes\x18\x03 \x03(\x0b2\'.opentelemetry.proto.common.v1.KeyValueR\nattributes\x128\n\x18dropped_attributes_count\x18\x04 \x01(\rR\x16droppedAttributesCount"\x82\x01\n\tEntityRef\x12\x1d\n\nschema_url\x18\x01 \x01(\tR\tschemaUrl\x12\x12\n\x04type\x18\x02 \x01(\tR\x04type\x12\x17\n\x07id_keys\x18\x03 \x03(\tR\x06idKeys\x12)\n\x10description_keys\x18\x04 \x03(\tR\x0fdescriptionKeysB{\n io.opentelemetry.proto.common.v1B\x0bCommonProtoP\x01Z(go.opentelemetry.io/proto/otlp/common/v1\xaa\x02\x1dOpenTelemetry.Proto.Common.V1b\x06proto3') _globals = globals() diff --git a/src/viam/gen/opentelemetry/proto/common/v1/common_pb2.pyi b/src/viam/gen/opentelemetry/proto/common/v1/common_pb2.pyi index 4408ece972..ee3ca74149 100644 --- a/src/viam/gen/opentelemetry/proto/common/v1/common_pb2.pyi +++ b/src/viam/gen/opentelemetry/proto/common/v1/common_pb2.pyi @@ -15,87 +15,97 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class AnyValue(google.protobuf.message.Message): +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class AnyValue(_message.Message): """Represents any type of attribute value. AnyValue may contain a primitive value such as a string or integer or it may contain an arbitrary nested object containing arrays, key-value lists and primitives. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - STRING_VALUE_FIELD_NUMBER: builtins.int - BOOL_VALUE_FIELD_NUMBER: builtins.int - INT_VALUE_FIELD_NUMBER: builtins.int - DOUBLE_VALUE_FIELD_NUMBER: builtins.int - ARRAY_VALUE_FIELD_NUMBER: builtins.int - KVLIST_VALUE_FIELD_NUMBER: builtins.int - BYTES_VALUE_FIELD_NUMBER: builtins.int - string_value: builtins.str - bool_value: builtins.bool - int_value: builtins.int - double_value: builtins.float - bytes_value: builtins.bytes + DESCRIPTOR: _descriptor.Descriptor + STRING_VALUE_FIELD_NUMBER: _builtins.int + BOOL_VALUE_FIELD_NUMBER: _builtins.int + INT_VALUE_FIELD_NUMBER: _builtins.int + DOUBLE_VALUE_FIELD_NUMBER: _builtins.int + ARRAY_VALUE_FIELD_NUMBER: _builtins.int + KVLIST_VALUE_FIELD_NUMBER: _builtins.int + BYTES_VALUE_FIELD_NUMBER: _builtins.int + string_value: _builtins.str + bool_value: _builtins.bool + int_value: _builtins.int + double_value: _builtins.float + bytes_value: _builtins.bytes - @property - def array_value(self) -> global___ArrayValue: + @_builtins.property + def array_value(self) -> Global___ArrayValue: ... - @property - def kvlist_value(self) -> global___KeyValueList: + @_builtins.property + def kvlist_value(self) -> Global___KeyValueList: ... - def __init__(self, *, string_value: builtins.str=..., bool_value: builtins.bool=..., int_value: builtins.int=..., double_value: builtins.float=..., array_value: global___ArrayValue | None=..., kvlist_value: global___KeyValueList | None=..., bytes_value: builtins.bytes=...) -> None: + def __init__(self, *, string_value: _builtins.str=..., bool_value: _builtins.bool=..., int_value: _builtins.int=..., double_value: _builtins.float=..., array_value: Global___ArrayValue | None=..., kvlist_value: Global___KeyValueList | None=..., bytes_value: _builtins.bytes=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['array_value', b'array_value', 'bool_value', b'bool_value', 'bytes_value', b'bytes_value', 'double_value', b'double_value', 'int_value', b'int_value', 'kvlist_value', b'kvlist_value', 'string_value', b'string_value', 'value', b'value'] - def HasField(self, field_name: typing.Literal['array_value', b'array_value', 'bool_value', b'bool_value', 'bytes_value', b'bytes_value', 'double_value', b'double_value', 'int_value', b'int_value', 'kvlist_value', b'kvlist_value', 'string_value', b'string_value', 'value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['array_value', b'array_value', 'bool_value', b'bool_value', 'bytes_value', b'bytes_value', 'double_value', b'double_value', 'int_value', b'int_value', 'kvlist_value', b'kvlist_value', 'string_value', b'string_value', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['array_value', b'array_value', 'bool_value', b'bool_value', 'bytes_value', b'bytes_value', 'double_value', b'double_value', 'int_value', b'int_value', 'kvlist_value', b'kvlist_value', 'string_value', b'string_value', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_value: _TypeAlias = _typing.Literal['string_value', 'bool_value', 'int_value', 'double_value', 'array_value', 'kvlist_value', 'bytes_value'] + _WhichOneofArgType_value: _TypeAlias = _typing.Literal['value', b'value'] - def WhichOneof(self, oneof_group: typing.Literal['value', b'value']) -> typing.Literal['string_value', 'bool_value', 'int_value', 'double_value', 'array_value', 'kvlist_value', 'bytes_value'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_value) -> _WhichOneofReturnType_value | None: ... -global___AnyValue = AnyValue +Global___AnyValue: _TypeAlias = AnyValue -@typing.final -class ArrayValue(google.protobuf.message.Message): +@_typing.final +class ArrayValue(_message.Message): """ArrayValue is a list of AnyValue messages. We need ArrayValue as a message since oneof in AnyValue does not allow repeated fields. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUES_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + VALUES_FIELD_NUMBER: _builtins.int - @property - def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AnyValue]: + @_builtins.property + def values(self) -> _containers.RepeatedCompositeFieldContainer[Global___AnyValue]: """Array of values. The array may be empty (contain 0 elements).""" - def __init__(self, *, values: collections.abc.Iterable[global___AnyValue] | None=...) -> None: + def __init__(self, *, values: _abc.Iterable[Global___AnyValue] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['values', b'values'] - def ClearField(self, field_name: typing.Literal['values', b'values']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ArrayValue = ArrayValue +Global___ArrayValue: _TypeAlias = ArrayValue -@typing.final -class KeyValueList(google.protobuf.message.Message): +@_typing.final +class KeyValueList(_message.Message): """KeyValueList is a list of KeyValue messages. We need KeyValueList as a message since `oneof` in AnyValue does not allow repeated fields. Everywhere else where we need a list of KeyValue messages (e.g. in Span) we use `repeated KeyValue` directly to avoid unnecessary extra wrapping (which slows down the protocol). The 2 approaches are semantically equivalent. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUES_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + VALUES_FIELD_NUMBER: _builtins.int - @property - def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KeyValue]: + @_builtins.property + def values(self) -> _containers.RepeatedCompositeFieldContainer[Global___KeyValue]: """A collection of key/value pairs of key-value pairs. The list may be empty (may contain 0 elements). @@ -104,105 +114,110 @@ class KeyValueList(google.protobuf.message.Message): The behavior of software that receives duplicated keys can be unpredictable. """ - def __init__(self, *, values: collections.abc.Iterable[global___KeyValue] | None=...) -> None: + def __init__(self, *, values: _abc.Iterable[Global___KeyValue] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['values', b'values'] - def ClearField(self, field_name: typing.Literal['values', b'values']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___KeyValueList = KeyValueList +Global___KeyValueList: _TypeAlias = KeyValueList -@typing.final -class KeyValue(google.protobuf.message.Message): +@_typing.final +class KeyValue(_message.Message): """Represents a key-value pair that is used to store Span attributes, Link attributes, etc. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str 'The key name of the pair.' - @property - def value(self) -> global___AnyValue: + @_builtins.property + def value(self) -> Global___AnyValue: """The value of the pair.""" - def __init__(self, *, key: builtins.str=..., value: global___AnyValue | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: Global___AnyValue | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___KeyValue = KeyValue +Global___KeyValue: _TypeAlias = KeyValue -@typing.final -class InstrumentationScope(google.protobuf.message.Message): +@_typing.final +class InstrumentationScope(_message.Message): """InstrumentationScope is a message representing the instrumentation scope information such as the fully qualified name and version. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - ATTRIBUTES_FIELD_NUMBER: builtins.int - DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + ATTRIBUTES_FIELD_NUMBER: _builtins.int + DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: _builtins.int + name: _builtins.str 'A name denoting the Instrumentation scope.\n An empty instrumentation scope name means the name is unknown.\n ' - version: builtins.str + version: _builtins.str 'Defines the version of the instrumentation scope.\n An empty instrumentation scope version means the version is unknown.\n ' - dropped_attributes_count: builtins.int + dropped_attributes_count: _builtins.int 'The number of attributes that were discarded. Attributes\n can be discarded because their keys are too long or because there are too many\n attributes. If this value is 0, then no attributes were dropped.\n ' - @property - def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___KeyValue]: + @_builtins.property + def attributes(self) -> _containers.RepeatedCompositeFieldContainer[Global___KeyValue]: """Additional attributes that describe the scope. [Optional]. Attribute keys MUST be unique (it is not allowed to have more than one attribute with the same key). The behavior of software that receives duplicated keys can be unpredictable. """ - def __init__(self, *, name: builtins.str=..., version: builtins.str=..., attributes: collections.abc.Iterable[global___KeyValue] | None=..., dropped_attributes_count: builtins.int=...) -> None: + def __init__(self, *, name: _builtins.str=..., version: _builtins.str=..., attributes: _abc.Iterable[Global___KeyValue] | None=..., dropped_attributes_count: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['attributes', b'attributes', 'dropped_attributes_count', b'dropped_attributes_count', 'name', b'name', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['attributes', b'attributes', 'dropped_attributes_count', b'dropped_attributes_count', 'name', b'name', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___InstrumentationScope = InstrumentationScope +Global___InstrumentationScope: _TypeAlias = InstrumentationScope -@typing.final -class EntityRef(google.protobuf.message.Message): +@_typing.final +class EntityRef(_message.Message): """A reference to an Entity. Entity represents an object of interest associated with produced telemetry: e.g spans, metrics, profiles, or logs. Status: [Development] """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SCHEMA_URL_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - ID_KEYS_FIELD_NUMBER: builtins.int - DESCRIPTION_KEYS_FIELD_NUMBER: builtins.int - schema_url: builtins.str + DESCRIPTOR: _descriptor.Descriptor + SCHEMA_URL_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + ID_KEYS_FIELD_NUMBER: _builtins.int + DESCRIPTION_KEYS_FIELD_NUMBER: _builtins.int + schema_url: _builtins.str 'The Schema URL, if known. This is the identifier of the Schema that the entity data\n is recorded in. To learn more about Schema URL see\n https://opentelemetry.io/docs/specs/otel/schemas/#schema-url\n\n This schema_url applies to the data in this message and to the Resource attributes\n referenced by id_keys and description_keys.\n TODO: discuss if we are happy with this somewhat complicated definition of what\n the schema_url applies to.\n\n This field obsoletes the schema_url field in ResourceMetrics/ResourceSpans/ResourceLogs.\n ' - type: builtins.str + type: _builtins.str 'Defines the type of the entity. MUST not change during the lifetime of the entity.\n For example: "service" or "host". This field is required and MUST not be empty\n for valid entities.\n ' - @property - def id_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def id_keys(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Attribute Keys that identify the entity. MUST not change during the lifetime of the entity. The Id must contain at least one attribute. These keys MUST exist in the containing {message}.attributes. """ - @property - def description_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def description_keys(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """Descriptive (non-identifying) attribute keys of the entity. MAY change over the lifetime of the entity. MAY be empty. These attribute keys are not part of entity's identity. These keys MUST exist in the containing {message}.attributes. """ - def __init__(self, *, schema_url: builtins.str=..., type: builtins.str=..., id_keys: collections.abc.Iterable[builtins.str] | None=..., description_keys: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, schema_url: _builtins.str=..., type: _builtins.str=..., id_keys: _abc.Iterable[_builtins.str] | None=..., description_keys: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['description_keys', b'description_keys', 'id_keys', b'id_keys', 'schema_url', b'schema_url', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['description_keys', b'description_keys', 'id_keys', b'id_keys', 'schema_url', b'schema_url', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EntityRef = EntityRef \ No newline at end of file +Global___EntityRef: _TypeAlias = EntityRef \ No newline at end of file diff --git a/src/viam/gen/opentelemetry/proto/resource/v1/resource_pb2.py b/src/viam/gen/opentelemetry/proto/resource/v1/resource_pb2.py index 85ef4fd4d4..0b7923c826 100644 --- a/src/viam/gen/opentelemetry/proto/resource/v1/resource_pb2.py +++ b/src/viam/gen/opentelemetry/proto/resource/v1/resource_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'opentelemetry/proto/resource/v1/resource.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'opentelemetry/proto/resource/v1/resource.proto') _sym_db = _symbol_database.Default() from .....opentelemetry.proto.common.v1 import common_pb2 as opentelemetry_dot_proto_dot_common_dot_v1_dot_common__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n.opentelemetry/proto/resource/v1/resource.proto\x12\x1fopentelemetry.proto.resource.v1\x1a*opentelemetry/proto/common/v1/common.proto"\xd8\x01\n\x08Resource\x12G\n\nattributes\x18\x01 \x03(\x0b2\'.opentelemetry.proto.common.v1.KeyValueR\nattributes\x128\n\x18dropped_attributes_count\x18\x02 \x01(\rR\x16droppedAttributesCount\x12I\n\x0bentity_refs\x18\x03 \x03(\x0b2(.opentelemetry.proto.common.v1.EntityRefR\nentityRefsB\x83\x01\n"io.opentelemetry.proto.resource.v1B\rResourceProtoP\x01Z*go.opentelemetry.io/proto/otlp/resource/v1\xaa\x02\x1fOpenTelemetry.Proto.Resource.V1b\x06proto3') diff --git a/src/viam/gen/opentelemetry/proto/resource/v1/resource_pb2.pyi b/src/viam/gen/opentelemetry/proto/resource/v1/resource_pb2.pyi index d273b8623a..c06c8afc06 100644 --- a/src/viam/gen/opentelemetry/proto/resource/v1/resource_pb2.pyi +++ b/src/viam/gen/opentelemetry/proto/resource/v1/resource_pb2.pyi @@ -15,35 +15,40 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -from ..... import opentelemetry -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Resource(google.protobuf.message.Message): +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from opentelemetry.proto.common.v1 import common_pb2 as _common_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class Resource(_message.Message): """Resource information.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ATTRIBUTES_FIELD_NUMBER: builtins.int - DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: builtins.int - ENTITY_REFS_FIELD_NUMBER: builtins.int - dropped_attributes_count: builtins.int + DESCRIPTOR: _descriptor.Descriptor + ATTRIBUTES_FIELD_NUMBER: _builtins.int + DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: _builtins.int + ENTITY_REFS_FIELD_NUMBER: _builtins.int + dropped_attributes_count: _builtins.int 'The number of dropped attributes. If the value is 0, then\n no attributes were dropped.\n ' - @property - def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[opentelemetry.proto.common.v1.common_pb2.KeyValue]: + @_builtins.property + def attributes(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.KeyValue]: """Set of attributes that describe the resource. Attribute keys MUST be unique (it is not allowed to have more than one attribute with the same key). The behavior of software that receives duplicated keys can be unpredictable. """ - @property - def entity_refs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[opentelemetry.proto.common.v1.common_pb2.EntityRef]: + @_builtins.property + def entity_refs(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.EntityRef]: """Set of entities that participate in this Resource. Note: keys in the references MUST exist in attributes of this message. @@ -51,9 +56,10 @@ class Resource(google.protobuf.message.Message): Status: [Development] """ - def __init__(self, *, attributes: collections.abc.Iterable[opentelemetry.proto.common.v1.common_pb2.KeyValue] | None=..., dropped_attributes_count: builtins.int=..., entity_refs: collections.abc.Iterable[opentelemetry.proto.common.v1.common_pb2.EntityRef] | None=...) -> None: + def __init__(self, *, attributes: _abc.Iterable[_common_pb2.KeyValue] | None=..., dropped_attributes_count: _builtins.int=..., entity_refs: _abc.Iterable[_common_pb2.EntityRef] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['attributes', b'attributes', 'dropped_attributes_count', b'dropped_attributes_count', 'entity_refs', b'entity_refs'] - def ClearField(self, field_name: typing.Literal['attributes', b'attributes', 'dropped_attributes_count', b'dropped_attributes_count', 'entity_refs', b'entity_refs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Resource = Resource \ No newline at end of file +Global___Resource: _TypeAlias = Resource \ No newline at end of file diff --git a/src/viam/gen/opentelemetry/proto/trace/v1/trace_pb2.py b/src/viam/gen/opentelemetry/proto/trace/v1/trace_pb2.py index b6fd1cd140..fcdef2ac4f 100644 --- a/src/viam/gen/opentelemetry/proto/trace/v1/trace_pb2.py +++ b/src/viam/gen/opentelemetry/proto/trace/v1/trace_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'opentelemetry/proto/trace/v1/trace.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'opentelemetry/proto/trace/v1/trace.proto') _sym_db = _symbol_database.Default() from .....opentelemetry.proto.common.v1 import common_pb2 as opentelemetry_dot_proto_dot_common_dot_v1_dot_common__pb2 from .....opentelemetry.proto.resource.v1 import resource_pb2 as opentelemetry_dot_proto_dot_resource_dot_v1_dot_resource__pb2 diff --git a/src/viam/gen/opentelemetry/proto/trace/v1/trace_pb2.pyi b/src/viam/gen/opentelemetry/proto/trace/v1/trace_pb2.pyi index 645353ae36..e089270f9b 100644 --- a/src/viam/gen/opentelemetry/proto/trace/v1/trace_pb2.pyi +++ b/src/viam/gen/opentelemetry/proto/trace/v1/trace_pb2.pyi @@ -15,27 +15,28 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -from ..... import opentelemetry +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from opentelemetry.proto.common.v1 import common_pb2 as _common_pb2 +from opentelemetry.proto.resource.v1 import resource_pb2 as _resource_pb2 +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _SpanFlags: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _SpanFlagsEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SpanFlags.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _SpanFlagsEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_SpanFlags.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor SPAN_FLAGS_DO_NOT_USE: _SpanFlags.ValueType 'The zero value for the enum. Should not be used for comparisons.\n Instead use bitwise "and" with the appropriate mask as shown above.\n ' SPAN_FLAGS_TRACE_FLAGS_MASK: _SpanFlags.ValueType @@ -67,10 +68,10 @@ SPAN_FLAGS_TRACE_FLAGS_MASK: SpanFlags.ValueType SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK: SpanFlags.ValueType 'Bits 8 and 9 are used to indicate that the parent span or link span is remote.\nBit 8 (`HAS_IS_REMOTE`) indicates whether the value is known.\nBit 9 (`IS_REMOTE`) indicates whether the span or link is remote.\n' SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK: SpanFlags.ValueType -global___SpanFlags = SpanFlags +Global___SpanFlags: _TypeAlias = SpanFlags -@typing.final -class TracesData(google.protobuf.message.Message): +@_typing.final +class TracesData(_message.Message): """TracesData represents the traces data that can be stored in a persistent storage, OR can be embedded by other protocols that transfer OTLP traces data but do not implement the OTLP protocol. @@ -82,11 +83,11 @@ class TracesData(google.protobuf.message.Message): When new fields are added into this message, the OTLP request MUST be updated as well. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESOURCE_SPANS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + RESOURCE_SPANS_FIELD_NUMBER: _builtins.int - @property - def resource_spans(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceSpans]: + @_builtins.property + def resource_spans(self) -> _containers.RepeatedCompositeFieldContainer[Global___ResourceSpans]: """An array of ResourceSpans. For data coming from a single resource this array will typically contain one element. Intermediary nodes that receive data from multiple origins @@ -94,88 +95,93 @@ class TracesData(google.protobuf.message.Message): array will contain multiple elements. """ - def __init__(self, *, resource_spans: collections.abc.Iterable[global___ResourceSpans] | None=...) -> None: + def __init__(self, *, resource_spans: _abc.Iterable[Global___ResourceSpans] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['resource_spans', b'resource_spans'] - def ClearField(self, field_name: typing.Literal['resource_spans', b'resource_spans']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TracesData = TracesData +Global___TracesData: _TypeAlias = TracesData -@typing.final -class ResourceSpans(google.protobuf.message.Message): +@_typing.final +class ResourceSpans(_message.Message): """A collection of ScopeSpans from a Resource.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESOURCE_FIELD_NUMBER: builtins.int - SCOPE_SPANS_FIELD_NUMBER: builtins.int - SCHEMA_URL_FIELD_NUMBER: builtins.int - schema_url: builtins.str + DESCRIPTOR: _descriptor.Descriptor + RESOURCE_FIELD_NUMBER: _builtins.int + SCOPE_SPANS_FIELD_NUMBER: _builtins.int + SCHEMA_URL_FIELD_NUMBER: _builtins.int + schema_url: _builtins.str 'The Schema URL, if known. This is the identifier of the Schema that the resource data\n is recorded in. Notably, the last part of the URL path is the version number of the\n schema: http[s]://server[:port]/path/. To learn more about Schema URL see\n https://opentelemetry.io/docs/specs/otel/schemas/#schema-url\n This schema_url applies to the data in the "resource" field. It does not apply\n to the data in the "scope_spans" field which have their own schema_url field.\n ' - @property - def resource(self) -> opentelemetry.proto.resource.v1.resource_pb2.Resource: + @_builtins.property + def resource(self) -> _resource_pb2.Resource: """The resource for the spans in this message. If this field is not set then no resource info is known. """ - @property - def scope_spans(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ScopeSpans]: + @_builtins.property + def scope_spans(self) -> _containers.RepeatedCompositeFieldContainer[Global___ScopeSpans]: """A list of ScopeSpans that originate from a resource.""" - def __init__(self, *, resource: opentelemetry.proto.resource.v1.resource_pb2.Resource | None=..., scope_spans: collections.abc.Iterable[global___ScopeSpans] | None=..., schema_url: builtins.str=...) -> None: + def __init__(self, *, resource: _resource_pb2.Resource | None=..., scope_spans: _abc.Iterable[Global___ScopeSpans] | None=..., schema_url: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['resource', b'resource'] - def HasField(self, field_name: typing.Literal['resource', b'resource']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['resource', b'resource', 'schema_url', b'schema_url', 'scope_spans', b'scope_spans'] - def ClearField(self, field_name: typing.Literal['resource', b'resource', 'schema_url', b'schema_url', 'scope_spans', b'scope_spans']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResourceSpans = ResourceSpans +Global___ResourceSpans: _TypeAlias = ResourceSpans -@typing.final -class ScopeSpans(google.protobuf.message.Message): +@_typing.final +class ScopeSpans(_message.Message): """A collection of Spans produced by an InstrumentationScope.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SCOPE_FIELD_NUMBER: builtins.int - SPANS_FIELD_NUMBER: builtins.int - SCHEMA_URL_FIELD_NUMBER: builtins.int - schema_url: builtins.str + DESCRIPTOR: _descriptor.Descriptor + SCOPE_FIELD_NUMBER: _builtins.int + SPANS_FIELD_NUMBER: _builtins.int + SCHEMA_URL_FIELD_NUMBER: _builtins.int + schema_url: _builtins.str 'The Schema URL, if known. This is the identifier of the Schema that the span data\n is recorded in. Notably, the last part of the URL path is the version number of the\n schema: http[s]://server[:port]/path/. To learn more about Schema URL see\n https://opentelemetry.io/docs/specs/otel/schemas/#schema-url\n This schema_url applies to the data in the "scope" field and all spans and span\n events in the "spans" field.\n ' - @property - def scope(self) -> opentelemetry.proto.common.v1.common_pb2.InstrumentationScope: + @_builtins.property + def scope(self) -> _common_pb2.InstrumentationScope: """The instrumentation scope information for the spans in this message. Semantically when InstrumentationScope isn't set, it is equivalent with an empty instrumentation scope name (unknown). """ - @property - def spans(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Span]: + @_builtins.property + def spans(self) -> _containers.RepeatedCompositeFieldContainer[Global___Span]: """A list of Spans that originate from an instrumentation scope.""" - def __init__(self, *, scope: opentelemetry.proto.common.v1.common_pb2.InstrumentationScope | None=..., spans: collections.abc.Iterable[global___Span] | None=..., schema_url: builtins.str=...) -> None: + def __init__(self, *, scope: _common_pb2.InstrumentationScope | None=..., spans: _abc.Iterable[Global___Span] | None=..., schema_url: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['scope', b'scope'] - def HasField(self, field_name: typing.Literal['scope', b'scope']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['schema_url', b'schema_url', 'scope', b'scope', 'spans', b'spans'] - def ClearField(self, field_name: typing.Literal['schema_url', b'schema_url', 'scope', b'scope', 'spans', b'spans']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ScopeSpans = ScopeSpans +Global___ScopeSpans: _TypeAlias = ScopeSpans -@typing.final -class Span(google.protobuf.message.Message): +@_typing.final +class Span(_message.Message): """A Span represents a single operation performed by a single component of the system. The next available field id is 17. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor class _SpanKind: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType - class _SpanKindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Span._SpanKind.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _SpanKindEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Span._SpanKind.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor SPAN_KIND_UNSPECIFIED: Span._SpanKind.ValueType 'Unspecified. Do NOT use as default.\n Implementations MAY assume SpanKind to be INTERNAL when receiving UNSPECIFIED.\n ' SPAN_KIND_INTERNAL: Span._SpanKind.ValueType @@ -206,118 +212,120 @@ class Span(google.protobuf.message.Message): SPAN_KIND_CONSUMER: Span.SpanKind.ValueType 'Indicates that the span describes consumer receiving a message from a broker.\n Like the PRODUCER kind, there is often no direct critical path latency relationship\n between producer and consumer spans.\n ' - @typing.final - class Event(google.protobuf.message.Message): + @_typing.final + class Event(_message.Message): """Event is a time-stamped annotation of the span, consisting of user-supplied text description and key-value pairs. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TIME_UNIX_NANO_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - ATTRIBUTES_FIELD_NUMBER: builtins.int - DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: builtins.int - time_unix_nano: builtins.int + DESCRIPTOR: _descriptor.Descriptor + TIME_UNIX_NANO_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + ATTRIBUTES_FIELD_NUMBER: _builtins.int + DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: _builtins.int + time_unix_nano: _builtins.int 'The time the event occurred.' - name: builtins.str + name: _builtins.str 'The name of the event.\n This field is semantically required to be set to non-empty string.\n ' - dropped_attributes_count: builtins.int + dropped_attributes_count: _builtins.int 'The number of dropped attributes. If the value is 0,\n then no attributes were dropped.\n ' - @property - def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[opentelemetry.proto.common.v1.common_pb2.KeyValue]: + @_builtins.property + def attributes(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.KeyValue]: """A collection of attribute key/value pairs on the event. Attribute keys MUST be unique (it is not allowed to have more than one attribute with the same key). The behavior of software that receives duplicated keys can be unpredictable. """ - def __init__(self, *, time_unix_nano: builtins.int=..., name: builtins.str=..., attributes: collections.abc.Iterable[opentelemetry.proto.common.v1.common_pb2.KeyValue] | None=..., dropped_attributes_count: builtins.int=...) -> None: + def __init__(self, *, time_unix_nano: _builtins.int=..., name: _builtins.str=..., attributes: _abc.Iterable[_common_pb2.KeyValue] | None=..., dropped_attributes_count: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['attributes', b'attributes', 'dropped_attributes_count', b'dropped_attributes_count', 'name', b'name', 'time_unix_nano', b'time_unix_nano'] - def ClearField(self, field_name: typing.Literal['attributes', b'attributes', 'dropped_attributes_count', b'dropped_attributes_count', 'name', b'name', 'time_unix_nano', b'time_unix_nano']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - @typing.final - class Link(google.protobuf.message.Message): + @_typing.final + class Link(_message.Message): """A pointer from the current span to another span in the same trace or in a different trace. For example, this can be used in batching operations, where a single batch handler processes multiple requests from different traces or when the handler receives a request from a different project. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TRACE_ID_FIELD_NUMBER: builtins.int - SPAN_ID_FIELD_NUMBER: builtins.int - TRACE_STATE_FIELD_NUMBER: builtins.int - ATTRIBUTES_FIELD_NUMBER: builtins.int - DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: builtins.int - FLAGS_FIELD_NUMBER: builtins.int - trace_id: builtins.bytes + DESCRIPTOR: _descriptor.Descriptor + TRACE_ID_FIELD_NUMBER: _builtins.int + SPAN_ID_FIELD_NUMBER: _builtins.int + TRACE_STATE_FIELD_NUMBER: _builtins.int + ATTRIBUTES_FIELD_NUMBER: _builtins.int + DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: _builtins.int + FLAGS_FIELD_NUMBER: _builtins.int + trace_id: _builtins.bytes 'A unique identifier of a trace that this linked span is part of. The ID is a\n 16-byte array.\n ' - span_id: builtins.bytes + span_id: _builtins.bytes 'A unique identifier for the linked span. The ID is an 8-byte array.' - trace_state: builtins.str + trace_state: _builtins.str 'The trace_state associated with the link.' - dropped_attributes_count: builtins.int + dropped_attributes_count: _builtins.int 'The number of dropped attributes. If the value is 0,\n then no attributes were dropped.\n ' - flags: builtins.int + flags: _builtins.int 'Flags, a bit field.\n\n Bits 0-7 (8 least significant bits) are the trace flags as defined in W3C Trace\n Context specification. To read the 8-bit W3C trace flag, use\n `flags & SPAN_FLAGS_TRACE_FLAGS_MASK`.\n\n See https://www.w3.org/TR/trace-context-2/#trace-flags for the flag definitions.\n\n Bits 8 and 9 represent the 3 states of whether the link is remote.\n The states are (unknown, is not remote, is remote).\n To read whether the value is known, use `(flags & SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK) != 0`.\n To read whether the link is remote, use `(flags & SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK) != 0`.\n\n Readers MUST NOT assume that bits 10-31 (22 most significant bits) will be zero.\n When creating new spans, bits 10-31 (most-significant 22-bits) MUST be zero.\n\n [Optional].\n ' - @property - def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[opentelemetry.proto.common.v1.common_pb2.KeyValue]: + @_builtins.property + def attributes(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.KeyValue]: """A collection of attribute key/value pairs on the link. Attribute keys MUST be unique (it is not allowed to have more than one attribute with the same key). The behavior of software that receives duplicated keys can be unpredictable. """ - def __init__(self, *, trace_id: builtins.bytes=..., span_id: builtins.bytes=..., trace_state: builtins.str=..., attributes: collections.abc.Iterable[opentelemetry.proto.common.v1.common_pb2.KeyValue] | None=..., dropped_attributes_count: builtins.int=..., flags: builtins.int=...) -> None: + def __init__(self, *, trace_id: _builtins.bytes=..., span_id: _builtins.bytes=..., trace_state: _builtins.str=..., attributes: _abc.Iterable[_common_pb2.KeyValue] | None=..., dropped_attributes_count: _builtins.int=..., flags: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['attributes', b'attributes', 'dropped_attributes_count', b'dropped_attributes_count', 'flags', b'flags', 'span_id', b'span_id', 'trace_id', b'trace_id', 'trace_state', b'trace_state'] - def ClearField(self, field_name: typing.Literal['attributes', b'attributes', 'dropped_attributes_count', b'dropped_attributes_count', 'flags', b'flags', 'span_id', b'span_id', 'trace_id', b'trace_id', 'trace_state', b'trace_state']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - TRACE_ID_FIELD_NUMBER: builtins.int - SPAN_ID_FIELD_NUMBER: builtins.int - TRACE_STATE_FIELD_NUMBER: builtins.int - PARENT_SPAN_ID_FIELD_NUMBER: builtins.int - FLAGS_FIELD_NUMBER: builtins.int - NAME_FIELD_NUMBER: builtins.int - KIND_FIELD_NUMBER: builtins.int - START_TIME_UNIX_NANO_FIELD_NUMBER: builtins.int - END_TIME_UNIX_NANO_FIELD_NUMBER: builtins.int - ATTRIBUTES_FIELD_NUMBER: builtins.int - DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: builtins.int - EVENTS_FIELD_NUMBER: builtins.int - DROPPED_EVENTS_COUNT_FIELD_NUMBER: builtins.int - LINKS_FIELD_NUMBER: builtins.int - DROPPED_LINKS_COUNT_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - trace_id: builtins.bytes + TRACE_ID_FIELD_NUMBER: _builtins.int + SPAN_ID_FIELD_NUMBER: _builtins.int + TRACE_STATE_FIELD_NUMBER: _builtins.int + PARENT_SPAN_ID_FIELD_NUMBER: _builtins.int + FLAGS_FIELD_NUMBER: _builtins.int + NAME_FIELD_NUMBER: _builtins.int + KIND_FIELD_NUMBER: _builtins.int + START_TIME_UNIX_NANO_FIELD_NUMBER: _builtins.int + END_TIME_UNIX_NANO_FIELD_NUMBER: _builtins.int + ATTRIBUTES_FIELD_NUMBER: _builtins.int + DROPPED_ATTRIBUTES_COUNT_FIELD_NUMBER: _builtins.int + EVENTS_FIELD_NUMBER: _builtins.int + DROPPED_EVENTS_COUNT_FIELD_NUMBER: _builtins.int + LINKS_FIELD_NUMBER: _builtins.int + DROPPED_LINKS_COUNT_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + trace_id: _builtins.bytes 'A unique identifier for a trace. All spans from the same trace share\n the same `trace_id`. The ID is a 16-byte array. An ID with all zeroes OR\n of length other than 16 bytes is considered invalid (empty string in OTLP/JSON\n is zero-length and thus is also invalid).\n\n This field is required.\n ' - span_id: builtins.bytes + span_id: _builtins.bytes 'A unique identifier for a span within a trace, assigned when the span\n is created. The ID is an 8-byte array. An ID with all zeroes OR of length\n other than 8 bytes is considered invalid (empty string in OTLP/JSON\n is zero-length and thus is also invalid).\n\n This field is required.\n ' - trace_state: builtins.str + trace_state: _builtins.str 'trace_state conveys information about request position in multiple distributed tracing graphs.\n It is a trace_state in w3c-trace-context format: https://www.w3.org/TR/trace-context/#tracestate-header\n See also https://github.com/w3c/distributed-tracing for more details about this field.\n ' - parent_span_id: builtins.bytes + parent_span_id: _builtins.bytes "The `span_id` of this span's parent span. If this is a root span, then this\n field must be empty. The ID is an 8-byte array.\n " - flags: builtins.int + flags: _builtins.int "Flags, a bit field.\n\n Bits 0-7 (8 least significant bits) are the trace flags as defined in W3C Trace\n Context specification. To read the 8-bit W3C trace flag, use\n `flags & SPAN_FLAGS_TRACE_FLAGS_MASK`.\n\n See https://www.w3.org/TR/trace-context-2/#trace-flags for the flag definitions.\n\n Bits 8 and 9 represent the 3 states of whether a span's parent\n is remote. The states are (unknown, is not remote, is remote).\n To read whether the value is known, use `(flags & SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK) != 0`.\n To read whether the span is remote, use `(flags & SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK) != 0`.\n\n When creating span messages, if the message is logically forwarded from another source\n with an equivalent flags fields (i.e., usually another OTLP span message), the field SHOULD\n be copied as-is. If creating from a source that does not have an equivalent flags field\n (such as a runtime representation of an OpenTelemetry span), the high 22 bits MUST\n be set to zero.\n Readers MUST NOT assume that bits 10-31 (22 most significant bits) will be zero.\n\n [Optional].\n " - name: builtins.str + name: _builtins.str "A description of the span's operation.\n\n For example, the name can be a qualified method name or a file name\n and a line number where the operation is called. A best practice is to use\n the same display name at the same call point in an application.\n This makes it easier to correlate spans in different traces.\n\n This field is semantically required to be set to non-empty string.\n Empty value is equivalent to an unknown span name.\n\n This field is required.\n " - kind: global___Span.SpanKind.ValueType + kind: Global___Span.SpanKind.ValueType 'Distinguishes between spans generated in a particular context. For example,\n two spans with the same name may be distinguished using `CLIENT` (caller)\n and `SERVER` (callee) to identify queueing latency associated with the span.\n ' - start_time_unix_nano: builtins.int + start_time_unix_nano: _builtins.int "The start time of the span. On the client side, this is the time\n kept by the local machine where the span execution starts. On the server side, this\n is the time when the server's application handler starts running.\n Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970.\n\n This field is semantically required and it is expected that end_time >= start_time.\n " - end_time_unix_nano: builtins.int + end_time_unix_nano: _builtins.int 'The end time of the span. On the client side, this is the time\n kept by the local machine where the span execution ends. On the server side, this\n is the time when the server application handler stops running.\n Value is UNIX Epoch time in nanoseconds since 00:00:00 UTC on 1 January 1970.\n\n This field is semantically required and it is expected that end_time >= start_time.\n ' - dropped_attributes_count: builtins.int + dropped_attributes_count: _builtins.int 'The number of attributes that were discarded. Attributes\n can be discarded because their keys are too long or because there are too many\n attributes. If this value is 0, then no attributes were dropped.\n ' - dropped_events_count: builtins.int + dropped_events_count: _builtins.int 'The number of dropped events. If the value is 0, then no\n events were dropped.\n ' - dropped_links_count: builtins.int + dropped_links_count: _builtins.int 'The number of dropped links after the maximum size was\n enforced. If this value is 0, then no links were dropped.\n ' - @property - def attributes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[opentelemetry.proto.common.v1.common_pb2.KeyValue]: + @_builtins.property + def attributes(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.KeyValue]: """A collection of key/value pairs. Note, global attributes like server name can be set using the resource API. Examples of attributes: @@ -331,45 +339,47 @@ class Span(google.protobuf.message.Message): The behavior of software that receives duplicated keys can be unpredictable. """ - @property - def events(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Span.Event]: + @_builtins.property + def events(self) -> _containers.RepeatedCompositeFieldContainer[Global___Span.Event]: """A collection of Event items.""" - @property - def links(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Span.Link]: + @_builtins.property + def links(self) -> _containers.RepeatedCompositeFieldContainer[Global___Span.Link]: """A collection of Links, which are references from this span to a span in the same or different trace. """ - @property - def status(self) -> global___Status: + @_builtins.property + def status(self) -> Global___Status: """An optional final status for this span. Semantically when Status isn't set, it means span's status code is unset, i.e. assume STATUS_CODE_UNSET (code = 0). """ - def __init__(self, *, trace_id: builtins.bytes=..., span_id: builtins.bytes=..., trace_state: builtins.str=..., parent_span_id: builtins.bytes=..., flags: builtins.int=..., name: builtins.str=..., kind: global___Span.SpanKind.ValueType=..., start_time_unix_nano: builtins.int=..., end_time_unix_nano: builtins.int=..., attributes: collections.abc.Iterable[opentelemetry.proto.common.v1.common_pb2.KeyValue] | None=..., dropped_attributes_count: builtins.int=..., events: collections.abc.Iterable[global___Span.Event] | None=..., dropped_events_count: builtins.int=..., links: collections.abc.Iterable[global___Span.Link] | None=..., dropped_links_count: builtins.int=..., status: global___Status | None=...) -> None: + def __init__(self, *, trace_id: _builtins.bytes=..., span_id: _builtins.bytes=..., trace_state: _builtins.str=..., parent_span_id: _builtins.bytes=..., flags: _builtins.int=..., name: _builtins.str=..., kind: Global___Span.SpanKind.ValueType=..., start_time_unix_nano: _builtins.int=..., end_time_unix_nano: _builtins.int=..., attributes: _abc.Iterable[_common_pb2.KeyValue] | None=..., dropped_attributes_count: _builtins.int=..., events: _abc.Iterable[Global___Span.Event] | None=..., dropped_events_count: _builtins.int=..., links: _abc.Iterable[Global___Span.Link] | None=..., dropped_links_count: _builtins.int=..., status: Global___Status | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['status', b'status'] - def HasField(self, field_name: typing.Literal['status', b'status']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['attributes', b'attributes', 'dropped_attributes_count', b'dropped_attributes_count', 'dropped_events_count', b'dropped_events_count', 'dropped_links_count', b'dropped_links_count', 'end_time_unix_nano', b'end_time_unix_nano', 'events', b'events', 'flags', b'flags', 'kind', b'kind', 'links', b'links', 'name', b'name', 'parent_span_id', b'parent_span_id', 'span_id', b'span_id', 'start_time_unix_nano', b'start_time_unix_nano', 'status', b'status', 'trace_id', b'trace_id', 'trace_state', b'trace_state'] - def ClearField(self, field_name: typing.Literal['attributes', b'attributes', 'dropped_attributes_count', b'dropped_attributes_count', 'dropped_events_count', b'dropped_events_count', 'dropped_links_count', b'dropped_links_count', 'end_time_unix_nano', b'end_time_unix_nano', 'events', b'events', 'flags', b'flags', 'kind', b'kind', 'links', b'links', 'name', b'name', 'parent_span_id', b'parent_span_id', 'span_id', b'span_id', 'start_time_unix_nano', b'start_time_unix_nano', 'status', b'status', 'trace_id', b'trace_id', 'trace_state', b'trace_state']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Span = Span +Global___Span: _TypeAlias = Span -@typing.final -class Status(google.protobuf.message.Message): +@_typing.final +class Status(_message.Message): """The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor class _StatusCode: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType - class _StatusCodeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Status._StatusCode.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _StatusCodeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Status._StatusCode.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor STATUS_CODE_UNSET: Status._StatusCode.ValueType 'The default status.' STATUS_CODE_OK: Status._StatusCode.ValueType @@ -387,16 +397,17 @@ class Status(google.protobuf.message.Message): 'The Span has been validated by an Application developer or Operator to\n have completed successfully.\n ' STATUS_CODE_ERROR: Status.StatusCode.ValueType 'The Span contains an error.' - MESSAGE_FIELD_NUMBER: builtins.int - CODE_FIELD_NUMBER: builtins.int - message: builtins.str + MESSAGE_FIELD_NUMBER: _builtins.int + CODE_FIELD_NUMBER: _builtins.int + message: _builtins.str 'A developer-facing human readable error message.' - code: global___Status.StatusCode.ValueType + code: Global___Status.StatusCode.ValueType 'The status code.' - def __init__(self, *, message: builtins.str=..., code: global___Status.StatusCode.ValueType=...) -> None: + def __init__(self, *, message: _builtins.str=..., code: Global___Status.StatusCode.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['code', b'code', 'message', b'message'] - def ClearField(self, field_name: typing.Literal['code', b'code', 'message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Status = Status \ No newline at end of file +Global___Status: _TypeAlias = Status \ No newline at end of file diff --git a/src/viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py b/src/viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py index f98a31cca0..a7a30b6a40 100644 --- a/src/viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py +++ b/src/viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'proto/rpc/examples/echo/v1/echo.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'proto/rpc/examples/echo/v1/echo.proto') _sym_db = _symbol_database.Default() from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%proto/rpc/examples/echo/v1/echo.proto\x12\x1aproto.rpc.examples.echo.v1\x1a\x1cgoogle/api/annotations.proto"\'\n\x0bEchoRequest\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message"(\n\x0cEchoResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message"/\n\x13EchoMultipleRequest\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message"0\n\x14EchoMultipleResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message"+\n\x0fEchoBiDiRequest\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message",\n\x10EchoBiDiResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message2\xf4\x02\n\x0bEchoService\x12\x80\x01\n\x04Echo\x12\'.proto.rpc.examples.echo.v1.EchoRequest\x1a(.proto.rpc.examples.echo.v1.EchoResponse"%\x82\xd3\xe4\x93\x02\x1f"\x1a/rpc/examples/echo/v1/echo:\x01*\x12u\n\x0cEchoMultiple\x12/.proto.rpc.examples.echo.v1.EchoMultipleRequest\x1a0.proto.rpc.examples.echo.v1.EchoMultipleResponse"\x000\x01\x12k\n\x08EchoBiDi\x12+.proto.rpc.examples.echo.v1.EchoBiDiRequest\x1a,.proto.rpc.examples.echo.v1.EchoBiDiResponse"\x00(\x010\x01B.Z,go.viam.com/utils/proto/rpc/examples/echo/v1b\x06proto3') diff --git a/src/viam/gen/proto/rpc/examples/echo/v1/echo_pb2.pyi b/src/viam/gen/proto/rpc/examples/echo/v1/echo_pb2.pyi index a53728a863..28e0d26e12 100644 --- a/src/viam/gen/proto/rpc/examples/echo/v1/echo_pb2.pyi +++ b/src/viam/gen/proto/rpc/examples/echo/v1/echo_pb2.pyi @@ -2,86 +2,97 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class EchoRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str - - def __init__(self, *, message: builtins.str=...) -> None: +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class EchoRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str + + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoRequest = EchoRequest +Global___EchoRequest: _TypeAlias = EchoRequest -@typing.final -class EchoResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str +@_typing.final +class EchoResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str - def __init__(self, *, message: builtins.str=...) -> None: + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoResponse = EchoResponse +Global___EchoResponse: _TypeAlias = EchoResponse -@typing.final -class EchoMultipleRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str +@_typing.final +class EchoMultipleRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str - def __init__(self, *, message: builtins.str=...) -> None: + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoMultipleRequest = EchoMultipleRequest +Global___EchoMultipleRequest: _TypeAlias = EchoMultipleRequest -@typing.final -class EchoMultipleResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str +@_typing.final +class EchoMultipleResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str - def __init__(self, *, message: builtins.str=...) -> None: + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoMultipleResponse = EchoMultipleResponse +Global___EchoMultipleResponse: _TypeAlias = EchoMultipleResponse -@typing.final -class EchoBiDiRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str +@_typing.final +class EchoBiDiRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str - def __init__(self, *, message: builtins.str=...) -> None: + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoBiDiRequest = EchoBiDiRequest +Global___EchoBiDiRequest: _TypeAlias = EchoBiDiRequest -@typing.final -class EchoBiDiResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str +@_typing.final +class EchoBiDiResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str - def __init__(self, *, message: builtins.str=...) -> None: + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoBiDiResponse = EchoBiDiResponse \ No newline at end of file +Global___EchoBiDiResponse: _TypeAlias = EchoBiDiResponse \ No newline at end of file diff --git a/src/viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py b/src/viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py index ecbe78a705..38fdf927db 100644 --- a/src/viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py +++ b/src/viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'proto/rpc/examples/echoresource/v1/echoresource.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'proto/rpc/examples/echoresource/v1/echoresource.proto') _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n5proto/rpc/examples/echoresource/v1/echoresource.proto\x12"proto.rpc.examples.echoresource.v1"C\n\x13EchoResourceRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message"0\n\x14EchoResourceResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message"K\n\x1bEchoResourceMultipleRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message"8\n\x1cEchoResourceMultipleResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message"G\n\x17EchoResourceBiDiRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message"4\n\x18EchoResourceBiDiResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message2\xd1\x03\n\x13EchoResourceService\x12\x83\x01\n\x0cEchoResource\x127.proto.rpc.examples.echoresource.v1.EchoResourceRequest\x1a8.proto.rpc.examples.echoresource.v1.EchoResourceResponse"\x00\x12\x9d\x01\n\x14EchoResourceMultiple\x12?.proto.rpc.examples.echoresource.v1.EchoResourceMultipleRequest\x1a@.proto.rpc.examples.echoresource.v1.EchoResourceMultipleResponse"\x000\x01\x12\x93\x01\n\x10EchoResourceBiDi\x12;.proto.rpc.examples.echoresource.v1.EchoResourceBiDiRequest\x1a<.proto.rpc.examples.echoresource.v1.EchoResourceBiDiResponse"\x00(\x010\x01B6Z4go.viam.com/utils/proto/rpc/examples/echoresource/v1b\x06proto3') _globals = globals() diff --git a/src/viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.pyi b/src/viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.pyi index 0033cb7f61..f972ed00b7 100644 --- a/src/viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.pyi +++ b/src/viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.pyi @@ -2,92 +2,103 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class EchoResourceRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - name: builtins.str - message: builtins.str - - def __init__(self, *, name: builtins.str=..., message: builtins.str=...) -> None: +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class EchoResourceRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + name: _builtins.str + message: _builtins.str + + def __init__(self, *, name: _builtins.str=..., message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['message', b'message', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoResourceRequest = EchoResourceRequest +Global___EchoResourceRequest: _TypeAlias = EchoResourceRequest -@typing.final -class EchoResourceResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str +@_typing.final +class EchoResourceResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str - def __init__(self, *, message: builtins.str=...) -> None: + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoResourceResponse = EchoResourceResponse +Global___EchoResourceResponse: _TypeAlias = EchoResourceResponse -@typing.final -class EchoResourceMultipleRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - name: builtins.str - message: builtins.str +@_typing.final +class EchoResourceMultipleRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + name: _builtins.str + message: _builtins.str - def __init__(self, *, name: builtins.str=..., message: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=..., message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['message', b'message', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoResourceMultipleRequest = EchoResourceMultipleRequest +Global___EchoResourceMultipleRequest: _TypeAlias = EchoResourceMultipleRequest -@typing.final -class EchoResourceMultipleResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str +@_typing.final +class EchoResourceMultipleResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str - def __init__(self, *, message: builtins.str=...) -> None: + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoResourceMultipleResponse = EchoResourceMultipleResponse +Global___EchoResourceMultipleResponse: _TypeAlias = EchoResourceMultipleResponse -@typing.final -class EchoResourceBiDiRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - name: builtins.str - message: builtins.str +@_typing.final +class EchoResourceBiDiRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + name: _builtins.str + message: _builtins.str - def __init__(self, *, name: builtins.str=..., message: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=..., message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['message', b'message', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoResourceBiDiRequest = EchoResourceBiDiRequest +Global___EchoResourceBiDiRequest: _TypeAlias = EchoResourceBiDiRequest -@typing.final -class EchoResourceBiDiResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MESSAGE_FIELD_NUMBER: builtins.int - message: builtins.str +@_typing.final +class EchoResourceBiDiResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MESSAGE_FIELD_NUMBER: _builtins.int + message: _builtins.str - def __init__(self, *, message: builtins.str=...) -> None: + def __init__(self, *, message: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['message', b'message'] - def ClearField(self, field_name: typing.Literal['message', b'message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___EchoResourceBiDiResponse = EchoResourceBiDiResponse \ No newline at end of file +Global___EchoResourceBiDiResponse: _TypeAlias = EchoResourceBiDiResponse \ No newline at end of file diff --git a/src/viam/gen/proto/rpc/v1/auth_pb2.py b/src/viam/gen/proto/rpc/v1/auth_pb2.py index 270c7c7c01..54c4295a10 100644 --- a/src/viam/gen/proto/rpc/v1/auth_pb2.py +++ b/src/viam/gen/proto/rpc/v1/auth_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'proto/rpc/v1/auth.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'proto/rpc/v1/auth.proto') _sym_db = _symbol_database.Default() from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17proto/rpc/v1/auth.proto\x12\x0cproto.rpc.v1\x1a\x1cgoogle/api/annotations.proto";\n\x0bCredentials\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x18\n\x07payload\x18\x02 \x01(\tR\x07payload"j\n\x13AuthenticateRequest\x12\x16\n\x06entity\x18\x01 \x01(\tR\x06entity\x12;\n\x0bcredentials\x18\x02 \x01(\x0b2\x19.proto.rpc.v1.CredentialsR\x0bcredentials"9\n\x14AuthenticateResponse\x12!\n\x0caccess_token\x18\x01 \x01(\tR\x0baccessToken"/\n\x15AuthenticateToRequest\x12\x16\n\x06entity\x18\x01 \x01(\tR\x06entity";\n\x16AuthenticateToResponse\x12!\n\x0caccess_token\x18\x01 \x01(\tR\x0baccessToken2\x82\x01\n\x0bAuthService\x12s\n\x0cAuthenticate\x12!.proto.rpc.v1.AuthenticateRequest\x1a".proto.rpc.v1.AuthenticateResponse"\x1c\x82\xd3\xe4\x93\x02\x16"\x14/rpc/v1/authenticate2\x93\x01\n\x13ExternalAuthService\x12|\n\x0eAuthenticateTo\x12#.proto.rpc.v1.AuthenticateToRequest\x1a$.proto.rpc.v1.AuthenticateToResponse"\x1f\x82\xd3\xe4\x93\x02\x19"\x17/rpc/v1/authenticate_toB Z\x1ego.viam.com/utils/proto/rpc/v1b\x06proto3') diff --git a/src/viam/gen/proto/rpc/v1/auth_pb2.pyi b/src/viam/gen/proto/rpc/v1/auth_pb2.pyi index ef1f528616..fb1d89ef45 100644 --- a/src/viam/gen/proto/rpc/v1/auth_pb2.pyi +++ b/src/viam/gen/proto/rpc/v1/auth_pb2.pyi @@ -2,91 +2,102 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class Credentials(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - PAYLOAD_FIELD_NUMBER: builtins.int - type: builtins.str +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class Credentials(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TYPE_FIELD_NUMBER: _builtins.int + PAYLOAD_FIELD_NUMBER: _builtins.int + type: _builtins.str 'type is the type of credentials being used.' - payload: builtins.str + payload: _builtins.str 'payload is an opaque string used that are of the given type above.' - def __init__(self, *, type: builtins.str=..., payload: builtins.str=...) -> None: + def __init__(self, *, type: _builtins.str=..., payload: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['payload', b'payload', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['payload', b'payload', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Credentials = Credentials +Global___Credentials: _TypeAlias = Credentials -@typing.final -class AuthenticateRequest(google.protobuf.message.Message): +@_typing.final +class AuthenticateRequest(_message.Message): """An AuthenticateRequest contains the credentials used to authenticate.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ENTITY_FIELD_NUMBER: builtins.int - CREDENTIALS_FIELD_NUMBER: builtins.int - entity: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ENTITY_FIELD_NUMBER: _builtins.int + CREDENTIALS_FIELD_NUMBER: _builtins.int + entity: _builtins.str - @property - def credentials(self) -> global___Credentials: + @_builtins.property + def credentials(self) -> Global___Credentials: ... - def __init__(self, *, entity: builtins.str=..., credentials: global___Credentials | None=...) -> None: + def __init__(self, *, entity: _builtins.str=..., credentials: Global___Credentials | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['credentials', b'credentials'] - def HasField(self, field_name: typing.Literal['credentials', b'credentials']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['credentials', b'credentials', 'entity', b'entity'] - def ClearField(self, field_name: typing.Literal['credentials', b'credentials', 'entity', b'entity']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AuthenticateRequest = AuthenticateRequest +Global___AuthenticateRequest: _TypeAlias = AuthenticateRequest -@typing.final -class AuthenticateResponse(google.protobuf.message.Message): +@_typing.final +class AuthenticateResponse(_message.Message): """An AuthenticateResponse is returned after successful authentication.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ACCESS_TOKEN_FIELD_NUMBER: builtins.int - access_token: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ACCESS_TOKEN_FIELD_NUMBER: _builtins.int + access_token: _builtins.str 'access_token is a JWT where only the expiration should be deemed\n important.\n Future(erd): maybe a refresh_token\n ' - def __init__(self, *, access_token: builtins.str=...) -> None: + def __init__(self, *, access_token: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['access_token', b'access_token'] - def ClearField(self, field_name: typing.Literal['access_token', b'access_token']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AuthenticateResponse = AuthenticateResponse +Global___AuthenticateResponse: _TypeAlias = AuthenticateResponse -@typing.final -class AuthenticateToRequest(google.protobuf.message.Message): +@_typing.final +class AuthenticateToRequest(_message.Message): """An AuthenticateToRequest contains the entity to authenticate to.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ENTITY_FIELD_NUMBER: builtins.int - entity: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ENTITY_FIELD_NUMBER: _builtins.int + entity: _builtins.str - def __init__(self, *, entity: builtins.str=...) -> None: + def __init__(self, *, entity: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['entity', b'entity'] - def ClearField(self, field_name: typing.Literal['entity', b'entity']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AuthenticateToRequest = AuthenticateToRequest +Global___AuthenticateToRequest: _TypeAlias = AuthenticateToRequest -@typing.final -class AuthenticateToResponse(google.protobuf.message.Message): +@_typing.final +class AuthenticateToResponse(_message.Message): """An AuthenticateResponse is returned after successful authentication.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ACCESS_TOKEN_FIELD_NUMBER: builtins.int - access_token: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ACCESS_TOKEN_FIELD_NUMBER: _builtins.int + access_token: _builtins.str 'access_token is a JWT where only the expiration should be deemed\n important.\n Future(erd): maybe a refresh_token\n ' - def __init__(self, *, access_token: builtins.str=...) -> None: + def __init__(self, *, access_token: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['access_token', b'access_token'] - def ClearField(self, field_name: typing.Literal['access_token', b'access_token']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AuthenticateToResponse = AuthenticateToResponse \ No newline at end of file +Global___AuthenticateToResponse: _TypeAlias = AuthenticateToResponse \ No newline at end of file diff --git a/src/viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py b/src/viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py index bddaa46dea..5d58e95d40 100644 --- a/src/viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py +++ b/src/viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'proto/rpc/webrtc/v1/grpc.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'proto/rpc/webrtc/v1/grpc.proto') _sym_db = _symbol_database.Default() from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 diff --git a/src/viam/gen/proto/rpc/webrtc/v1/grpc_pb2.pyi b/src/viam/gen/proto/rpc/webrtc/v1/grpc_pb2.pyi index 1e7525ee06..a5aa79743c 100644 --- a/src/viam/gen/proto/rpc/webrtc/v1/grpc_pb2.pyi +++ b/src/viam/gen/proto/rpc/webrtc/v1/grpc_pb2.pyi @@ -2,303 +2,332 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.duration_pb2 -import google.protobuf.internal.containers -import google.protobuf.message -import google.rpc.status_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class PacketMessage(google.protobuf.message.Message): +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.rpc import status_pb2 as _status_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class PacketMessage(_message.Message): """A PacketMessage is used to packetize large messages (> 64KiB) to be able to safely transmit over WebRTC data channels. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int - EOM_FIELD_NUMBER: builtins.int - data: builtins.bytes - eom: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int + EOM_FIELD_NUMBER: _builtins.int + data: _builtins.bytes + eom: _builtins.bool - def __init__(self, *, data: builtins.bytes=..., eom: builtins.bool=...) -> None: + def __init__(self, *, data: _builtins.bytes=..., eom: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data', 'eom', b'eom'] - def ClearField(self, field_name: typing.Literal['data', b'data', 'eom', b'eom']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PacketMessage = PacketMessage +Global___PacketMessage: _TypeAlias = PacketMessage -@typing.final -class Stream(google.protobuf.message.Message): +@_typing.final +class Stream(_message.Message): """A Stream represents an instance of a gRPC stream between a client and a server. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.int + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.int - def __init__(self, *, id: builtins.int=...) -> None: + def __init__(self, *, id: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Stream = Stream +Global___Stream: _TypeAlias = Stream -@typing.final -class Request(google.protobuf.message.Message): +@_typing.final +class Request(_message.Message): """A Request is a frame coming from a client. It is always associated with a stream where the client assigns the stream identifier. Servers will drop frames where the stream identifier has no association (if a non-header frames are sent). """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - STREAM_FIELD_NUMBER: builtins.int - HEADERS_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - RST_STREAM_FIELD_NUMBER: builtins.int - rst_stream: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + STREAM_FIELD_NUMBER: _builtins.int + HEADERS_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + RST_STREAM_FIELD_NUMBER: _builtins.int + rst_stream: _builtins.bool - @property - def stream(self) -> global___Stream: + @_builtins.property + def stream(self) -> Global___Stream: ... - @property - def headers(self) -> global___RequestHeaders: + @_builtins.property + def headers(self) -> Global___RequestHeaders: ... - @property - def message(self) -> global___RequestMessage: + @_builtins.property + def message(self) -> Global___RequestMessage: ... - def __init__(self, *, stream: global___Stream | None=..., headers: global___RequestHeaders | None=..., message: global___RequestMessage | None=..., rst_stream: builtins.bool=...) -> None: + def __init__(self, *, stream: Global___Stream | None=..., headers: Global___RequestHeaders | None=..., message: Global___RequestMessage | None=..., rst_stream: _builtins.bool=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['headers', b'headers', 'message', b'message', 'rst_stream', b'rst_stream', 'stream', b'stream', 'type', b'type'] - def HasField(self, field_name: typing.Literal['headers', b'headers', 'message', b'message', 'rst_stream', b'rst_stream', 'stream', b'stream', 'type', b'type']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['headers', b'headers', 'message', b'message', 'rst_stream', b'rst_stream', 'stream', b'stream', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['headers', b'headers', 'message', b'message', 'rst_stream', b'rst_stream', 'stream', b'stream', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_type: _TypeAlias = _typing.Literal['headers', 'message', 'rst_stream'] + _WhichOneofArgType_type: _TypeAlias = _typing.Literal['type', b'type'] - def WhichOneof(self, oneof_group: typing.Literal['type', b'type']) -> typing.Literal['headers', 'message', 'rst_stream'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_type) -> _WhichOneofReturnType_type | None: ... -global___Request = Request +Global___Request: _TypeAlias = Request -@typing.final -class RequestHeaders(google.protobuf.message.Message): +@_typing.final +class RequestHeaders(_message.Message): """RequestHeaders describe the unary or streaming call to make.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METHOD_FIELD_NUMBER: builtins.int - METADATA_FIELD_NUMBER: builtins.int - TIMEOUT_FIELD_NUMBER: builtins.int - method: builtins.str + DESCRIPTOR: _descriptor.Descriptor + METHOD_FIELD_NUMBER: _builtins.int + METADATA_FIELD_NUMBER: _builtins.int + TIMEOUT_FIELD_NUMBER: _builtins.int + method: _builtins.str - @property - def metadata(self) -> global___Metadata: + @_builtins.property + def metadata(self) -> Global___Metadata: ... - @property - def timeout(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def timeout(self) -> _duration_pb2.Duration: ... - def __init__(self, *, method: builtins.str=..., metadata: global___Metadata | None=..., timeout: google.protobuf.duration_pb2.Duration | None=...) -> None: + def __init__(self, *, method: _builtins.str=..., metadata: Global___Metadata | None=..., timeout: _duration_pb2.Duration | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata', 'timeout', b'timeout'] - def HasField(self, field_name: typing.Literal['metadata', b'metadata', 'timeout', b'timeout']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata', 'method', b'method', 'timeout', b'timeout'] - def ClearField(self, field_name: typing.Literal['metadata', b'metadata', 'method', b'method', 'timeout', b'timeout']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RequestHeaders = RequestHeaders +Global___RequestHeaders: _TypeAlias = RequestHeaders -@typing.final -class RequestMessage(google.protobuf.message.Message): +@_typing.final +class RequestMessage(_message.Message): """A RequestMessage contains individual gRPC messages and a potential end-of-stream (EOS) marker. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - HAS_MESSAGE_FIELD_NUMBER: builtins.int - PACKET_MESSAGE_FIELD_NUMBER: builtins.int - EOS_FIELD_NUMBER: builtins.int - has_message: builtins.bool - eos: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + HAS_MESSAGE_FIELD_NUMBER: _builtins.int + PACKET_MESSAGE_FIELD_NUMBER: _builtins.int + EOS_FIELD_NUMBER: _builtins.int + has_message: _builtins.bool + eos: _builtins.bool - @property - def packet_message(self) -> global___PacketMessage: + @_builtins.property + def packet_message(self) -> Global___PacketMessage: ... - def __init__(self, *, has_message: builtins.bool=..., packet_message: global___PacketMessage | None=..., eos: builtins.bool=...) -> None: + def __init__(self, *, has_message: _builtins.bool=..., packet_message: Global___PacketMessage | None=..., eos: _builtins.bool=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['packet_message', b'packet_message'] - def HasField(self, field_name: typing.Literal['packet_message', b'packet_message']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['eos', b'eos', 'has_message', b'has_message', 'packet_message', b'packet_message'] - def ClearField(self, field_name: typing.Literal['eos', b'eos', 'has_message', b'has_message', 'packet_message', b'packet_message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RequestMessage = RequestMessage +Global___RequestMessage: _TypeAlias = RequestMessage -@typing.final -class Response(google.protobuf.message.Message): +@_typing.final +class Response(_message.Message): """A Response is a frame coming from a server. It is always associated with a stream where the client assigns the stream identifier. Clients will drop frames where the stream identifier has no association. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - STREAM_FIELD_NUMBER: builtins.int - HEADERS_FIELD_NUMBER: builtins.int - MESSAGE_FIELD_NUMBER: builtins.int - TRAILERS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + STREAM_FIELD_NUMBER: _builtins.int + HEADERS_FIELD_NUMBER: _builtins.int + MESSAGE_FIELD_NUMBER: _builtins.int + TRAILERS_FIELD_NUMBER: _builtins.int - @property - def stream(self) -> global___Stream: + @_builtins.property + def stream(self) -> Global___Stream: ... - @property - def headers(self) -> global___ResponseHeaders: + @_builtins.property + def headers(self) -> Global___ResponseHeaders: ... - @property - def message(self) -> global___ResponseMessage: + @_builtins.property + def message(self) -> Global___ResponseMessage: ... - @property - def trailers(self) -> global___ResponseTrailers: + @_builtins.property + def trailers(self) -> Global___ResponseTrailers: ... - def __init__(self, *, stream: global___Stream | None=..., headers: global___ResponseHeaders | None=..., message: global___ResponseMessage | None=..., trailers: global___ResponseTrailers | None=...) -> None: + def __init__(self, *, stream: Global___Stream | None=..., headers: Global___ResponseHeaders | None=..., message: Global___ResponseMessage | None=..., trailers: Global___ResponseTrailers | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['headers', b'headers', 'message', b'message', 'stream', b'stream', 'trailers', b'trailers', 'type', b'type'] - def HasField(self, field_name: typing.Literal['headers', b'headers', 'message', b'message', 'stream', b'stream', 'trailers', b'trailers', 'type', b'type']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['headers', b'headers', 'message', b'message', 'stream', b'stream', 'trailers', b'trailers', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['headers', b'headers', 'message', b'message', 'stream', b'stream', 'trailers', b'trailers', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_type: _TypeAlias = _typing.Literal['headers', 'message', 'trailers'] + _WhichOneofArgType_type: _TypeAlias = _typing.Literal['type', b'type'] - def WhichOneof(self, oneof_group: typing.Literal['type', b'type']) -> typing.Literal['headers', 'message', 'trailers'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_type) -> _WhichOneofReturnType_type | None: ... -global___Response = Response +Global___Response: _TypeAlias = Response -@typing.final -class ResponseHeaders(google.protobuf.message.Message): +@_typing.final +class ResponseHeaders(_message.Message): """ResponseHeaders contain custom metadata that are sent to the client before any message or trailers (unless only trailers are sent). """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + METADATA_FIELD_NUMBER: _builtins.int - @property - def metadata(self) -> global___Metadata: + @_builtins.property + def metadata(self) -> Global___Metadata: ... - def __init__(self, *, metadata: global___Metadata | None=...) -> None: + def __init__(self, *, metadata: Global___Metadata | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata'] - def HasField(self, field_name: typing.Literal['metadata', b'metadata']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata'] - def ClearField(self, field_name: typing.Literal['metadata', b'metadata']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResponseHeaders = ResponseHeaders +Global___ResponseHeaders: _TypeAlias = ResponseHeaders -@typing.final -class ResponseMessage(google.protobuf.message.Message): +@_typing.final +class ResponseMessage(_message.Message): """ResponseMessage contains the data of a response to a call.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PACKET_MESSAGE_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + PACKET_MESSAGE_FIELD_NUMBER: _builtins.int - @property - def packet_message(self) -> global___PacketMessage: + @_builtins.property + def packet_message(self) -> Global___PacketMessage: ... - def __init__(self, *, packet_message: global___PacketMessage | None=...) -> None: + def __init__(self, *, packet_message: Global___PacketMessage | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['packet_message', b'packet_message'] - def HasField(self, field_name: typing.Literal['packet_message', b'packet_message']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['packet_message', b'packet_message'] - def ClearField(self, field_name: typing.Literal['packet_message', b'packet_message']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResponseMessage = ResponseMessage +Global___ResponseMessage: _TypeAlias = ResponseMessage -@typing.final -class ResponseTrailers(google.protobuf.message.Message): +@_typing.final +class ResponseTrailers(_message.Message): """ResponseTrailers contain the status of a response and any custom metadata.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - STATUS_FIELD_NUMBER: builtins.int - METADATA_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + STATUS_FIELD_NUMBER: _builtins.int + METADATA_FIELD_NUMBER: _builtins.int - @property - def status(self) -> google.rpc.status_pb2.Status: + @_builtins.property + def status(self) -> _status_pb2.Status: ... - @property - def metadata(self) -> global___Metadata: + @_builtins.property + def metadata(self) -> Global___Metadata: ... - def __init__(self, *, status: google.rpc.status_pb2.Status | None=..., metadata: global___Metadata | None=...) -> None: + def __init__(self, *, status: _status_pb2.Status | None=..., metadata: Global___Metadata | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata', 'status', b'status'] - def HasField(self, field_name: typing.Literal['metadata', b'metadata', 'status', b'status']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata', 'status', b'status'] - def ClearField(self, field_name: typing.Literal['metadata', b'metadata', 'status', b'status']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResponseTrailers = ResponseTrailers +Global___ResponseTrailers: _TypeAlias = ResponseTrailers -@typing.final -class Strings(google.protobuf.message.Message): +@_typing.final +class Strings(_message.Message): """Strings are a series of values.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUES_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + VALUES_FIELD_NUMBER: _builtins.int - @property - def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def values(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, values: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, values: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['values', b'values'] - def ClearField(self, field_name: typing.Literal['values', b'values']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Strings = Strings +Global___Strings: _TypeAlias = Strings -@typing.final -class Metadata(google.protobuf.message.Message): +@_typing.final +class Metadata(_message.Message): """Metadata is for custom key values provided by a client or server during a stream. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class MdEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class MdEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> global___Strings: + @_builtins.property + def value(self) -> Global___Strings: ... - def __init__(self, *, key: builtins.str=..., value: global___Strings | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: Global___Strings | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - MD_FIELD_NUMBER: builtins.int + MD_FIELD_NUMBER: _builtins.int - @property - def md(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___Strings]: + @_builtins.property + def md(self) -> _containers.MessageMap[_builtins.str, Global___Strings]: ... - def __init__(self, *, md: collections.abc.Mapping[builtins.str, global___Strings] | None=...) -> None: + def __init__(self, *, md: _abc.Mapping[_builtins.str, Global___Strings] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['md', b'md'] - def ClearField(self, field_name: typing.Literal['md', b'md']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Metadata = Metadata \ No newline at end of file +Global___Metadata: _TypeAlias = Metadata \ No newline at end of file diff --git a/src/viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py b/src/viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py index 707c118326..cdb171e169 100644 --- a/src/viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py +++ b/src/viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'proto/rpc/webrtc/v1/signaling.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'proto/rpc/webrtc/v1/signaling.proto') _sym_db = _symbol_database.Default() from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 diff --git a/src/viam/gen/proto/rpc/webrtc/v1/signaling_pb2.pyi b/src/viam/gen/proto/rpc/webrtc/v1/signaling_pb2.pyi index f46f22132d..f9ee11b3fe 100644 --- a/src/viam/gen/proto/rpc/webrtc/v1/signaling_pb2.pyi +++ b/src/viam/gen/proto/rpc/webrtc/v1/signaling_pb2.pyi @@ -2,495 +2,545 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.timestamp_pb2 -import google.rpc.status_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class ICECandidate(google.protobuf.message.Message): +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.rpc import status_pb2 as _status_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class ICECandidate(_message.Message): """ICECandidate represents an ICE candidate. From https://github.com/pion/webrtc/blob/5f6baf73255598a7b4a7c9400bb0381acc9aa3dc/icecandidateinit.go """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CANDIDATE_FIELD_NUMBER: builtins.int - SDP_MID_FIELD_NUMBER: builtins.int - SDPM_LINE_INDEX_FIELD_NUMBER: builtins.int - USERNAME_FRAGMENT_FIELD_NUMBER: builtins.int - candidate: builtins.str - sdp_mid: builtins.str - sdpm_line_index: builtins.int - username_fragment: builtins.str + DESCRIPTOR: _descriptor.Descriptor + CANDIDATE_FIELD_NUMBER: _builtins.int + SDP_MID_FIELD_NUMBER: _builtins.int + SDPM_LINE_INDEX_FIELD_NUMBER: _builtins.int + USERNAME_FRAGMENT_FIELD_NUMBER: _builtins.int + candidate: _builtins.str + sdp_mid: _builtins.str + sdpm_line_index: _builtins.int + username_fragment: _builtins.str - def __init__(self, *, candidate: builtins.str=..., sdp_mid: builtins.str | None=..., sdpm_line_index: builtins.int | None=..., username_fragment: builtins.str | None=...) -> None: + def __init__(self, *, candidate: _builtins.str=..., sdp_mid: _builtins.str | None=..., sdpm_line_index: _builtins.int | None=..., username_fragment: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_sdp_mid', b'_sdp_mid', '_sdpm_line_index', b'_sdpm_line_index', '_username_fragment', b'_username_fragment', 'sdp_mid', b'sdp_mid', 'sdpm_line_index', b'sdpm_line_index', 'username_fragment', b'username_fragment'] - def HasField(self, field_name: typing.Literal['_sdp_mid', b'_sdp_mid', '_sdpm_line_index', b'_sdpm_line_index', '_username_fragment', b'_username_fragment', 'sdp_mid', b'sdp_mid', 'sdpm_line_index', b'sdpm_line_index', 'username_fragment', b'username_fragment']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_sdp_mid', b'_sdp_mid', '_sdpm_line_index', b'_sdpm_line_index', '_username_fragment', b'_username_fragment', 'candidate', b'candidate', 'sdp_mid', b'sdp_mid', 'sdpm_line_index', b'sdpm_line_index', 'username_fragment', b'username_fragment'] - def ClearField(self, field_name: typing.Literal['_sdp_mid', b'_sdp_mid', '_sdpm_line_index', b'_sdpm_line_index', '_username_fragment', b'_username_fragment', 'candidate', b'candidate', 'sdp_mid', b'sdp_mid', 'sdpm_line_index', b'sdpm_line_index', 'username_fragment', b'username_fragment']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__sdp_mid: _TypeAlias = _typing.Literal['sdp_mid'] + _WhichOneofArgType__sdp_mid: _TypeAlias = _typing.Literal['_sdp_mid', b'_sdp_mid'] + _WhichOneofReturnType__sdpm_line_index: _TypeAlias = _typing.Literal['sdpm_line_index'] + _WhichOneofArgType__sdpm_line_index: _TypeAlias = _typing.Literal['_sdpm_line_index', b'_sdpm_line_index'] + _WhichOneofReturnType__username_fragment: _TypeAlias = _typing.Literal['username_fragment'] + _WhichOneofArgType__username_fragment: _TypeAlias = _typing.Literal['_username_fragment', b'_username_fragment'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_sdp_mid', b'_sdp_mid']) -> typing.Literal['sdp_mid'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__sdp_mid) -> _WhichOneofReturnType__sdp_mid | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_sdpm_line_index', b'_sdpm_line_index']) -> typing.Literal['sdpm_line_index'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__sdpm_line_index) -> _WhichOneofReturnType__sdpm_line_index | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_username_fragment', b'_username_fragment']) -> typing.Literal['username_fragment'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__username_fragment) -> _WhichOneofReturnType__username_fragment | None: ... -global___ICECandidate = ICECandidate +Global___ICECandidate: _TypeAlias = ICECandidate -@typing.final -class CallRequest(google.protobuf.message.Message): +@_typing.final +class CallRequest(_message.Message): """CallRequest is the SDP offer that the controlling side is making.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SDP_FIELD_NUMBER: builtins.int - DISABLE_TRICKLE_FIELD_NUMBER: builtins.int - sdp: builtins.str - disable_trickle: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + SDP_FIELD_NUMBER: _builtins.int + DISABLE_TRICKLE_FIELD_NUMBER: _builtins.int + sdp: _builtins.str + disable_trickle: _builtins.bool 'when disable_trickle is true, the init stage will be the only stage\n to be received in the response and the caller can expect the SDP\n to contain all ICE candidates.\n ' - def __init__(self, *, sdp: builtins.str=..., disable_trickle: builtins.bool=...) -> None: + def __init__(self, *, sdp: _builtins.str=..., disable_trickle: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['disable_trickle', b'disable_trickle', 'sdp', b'sdp'] - def ClearField(self, field_name: typing.Literal['disable_trickle', b'disable_trickle', 'sdp', b'sdp']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CallRequest = CallRequest +Global___CallRequest: _TypeAlias = CallRequest -@typing.final -class CallResponseInitStage(google.protobuf.message.Message): +@_typing.final +class CallResponseInitStage(_message.Message): """CallResponseInitStage is the first and a one time stage that represents the initial response to starting a call. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SDP_FIELD_NUMBER: builtins.int - sdp: builtins.str + DESCRIPTOR: _descriptor.Descriptor + SDP_FIELD_NUMBER: _builtins.int + sdp: _builtins.str - def __init__(self, *, sdp: builtins.str=...) -> None: + def __init__(self, *, sdp: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['sdp', b'sdp'] - def ClearField(self, field_name: typing.Literal['sdp', b'sdp']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CallResponseInitStage = CallResponseInitStage +Global___CallResponseInitStage: _TypeAlias = CallResponseInitStage -@typing.final -class CallResponseUpdateStage(google.protobuf.message.Message): +@_typing.final +class CallResponseUpdateStage(_message.Message): """CallResponseUpdateStage is multiply used to trickle in ICE candidates from the controlled (answering) side. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CANDIDATE_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + CANDIDATE_FIELD_NUMBER: _builtins.int - @property - def candidate(self) -> global___ICECandidate: + @_builtins.property + def candidate(self) -> Global___ICECandidate: ... - def __init__(self, *, candidate: global___ICECandidate | None=...) -> None: + def __init__(self, *, candidate: Global___ICECandidate | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['candidate', b'candidate'] - def HasField(self, field_name: typing.Literal['candidate', b'candidate']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['candidate', b'candidate'] - def ClearField(self, field_name: typing.Literal['candidate', b'candidate']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CallResponseUpdateStage = CallResponseUpdateStage +Global___CallResponseUpdateStage: _TypeAlias = CallResponseUpdateStage -@typing.final -class CallResponse(google.protobuf.message.Message): +@_typing.final +class CallResponse(_message.Message): """CallResponse is the SDP answer that the controlled side responds with.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - UUID_FIELD_NUMBER: builtins.int - INIT_FIELD_NUMBER: builtins.int - UPDATE_FIELD_NUMBER: builtins.int - uuid: builtins.str + DESCRIPTOR: _descriptor.Descriptor + UUID_FIELD_NUMBER: _builtins.int + INIT_FIELD_NUMBER: _builtins.int + UPDATE_FIELD_NUMBER: _builtins.int + uuid: _builtins.str - @property - def init(self) -> global___CallResponseInitStage: + @_builtins.property + def init(self) -> Global___CallResponseInitStage: ... - @property - def update(self) -> global___CallResponseUpdateStage: + @_builtins.property + def update(self) -> Global___CallResponseUpdateStage: ... - def __init__(self, *, uuid: builtins.str=..., init: global___CallResponseInitStage | None=..., update: global___CallResponseUpdateStage | None=...) -> None: + def __init__(self, *, uuid: _builtins.str=..., init: Global___CallResponseInitStage | None=..., update: Global___CallResponseUpdateStage | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['init', b'init', 'stage', b'stage', 'update', b'update'] - def HasField(self, field_name: typing.Literal['init', b'init', 'stage', b'stage', 'update', b'update']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['init', b'init', 'stage', b'stage', 'update', b'update', 'uuid', b'uuid'] - def ClearField(self, field_name: typing.Literal['init', b'init', 'stage', b'stage', 'update', b'update', 'uuid', b'uuid']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_stage: _TypeAlias = _typing.Literal['init', 'update'] + _WhichOneofArgType_stage: _TypeAlias = _typing.Literal['stage', b'stage'] - def WhichOneof(self, oneof_group: typing.Literal['stage', b'stage']) -> typing.Literal['init', 'update'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_stage) -> _WhichOneofReturnType_stage | None: ... -global___CallResponse = CallResponse +Global___CallResponse: _TypeAlias = CallResponse -@typing.final -class CallUpdateRequest(google.protobuf.message.Message): +@_typing.final +class CallUpdateRequest(_message.Message): """CallUpdateRequest updates the call with additional info to the controlled side.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - UUID_FIELD_NUMBER: builtins.int - CANDIDATE_FIELD_NUMBER: builtins.int - DONE_FIELD_NUMBER: builtins.int - ERROR_FIELD_NUMBER: builtins.int - uuid: builtins.str - done: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + UUID_FIELD_NUMBER: _builtins.int + CANDIDATE_FIELD_NUMBER: _builtins.int + DONE_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + uuid: _builtins.str + done: _builtins.bool - @property - def candidate(self) -> global___ICECandidate: + @_builtins.property + def candidate(self) -> Global___ICECandidate: ... - @property - def error(self) -> google.rpc.status_pb2.Status: + @_builtins.property + def error(self) -> _status_pb2.Status: ... - def __init__(self, *, uuid: builtins.str=..., candidate: global___ICECandidate | None=..., done: builtins.bool=..., error: google.rpc.status_pb2.Status | None=...) -> None: + def __init__(self, *, uuid: _builtins.str=..., candidate: Global___ICECandidate | None=..., done: _builtins.bool=..., error: _status_pb2.Status | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['candidate', b'candidate', 'done', b'done', 'error', b'error', 'update', b'update'] - def HasField(self, field_name: typing.Literal['candidate', b'candidate', 'done', b'done', 'error', b'error', 'update', b'update']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['candidate', b'candidate', 'done', b'done', 'error', b'error', 'update', b'update', 'uuid', b'uuid'] - def ClearField(self, field_name: typing.Literal['candidate', b'candidate', 'done', b'done', 'error', b'error', 'update', b'update', 'uuid', b'uuid']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_update: _TypeAlias = _typing.Literal['candidate', 'done', 'error'] + _WhichOneofArgType_update: _TypeAlias = _typing.Literal['update', b'update'] - def WhichOneof(self, oneof_group: typing.Literal['update', b'update']) -> typing.Literal['candidate', 'done', 'error'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_update) -> _WhichOneofReturnType_update | None: ... -global___CallUpdateRequest = CallUpdateRequest +Global___CallUpdateRequest: _TypeAlias = CallUpdateRequest -@typing.final -class CallUpdateResponse(google.protobuf.message.Message): +@_typing.final +class CallUpdateResponse(_message.Message): """CallUpdateResponse contains nothing in response to a call update.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___CallUpdateResponse = CallUpdateResponse +Global___CallUpdateResponse: _TypeAlias = CallUpdateResponse -@typing.final -class ICEServer(google.protobuf.message.Message): +@_typing.final +class ICEServer(_message.Message): """ICEServer describes an ICE server.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - URLS_FIELD_NUMBER: builtins.int - USERNAME_FIELD_NUMBER: builtins.int - CREDENTIAL_FIELD_NUMBER: builtins.int - username: builtins.str - credential: builtins.str + DESCRIPTOR: _descriptor.Descriptor + URLS_FIELD_NUMBER: _builtins.int + USERNAME_FIELD_NUMBER: _builtins.int + CREDENTIAL_FIELD_NUMBER: _builtins.int + username: _builtins.str + credential: _builtins.str - @property - def urls(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def urls(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, urls: collections.abc.Iterable[builtins.str] | None=..., username: builtins.str=..., credential: builtins.str=...) -> None: + def __init__(self, *, urls: _abc.Iterable[_builtins.str] | None=..., username: _builtins.str=..., credential: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['credential', b'credential', 'urls', b'urls', 'username', b'username'] - def ClearField(self, field_name: typing.Literal['credential', b'credential', 'urls', b'urls', 'username', b'username']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ICEServer = ICEServer +Global___ICEServer: _TypeAlias = ICEServer -@typing.final -class WebRTCConfig(google.protobuf.message.Message): +@_typing.final +class WebRTCConfig(_message.Message): """WebRTCConfig represents parts of a WebRTC config.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ADDITIONAL_ICE_SERVERS_FIELD_NUMBER: builtins.int - DISABLE_TRICKLE_FIELD_NUMBER: builtins.int - disable_trickle: builtins.bool + DESCRIPTOR: _descriptor.Descriptor + ADDITIONAL_ICE_SERVERS_FIELD_NUMBER: _builtins.int + DISABLE_TRICKLE_FIELD_NUMBER: _builtins.int + disable_trickle: _builtins.bool 'disable_trickle indicates if Trickle ICE should be used. Currently, both\n sides must both respect this setting.\n ' - @property - def additional_ice_servers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ICEServer]: + @_builtins.property + def additional_ice_servers(self) -> _containers.RepeatedCompositeFieldContainer[Global___ICEServer]: ... - def __init__(self, *, additional_ice_servers: collections.abc.Iterable[global___ICEServer] | None=..., disable_trickle: builtins.bool=...) -> None: + def __init__(self, *, additional_ice_servers: _abc.Iterable[Global___ICEServer] | None=..., disable_trickle: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['additional_ice_servers', b'additional_ice_servers', 'disable_trickle', b'disable_trickle'] - def ClearField(self, field_name: typing.Literal['additional_ice_servers', b'additional_ice_servers', 'disable_trickle', b'disable_trickle']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___WebRTCConfig = WebRTCConfig +Global___WebRTCConfig: _TypeAlias = WebRTCConfig -@typing.final -class AnswerRequestInitStage(google.protobuf.message.Message): +@_typing.final +class AnswerRequestInitStage(_message.Message): """AnswerRequestInitStage is the first and a one time stage that represents the callers initial SDP request to the controlled (answerer) side. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SDP_FIELD_NUMBER: builtins.int - OPTIONAL_CONFIG_FIELD_NUMBER: builtins.int - DEADLINE_FIELD_NUMBER: builtins.int - sdp: builtins.str + DESCRIPTOR: _descriptor.Descriptor + SDP_FIELD_NUMBER: _builtins.int + OPTIONAL_CONFIG_FIELD_NUMBER: _builtins.int + DEADLINE_FIELD_NUMBER: _builtins.int + sdp: _builtins.str - @property - def optional_config(self) -> global___WebRTCConfig: + @_builtins.property + def optional_config(self) -> Global___WebRTCConfig: ... - @property - def deadline(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def deadline(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, sdp: builtins.str=..., optional_config: global___WebRTCConfig | None=..., deadline: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, sdp: _builtins.str=..., optional_config: Global___WebRTCConfig | None=..., deadline: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_deadline', b'_deadline', 'deadline', b'deadline', 'optional_config', b'optional_config'] - def HasField(self, field_name: typing.Literal['_deadline', b'_deadline', 'deadline', b'deadline', 'optional_config', b'optional_config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_deadline', b'_deadline', 'deadline', b'deadline', 'optional_config', b'optional_config', 'sdp', b'sdp'] - def ClearField(self, field_name: typing.Literal['_deadline', b'_deadline', 'deadline', b'deadline', 'optional_config', b'optional_config', 'sdp', b'sdp']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__deadline: _TypeAlias = _typing.Literal['deadline'] + _WhichOneofArgType__deadline: _TypeAlias = _typing.Literal['_deadline', b'_deadline'] - def WhichOneof(self, oneof_group: typing.Literal['_deadline', b'_deadline']) -> typing.Literal['deadline'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__deadline) -> _WhichOneofReturnType__deadline | None: ... -global___AnswerRequestInitStage = AnswerRequestInitStage +Global___AnswerRequestInitStage: _TypeAlias = AnswerRequestInitStage -@typing.final -class AnswerRequestUpdateStage(google.protobuf.message.Message): +@_typing.final +class AnswerRequestUpdateStage(_message.Message): """AnswerRequestUpdateStage is multiply used to trickle in ICE candidates to the controlled (answerer) side. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CANDIDATE_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + CANDIDATE_FIELD_NUMBER: _builtins.int - @property - def candidate(self) -> global___ICECandidate: + @_builtins.property + def candidate(self) -> Global___ICECandidate: ... - def __init__(self, *, candidate: global___ICECandidate | None=...) -> None: + def __init__(self, *, candidate: Global___ICECandidate | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['candidate', b'candidate'] - def HasField(self, field_name: typing.Literal['candidate', b'candidate']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['candidate', b'candidate'] - def ClearField(self, field_name: typing.Literal['candidate', b'candidate']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AnswerRequestUpdateStage = AnswerRequestUpdateStage +Global___AnswerRequestUpdateStage: _TypeAlias = AnswerRequestUpdateStage -@typing.final -class AnswerRequestDoneStage(google.protobuf.message.Message): +@_typing.final +class AnswerRequestDoneStage(_message.Message): """AnswerRequestDoneStage indicates the controller is done responding with candidates.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AnswerRequestDoneStage = AnswerRequestDoneStage +Global___AnswerRequestDoneStage: _TypeAlias = AnswerRequestDoneStage -@typing.final -class AnswerRequestErrorStage(google.protobuf.message.Message): +@_typing.final +class AnswerRequestErrorStage(_message.Message): """AnswerRequestErrorStage indicates the exchange has failed with an error.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - STATUS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + STATUS_FIELD_NUMBER: _builtins.int - @property - def status(self) -> google.rpc.status_pb2.Status: + @_builtins.property + def status(self) -> _status_pb2.Status: ... - def __init__(self, *, status: google.rpc.status_pb2.Status | None=...) -> None: + def __init__(self, *, status: _status_pb2.Status | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['status', b'status'] - def HasField(self, field_name: typing.Literal['status', b'status']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['status', b'status'] - def ClearField(self, field_name: typing.Literal['status', b'status']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AnswerRequestErrorStage = AnswerRequestErrorStage +Global___AnswerRequestErrorStage: _TypeAlias = AnswerRequestErrorStage -@typing.final -class AnswerRequestHeartbeatStage(google.protobuf.message.Message): +@_typing.final +class AnswerRequestHeartbeatStage(_message.Message): """AnswerRequestHeartbeatStage is sent periodically to verify liveness of answerer.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AnswerRequestHeartbeatStage = AnswerRequestHeartbeatStage +Global___AnswerRequestHeartbeatStage: _TypeAlias = AnswerRequestHeartbeatStage -@typing.final -class AnswerRequest(google.protobuf.message.Message): +@_typing.final +class AnswerRequest(_message.Message): """AnswerRequest is the SDP offer that the controlling side is making via the answering stream. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - UUID_FIELD_NUMBER: builtins.int - INIT_FIELD_NUMBER: builtins.int - UPDATE_FIELD_NUMBER: builtins.int - DONE_FIELD_NUMBER: builtins.int - ERROR_FIELD_NUMBER: builtins.int - HEARTBEAT_FIELD_NUMBER: builtins.int - uuid: builtins.str + DESCRIPTOR: _descriptor.Descriptor + UUID_FIELD_NUMBER: _builtins.int + INIT_FIELD_NUMBER: _builtins.int + UPDATE_FIELD_NUMBER: _builtins.int + DONE_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + HEARTBEAT_FIELD_NUMBER: _builtins.int + uuid: _builtins.str - @property - def init(self) -> global___AnswerRequestInitStage: + @_builtins.property + def init(self) -> Global___AnswerRequestInitStage: ... - @property - def update(self) -> global___AnswerRequestUpdateStage: + @_builtins.property + def update(self) -> Global___AnswerRequestUpdateStage: ... - @property - def done(self) -> global___AnswerRequestDoneStage: + @_builtins.property + def done(self) -> Global___AnswerRequestDoneStage: """done is sent when the requester is done sending information""" - @property - def error(self) -> global___AnswerRequestErrorStage: + @_builtins.property + def error(self) -> Global___AnswerRequestErrorStage: """error is sent any time before done""" - @property - def heartbeat(self) -> global___AnswerRequestHeartbeatStage: + @_builtins.property + def heartbeat(self) -> Global___AnswerRequestHeartbeatStage: """heartbeat is sent periodically to verify liveness of answerer""" - def __init__(self, *, uuid: builtins.str=..., init: global___AnswerRequestInitStage | None=..., update: global___AnswerRequestUpdateStage | None=..., done: global___AnswerRequestDoneStage | None=..., error: global___AnswerRequestErrorStage | None=..., heartbeat: global___AnswerRequestHeartbeatStage | None=...) -> None: + def __init__(self, *, uuid: _builtins.str=..., init: Global___AnswerRequestInitStage | None=..., update: Global___AnswerRequestUpdateStage | None=..., done: Global___AnswerRequestDoneStage | None=..., error: Global___AnswerRequestErrorStage | None=..., heartbeat: Global___AnswerRequestHeartbeatStage | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['done', b'done', 'error', b'error', 'heartbeat', b'heartbeat', 'init', b'init', 'stage', b'stage', 'update', b'update'] - def HasField(self, field_name: typing.Literal['done', b'done', 'error', b'error', 'heartbeat', b'heartbeat', 'init', b'init', 'stage', b'stage', 'update', b'update']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['done', b'done', 'error', b'error', 'heartbeat', b'heartbeat', 'init', b'init', 'stage', b'stage', 'update', b'update', 'uuid', b'uuid'] - def ClearField(self, field_name: typing.Literal['done', b'done', 'error', b'error', 'heartbeat', b'heartbeat', 'init', b'init', 'stage', b'stage', 'update', b'update', 'uuid', b'uuid']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_stage: _TypeAlias = _typing.Literal['init', 'update', 'done', 'error', 'heartbeat'] + _WhichOneofArgType_stage: _TypeAlias = _typing.Literal['stage', b'stage'] - def WhichOneof(self, oneof_group: typing.Literal['stage', b'stage']) -> typing.Literal['init', 'update', 'done', 'error', 'heartbeat'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_stage) -> _WhichOneofReturnType_stage | None: ... -global___AnswerRequest = AnswerRequest +Global___AnswerRequest: _TypeAlias = AnswerRequest -@typing.final -class AnswerResponseInitStage(google.protobuf.message.Message): +@_typing.final +class AnswerResponseInitStage(_message.Message): """AnswerResponseInitStage is the first and a one time stage that represents the answerers initial SDP response to the controlling side. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SDP_FIELD_NUMBER: builtins.int - sdp: builtins.str + DESCRIPTOR: _descriptor.Descriptor + SDP_FIELD_NUMBER: _builtins.int + sdp: _builtins.str - def __init__(self, *, sdp: builtins.str=...) -> None: + def __init__(self, *, sdp: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['sdp', b'sdp'] - def ClearField(self, field_name: typing.Literal['sdp', b'sdp']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AnswerResponseInitStage = AnswerResponseInitStage +Global___AnswerResponseInitStage: _TypeAlias = AnswerResponseInitStage -@typing.final -class AnswerResponseUpdateStage(google.protobuf.message.Message): +@_typing.final +class AnswerResponseUpdateStage(_message.Message): """AnswerResponseUpdateStage is multiply used to trickle in ICE candidates to the controlling side. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CANDIDATE_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + CANDIDATE_FIELD_NUMBER: _builtins.int - @property - def candidate(self) -> global___ICECandidate: + @_builtins.property + def candidate(self) -> Global___ICECandidate: ... - def __init__(self, *, candidate: global___ICECandidate | None=...) -> None: + def __init__(self, *, candidate: Global___ICECandidate | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['candidate', b'candidate'] - def HasField(self, field_name: typing.Literal['candidate', b'candidate']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['candidate', b'candidate'] - def ClearField(self, field_name: typing.Literal['candidate', b'candidate']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AnswerResponseUpdateStage = AnswerResponseUpdateStage +Global___AnswerResponseUpdateStage: _TypeAlias = AnswerResponseUpdateStage -@typing.final -class AnswerResponseDoneStage(google.protobuf.message.Message): +@_typing.final +class AnswerResponseDoneStage(_message.Message): """AnswerResponseDoneStage indicates the answerer is done responding with candidates.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AnswerResponseDoneStage = AnswerResponseDoneStage +Global___AnswerResponseDoneStage: _TypeAlias = AnswerResponseDoneStage -@typing.final -class AnswerResponseErrorStage(google.protobuf.message.Message): +@_typing.final +class AnswerResponseErrorStage(_message.Message): """AnswerResponseErrorStage indicates the exchange has failed with an error.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - STATUS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + STATUS_FIELD_NUMBER: _builtins.int - @property - def status(self) -> google.rpc.status_pb2.Status: + @_builtins.property + def status(self) -> _status_pb2.Status: ... - def __init__(self, *, status: google.rpc.status_pb2.Status | None=...) -> None: + def __init__(self, *, status: _status_pb2.Status | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['status', b'status'] - def HasField(self, field_name: typing.Literal['status', b'status']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['status', b'status'] - def ClearField(self, field_name: typing.Literal['status', b'status']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AnswerResponseErrorStage = AnswerResponseErrorStage +Global___AnswerResponseErrorStage: _TypeAlias = AnswerResponseErrorStage -@typing.final -class AnswerResponse(google.protobuf.message.Message): +@_typing.final +class AnswerResponse(_message.Message): """AnswerResponse is the SDP answer that an answerer responds with.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - UUID_FIELD_NUMBER: builtins.int - INIT_FIELD_NUMBER: builtins.int - UPDATE_FIELD_NUMBER: builtins.int - DONE_FIELD_NUMBER: builtins.int - ERROR_FIELD_NUMBER: builtins.int - uuid: builtins.str + DESCRIPTOR: _descriptor.Descriptor + UUID_FIELD_NUMBER: _builtins.int + INIT_FIELD_NUMBER: _builtins.int + UPDATE_FIELD_NUMBER: _builtins.int + DONE_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + uuid: _builtins.str - @property - def init(self) -> global___AnswerResponseInitStage: + @_builtins.property + def init(self) -> Global___AnswerResponseInitStage: ... - @property - def update(self) -> global___AnswerResponseUpdateStage: + @_builtins.property + def update(self) -> Global___AnswerResponseUpdateStage: ... - @property - def done(self) -> global___AnswerResponseDoneStage: + @_builtins.property + def done(self) -> Global___AnswerResponseDoneStage: """done is sent when the answerer is done sending information""" - @property - def error(self) -> global___AnswerResponseErrorStage: + @_builtins.property + def error(self) -> Global___AnswerResponseErrorStage: """error is sent any time before done""" - def __init__(self, *, uuid: builtins.str=..., init: global___AnswerResponseInitStage | None=..., update: global___AnswerResponseUpdateStage | None=..., done: global___AnswerResponseDoneStage | None=..., error: global___AnswerResponseErrorStage | None=...) -> None: + def __init__(self, *, uuid: _builtins.str=..., init: Global___AnswerResponseInitStage | None=..., update: Global___AnswerResponseUpdateStage | None=..., done: Global___AnswerResponseDoneStage | None=..., error: Global___AnswerResponseErrorStage | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['done', b'done', 'error', b'error', 'init', b'init', 'stage', b'stage', 'update', b'update'] - def HasField(self, field_name: typing.Literal['done', b'done', 'error', b'error', 'init', b'init', 'stage', b'stage', 'update', b'update']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['done', b'done', 'error', b'error', 'init', b'init', 'stage', b'stage', 'update', b'update', 'uuid', b'uuid'] - def ClearField(self, field_name: typing.Literal['done', b'done', 'error', b'error', 'init', b'init', 'stage', b'stage', 'update', b'update', 'uuid', b'uuid']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_stage: _TypeAlias = _typing.Literal['init', 'update', 'done', 'error'] + _WhichOneofArgType_stage: _TypeAlias = _typing.Literal['stage', b'stage'] - def WhichOneof(self, oneof_group: typing.Literal['stage', b'stage']) -> typing.Literal['init', 'update', 'done', 'error'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_stage) -> _WhichOneofReturnType_stage | None: ... -global___AnswerResponse = AnswerResponse +Global___AnswerResponse: _TypeAlias = AnswerResponse -@typing.final -class OptionalWebRTCConfigRequest(google.protobuf.message.Message): +@_typing.final +class OptionalWebRTCConfigRequest(_message.Message): """OptionalWebRTCConfigRequest is the request for getting an optional WebRTC config to use for the peer connection. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___OptionalWebRTCConfigRequest = OptionalWebRTCConfigRequest +Global___OptionalWebRTCConfigRequest: _TypeAlias = OptionalWebRTCConfigRequest -@typing.final -class OptionalWebRTCConfigResponse(google.protobuf.message.Message): +@_typing.final +class OptionalWebRTCConfigResponse(_message.Message): """OptionalWebRTCConfigResponse contains the optional WebRTC config to use for the peer connection. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CONFIG_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + CONFIG_FIELD_NUMBER: _builtins.int - @property - def config(self) -> global___WebRTCConfig: + @_builtins.property + def config(self) -> Global___WebRTCConfig: ... - def __init__(self, *, config: global___WebRTCConfig | None=...) -> None: + def __init__(self, *, config: Global___WebRTCConfig | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['config', b'config'] - def HasField(self, field_name: typing.Literal['config', b'config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['config', b'config'] - def ClearField(self, field_name: typing.Literal['config', b'config']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___OptionalWebRTCConfigResponse = OptionalWebRTCConfigResponse \ No newline at end of file +Global___OptionalWebRTCConfigResponse: _TypeAlias = OptionalWebRTCConfigResponse \ No newline at end of file diff --git a/src/viam/gen/provisioning/v1/provisioning_pb2.py b/src/viam/gen/provisioning/v1/provisioning_pb2.py index b4035b33db..5b4fe6893b 100644 --- a/src/viam/gen/provisioning/v1/provisioning_pb2.py +++ b/src/viam/gen/provisioning/v1/provisioning_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'provisioning/v1/provisioning.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'provisioning/v1/provisioning.proto') _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n"provisioning/v1/provisioning.proto\x12\x14viam.provisioning.v1"\x19\n\x17ExitProvisioningRequest"\x1a\n\x18ExitProvisioningResponse"\x1e\n\x1cGetSmartMachineStatusRequest"\xf0\x02\n\x1dGetSmartMachineStatusResponse\x12S\n\x11provisioning_info\x18\x01 \x01(\x0b2&.viam.provisioning.v1.ProvisioningInfoR\x10provisioningInfo\x12A\n\x1dhas_smart_machine_credentials\x18\x02 \x01(\x08R\x1ahasSmartMachineCredentials\x12\x1b\n\tis_online\x18\x03 \x01(\x08R\x08isOnline\x12]\n\x19latest_connection_attempt\x18\x04 \x01(\x0b2!.viam.provisioning.v1.NetworkInfoR\x17latestConnectionAttempt\x12\x16\n\x06errors\x18\x05 \x03(\tR\x06errors\x12#\n\ragent_version\x18\x06 \x01(\tR\x0cagentVersion"X\n\x1cSetNetworkCredentialsRequest\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x12\n\x04ssid\x18\x02 \x01(\tR\x04ssid\x12\x10\n\x03psk\x18\x03 \x01(\tR\x03psk"\x1f\n\x1dSetNetworkCredentialsResponse"\\\n!SetSmartMachineCredentialsRequest\x127\n\x05cloud\x18\x01 \x01(\x0b2!.viam.provisioning.v1.CloudConfigR\x05cloud"$\n"SetSmartMachineCredentialsResponse"\x17\n\x15GetNetworkListRequest"W\n\x16GetNetworkListResponse\x12=\n\x08networks\x18\x01 \x03(\x0b2!.viam.provisioning.v1.NetworkInfoR\x08networks"m\n\x10ProvisioningInfo\x12\x1f\n\x0bfragment_id\x18\x01 \x01(\tR\nfragmentId\x12\x14\n\x05model\x18\x02 \x01(\tR\x05model\x12"\n\x0cmanufacturer\x18\x03 \x01(\tR\x0cmanufacturer"\xa6\x01\n\x0bNetworkInfo\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x12\n\x04ssid\x18\x02 \x01(\tR\x04ssid\x12\x1a\n\x08security\x18\x03 \x01(\tR\x08security\x12\x16\n\x06signal\x18\x04 \x01(\x05R\x06signal\x12\x1c\n\tconnected\x18\x05 \x01(\x08R\tconnected\x12\x1d\n\nlast_error\x18\x06 \x01(\tR\tlastError"\x8d\x01\n\x0bCloudConfig\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n\x06secret\x18\x02 \x01(\tR\x06secret\x12\x1f\n\x0bapp_address\x18\x03 \x01(\tR\nappAddress\x125\n\x07api_key\x18\x04 \x01(\x0b2\x1c.viam.provisioning.v1.APIKeyR\x06apiKey"*\n\x06APIKey\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n\x03key\x18\x02 \x01(\tR\x03key2\x8d\x05\n\x13ProvisioningService\x12\x80\x01\n\x15GetSmartMachineStatus\x122.viam.provisioning.v1.GetSmartMachineStatusRequest\x1a3.viam.provisioning.v1.GetSmartMachineStatusResponse\x12\x80\x01\n\x15SetNetworkCredentials\x122.viam.provisioning.v1.SetNetworkCredentialsRequest\x1a3.viam.provisioning.v1.SetNetworkCredentialsResponse\x12\x8f\x01\n\x1aSetSmartMachineCredentials\x127.viam.provisioning.v1.SetSmartMachineCredentialsRequest\x1a8.viam.provisioning.v1.SetSmartMachineCredentialsResponse\x12k\n\x0eGetNetworkList\x12+.viam.provisioning.v1.GetNetworkListRequest\x1a,.viam.provisioning.v1.GetNetworkListResponse\x12q\n\x10ExitProvisioning\x12-.viam.provisioning.v1.ExitProvisioningRequest\x1a..viam.provisioning.v1.ExitProvisioningResponseB!Z\x1fgo.viam.com/api/provisioning/v1b\x06proto3') _globals = globals() diff --git a/src/viam/gen/provisioning/v1/provisioning_pb2.pyi b/src/viam/gen/provisioning/v1/provisioning_pb2.pyi index d08e087771..7ca98ae20a 100644 --- a/src/viam/gen/provisioning/v1/provisioning_pb2.pyi +++ b/src/viam/gen/provisioning/v1/provisioning_pb2.pyi @@ -2,228 +2,244 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class ExitProvisioningRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class ExitProvisioningRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ExitProvisioningRequest = ExitProvisioningRequest +Global___ExitProvisioningRequest: _TypeAlias = ExitProvisioningRequest -@typing.final -class ExitProvisioningResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ExitProvisioningResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ExitProvisioningResponse = ExitProvisioningResponse +Global___ExitProvisioningResponse: _TypeAlias = ExitProvisioningResponse -@typing.final -class GetSmartMachineStatusRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetSmartMachineStatusRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___GetSmartMachineStatusRequest = GetSmartMachineStatusRequest +Global___GetSmartMachineStatusRequest: _TypeAlias = GetSmartMachineStatusRequest -@typing.final -class GetSmartMachineStatusResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PROVISIONING_INFO_FIELD_NUMBER: builtins.int - HAS_SMART_MACHINE_CREDENTIALS_FIELD_NUMBER: builtins.int - IS_ONLINE_FIELD_NUMBER: builtins.int - LATEST_CONNECTION_ATTEMPT_FIELD_NUMBER: builtins.int - ERRORS_FIELD_NUMBER: builtins.int - AGENT_VERSION_FIELD_NUMBER: builtins.int - has_smart_machine_credentials: builtins.bool - is_online: builtins.bool - agent_version: builtins.str +@_typing.final +class GetSmartMachineStatusResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PROVISIONING_INFO_FIELD_NUMBER: _builtins.int + HAS_SMART_MACHINE_CREDENTIALS_FIELD_NUMBER: _builtins.int + IS_ONLINE_FIELD_NUMBER: _builtins.int + LATEST_CONNECTION_ATTEMPT_FIELD_NUMBER: _builtins.int + ERRORS_FIELD_NUMBER: _builtins.int + AGENT_VERSION_FIELD_NUMBER: _builtins.int + has_smart_machine_credentials: _builtins.bool + is_online: _builtins.bool + agent_version: _builtins.str - @property - def provisioning_info(self) -> global___ProvisioningInfo: + @_builtins.property + def provisioning_info(self) -> Global___ProvisioningInfo: ... - @property - def latest_connection_attempt(self) -> global___NetworkInfo: + @_builtins.property + def latest_connection_attempt(self) -> Global___NetworkInfo: ... - @property - def errors(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def errors(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, provisioning_info: global___ProvisioningInfo | None=..., has_smart_machine_credentials: builtins.bool=..., is_online: builtins.bool=..., latest_connection_attempt: global___NetworkInfo | None=..., errors: collections.abc.Iterable[builtins.str] | None=..., agent_version: builtins.str=...) -> None: + def __init__(self, *, provisioning_info: Global___ProvisioningInfo | None=..., has_smart_machine_credentials: _builtins.bool=..., is_online: _builtins.bool=..., latest_connection_attempt: Global___NetworkInfo | None=..., errors: _abc.Iterable[_builtins.str] | None=..., agent_version: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['latest_connection_attempt', b'latest_connection_attempt', 'provisioning_info', b'provisioning_info'] - def HasField(self, field_name: typing.Literal['latest_connection_attempt', b'latest_connection_attempt', 'provisioning_info', b'provisioning_info']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['agent_version', b'agent_version', 'errors', b'errors', 'has_smart_machine_credentials', b'has_smart_machine_credentials', 'is_online', b'is_online', 'latest_connection_attempt', b'latest_connection_attempt', 'provisioning_info', b'provisioning_info'] - def ClearField(self, field_name: typing.Literal['agent_version', b'agent_version', 'errors', b'errors', 'has_smart_machine_credentials', b'has_smart_machine_credentials', 'is_online', b'is_online', 'latest_connection_attempt', b'latest_connection_attempt', 'provisioning_info', b'provisioning_info']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetSmartMachineStatusResponse = GetSmartMachineStatusResponse +Global___GetSmartMachineStatusResponse: _TypeAlias = GetSmartMachineStatusResponse -@typing.final -class SetNetworkCredentialsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - SSID_FIELD_NUMBER: builtins.int - PSK_FIELD_NUMBER: builtins.int - type: builtins.str - ssid: builtins.str - psk: builtins.str +@_typing.final +class SetNetworkCredentialsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TYPE_FIELD_NUMBER: _builtins.int + SSID_FIELD_NUMBER: _builtins.int + PSK_FIELD_NUMBER: _builtins.int + type: _builtins.str + ssid: _builtins.str + psk: _builtins.str - def __init__(self, *, type: builtins.str=..., ssid: builtins.str=..., psk: builtins.str=...) -> None: + def __init__(self, *, type: _builtins.str=..., ssid: _builtins.str=..., psk: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['psk', b'psk', 'ssid', b'ssid', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['psk', b'psk', 'ssid', b'ssid', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetNetworkCredentialsRequest = SetNetworkCredentialsRequest +Global___SetNetworkCredentialsRequest: _TypeAlias = SetNetworkCredentialsRequest -@typing.final -class SetNetworkCredentialsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetNetworkCredentialsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetNetworkCredentialsResponse = SetNetworkCredentialsResponse +Global___SetNetworkCredentialsResponse: _TypeAlias = SetNetworkCredentialsResponse -@typing.final -class SetSmartMachineCredentialsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLOUD_FIELD_NUMBER: builtins.int +@_typing.final +class SetSmartMachineCredentialsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CLOUD_FIELD_NUMBER: _builtins.int - @property - def cloud(self) -> global___CloudConfig: + @_builtins.property + def cloud(self) -> Global___CloudConfig: ... - def __init__(self, *, cloud: global___CloudConfig | None=...) -> None: + def __init__(self, *, cloud: Global___CloudConfig | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['cloud', b'cloud'] - def HasField(self, field_name: typing.Literal['cloud', b'cloud']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['cloud', b'cloud'] - def ClearField(self, field_name: typing.Literal['cloud', b'cloud']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetSmartMachineCredentialsRequest = SetSmartMachineCredentialsRequest +Global___SetSmartMachineCredentialsRequest: _TypeAlias = SetSmartMachineCredentialsRequest -@typing.final -class SetSmartMachineCredentialsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetSmartMachineCredentialsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetSmartMachineCredentialsResponse = SetSmartMachineCredentialsResponse +Global___SetSmartMachineCredentialsResponse: _TypeAlias = SetSmartMachineCredentialsResponse -@typing.final -class GetNetworkListRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetNetworkListRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___GetNetworkListRequest = GetNetworkListRequest +Global___GetNetworkListRequest: _TypeAlias = GetNetworkListRequest -@typing.final -class GetNetworkListResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NETWORKS_FIELD_NUMBER: builtins.int +@_typing.final +class GetNetworkListResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NETWORKS_FIELD_NUMBER: _builtins.int - @property - def networks(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___NetworkInfo]: + @_builtins.property + def networks(self) -> _containers.RepeatedCompositeFieldContainer[Global___NetworkInfo]: ... - def __init__(self, *, networks: collections.abc.Iterable[global___NetworkInfo] | None=...) -> None: + def __init__(self, *, networks: _abc.Iterable[Global___NetworkInfo] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['networks', b'networks'] - def ClearField(self, field_name: typing.Literal['networks', b'networks']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetNetworkListResponse = GetNetworkListResponse +Global___GetNetworkListResponse: _TypeAlias = GetNetworkListResponse -@typing.final -class ProvisioningInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAGMENT_ID_FIELD_NUMBER: builtins.int - MODEL_FIELD_NUMBER: builtins.int - MANUFACTURER_FIELD_NUMBER: builtins.int - fragment_id: builtins.str - model: builtins.str - manufacturer: builtins.str +@_typing.final +class ProvisioningInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAGMENT_ID_FIELD_NUMBER: _builtins.int + MODEL_FIELD_NUMBER: _builtins.int + MANUFACTURER_FIELD_NUMBER: _builtins.int + fragment_id: _builtins.str + model: _builtins.str + manufacturer: _builtins.str - def __init__(self, *, fragment_id: builtins.str=..., model: builtins.str=..., manufacturer: builtins.str=...) -> None: + def __init__(self, *, fragment_id: _builtins.str=..., model: _builtins.str=..., manufacturer: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['fragment_id', b'fragment_id', 'manufacturer', b'manufacturer', 'model', b'model'] - def ClearField(self, field_name: typing.Literal['fragment_id', b'fragment_id', 'manufacturer', b'manufacturer', 'model', b'model']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ProvisioningInfo = ProvisioningInfo +Global___ProvisioningInfo: _TypeAlias = ProvisioningInfo -@typing.final -class NetworkInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - SSID_FIELD_NUMBER: builtins.int - SECURITY_FIELD_NUMBER: builtins.int - SIGNAL_FIELD_NUMBER: builtins.int - CONNECTED_FIELD_NUMBER: builtins.int - LAST_ERROR_FIELD_NUMBER: builtins.int - type: builtins.str - ssid: builtins.str - security: builtins.str - signal: builtins.int - connected: builtins.bool - last_error: builtins.str +@_typing.final +class NetworkInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TYPE_FIELD_NUMBER: _builtins.int + SSID_FIELD_NUMBER: _builtins.int + SECURITY_FIELD_NUMBER: _builtins.int + SIGNAL_FIELD_NUMBER: _builtins.int + CONNECTED_FIELD_NUMBER: _builtins.int + LAST_ERROR_FIELD_NUMBER: _builtins.int + type: _builtins.str + ssid: _builtins.str + security: _builtins.str + signal: _builtins.int + connected: _builtins.bool + last_error: _builtins.str - def __init__(self, *, type: builtins.str=..., ssid: builtins.str=..., security: builtins.str=..., signal: builtins.int=..., connected: builtins.bool=..., last_error: builtins.str=...) -> None: + def __init__(self, *, type: _builtins.str=..., ssid: _builtins.str=..., security: _builtins.str=..., signal: _builtins.int=..., connected: _builtins.bool=..., last_error: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['connected', b'connected', 'last_error', b'last_error', 'security', b'security', 'signal', b'signal', 'ssid', b'ssid', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['connected', b'connected', 'last_error', b'last_error', 'security', b'security', 'signal', b'signal', 'ssid', b'ssid', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___NetworkInfo = NetworkInfo +Global___NetworkInfo: _TypeAlias = NetworkInfo -@typing.final -class CloudConfig(google.protobuf.message.Message): +@_typing.final +class CloudConfig(_message.Message): """minimal CloudConfig to create /etc/viam.json""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - SECRET_FIELD_NUMBER: builtins.int - APP_ADDRESS_FIELD_NUMBER: builtins.int - API_KEY_FIELD_NUMBER: builtins.int - id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + SECRET_FIELD_NUMBER: _builtins.int + APP_ADDRESS_FIELD_NUMBER: _builtins.int + API_KEY_FIELD_NUMBER: _builtins.int + id: _builtins.str 'SmartMachine part id' - secret: builtins.str + secret: _builtins.str 'SmartMachine part secret' - app_address: builtins.str + app_address: _builtins.str - @property - def api_key(self) -> global___APIKey: + @_builtins.property + def api_key(self) -> Global___APIKey: ... - def __init__(self, *, id: builtins.str=..., secret: builtins.str=..., app_address: builtins.str=..., api_key: global___APIKey | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., secret: _builtins.str=..., app_address: _builtins.str=..., api_key: Global___APIKey | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['api_key', b'api_key'] - def HasField(self, field_name: typing.Literal['api_key', b'api_key']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['api_key', b'api_key', 'app_address', b'app_address', 'id', b'id', 'secret', b'secret'] - def ClearField(self, field_name: typing.Literal['api_key', b'api_key', 'app_address', b'app_address', 'id', b'id', 'secret', b'secret']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CloudConfig = CloudConfig +Global___CloudConfig: _TypeAlias = CloudConfig -@typing.final -class APIKey(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - KEY_FIELD_NUMBER: builtins.int - id: builtins.str - key: builtins.str +@_typing.final +class APIKey(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + KEY_FIELD_NUMBER: _builtins.int + id: _builtins.str + key: _builtins.str - def __init__(self, *, id: builtins.str=..., key: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., key: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'key', b'key'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'key', b'key']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___APIKey = APIKey \ No newline at end of file +Global___APIKey: _TypeAlias = APIKey \ No newline at end of file diff --git a/src/viam/gen/robot/v1/robot_pb2.py b/src/viam/gen/robot/v1/robot_pb2.py index 13a7b4b86e..00dd9dd03e 100644 --- a/src/viam/gen/robot/v1/robot_pb2.py +++ b/src/viam/gen/robot/v1/robot_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'robot/v1/robot.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'robot/v1/robot.proto') _sym_db = _symbol_database.Default() from ...common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/robot/v1/robot_pb2.pyi b/src/viam/gen/robot/v1/robot_pb2.pyi index 759dcfb052..568a2618f4 100644 --- a/src/viam/gen/robot/v1/robot_pb2.pyi +++ b/src/viam/gen/robot/v1/robot_pb2.pyi @@ -2,31 +2,35 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from ... import common -import google.protobuf.descriptor -import google.protobuf.duration_pb2 -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 -from ... import opentelemetry +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from opentelemetry.proto.trace.v1 import trace_pb2 as _trace_pb2 +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated +else: + from typing_extensions import deprecated as _deprecated +DESCRIPTOR: _descriptor.FileDescriptor class _PeerConnectionType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _PeerConnectionTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PeerConnectionType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _PeerConnectionTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_PeerConnectionType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor PEER_CONNECTION_TYPE_UNSPECIFIED: _PeerConnectionType.ValueType PEER_CONNECTION_TYPE_GRPC: _PeerConnectionType.ValueType PEER_CONNECTION_TYPE_WEBRTC: _PeerConnectionType.ValueType @@ -36,856 +40,924 @@ class PeerConnectionType(_PeerConnectionType, metaclass=_PeerConnectionTypeEnumT PEER_CONNECTION_TYPE_UNSPECIFIED: PeerConnectionType.ValueType PEER_CONNECTION_TYPE_GRPC: PeerConnectionType.ValueType PEER_CONNECTION_TYPE_WEBRTC: PeerConnectionType.ValueType -global___PeerConnectionType = PeerConnectionType +Global___PeerConnectionType: _TypeAlias = PeerConnectionType -@typing.final -class SendTracesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESOURCE_SPANS_FIELD_NUMBER: builtins.int +@_typing.final +class SendTracesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + RESOURCE_SPANS_FIELD_NUMBER: _builtins.int - @property - def resource_spans(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[opentelemetry.proto.trace.v1.trace_pb2.ResourceSpans]: + @_builtins.property + def resource_spans(self) -> _containers.RepeatedCompositeFieldContainer[_trace_pb2.ResourceSpans]: ... - def __init__(self, *, resource_spans: collections.abc.Iterable[opentelemetry.proto.trace.v1.trace_pb2.ResourceSpans] | None=...) -> None: + def __init__(self, *, resource_spans: _abc.Iterable[_trace_pb2.ResourceSpans] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['resource_spans', b'resource_spans'] - def ClearField(self, field_name: typing.Literal['resource_spans', b'resource_spans']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SendTracesRequest = SendTracesRequest +Global___SendTracesRequest: _TypeAlias = SendTracesRequest -@typing.final -class SendTracesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SendTracesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SendTracesResponse = SendTracesResponse +Global___SendTracesResponse: _TypeAlias = SendTracesResponse -@typing.final -class TunnelRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DESTINATION_PORT_FIELD_NUMBER: builtins.int - DATA_FIELD_NUMBER: builtins.int - destination_port: builtins.int - data: builtins.bytes +@_typing.final +class TunnelRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DESTINATION_PORT_FIELD_NUMBER: _builtins.int + DATA_FIELD_NUMBER: _builtins.int + destination_port: _builtins.int + data: _builtins.bytes - def __init__(self, *, destination_port: builtins.int=..., data: builtins.bytes=...) -> None: + def __init__(self, *, destination_port: _builtins.int=..., data: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data', 'destination_port', b'destination_port'] - def ClearField(self, field_name: typing.Literal['data', b'data', 'destination_port', b'destination_port']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TunnelRequest = TunnelRequest +Global___TunnelRequest: _TypeAlias = TunnelRequest -@typing.final -class TunnelResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int - data: builtins.bytes +@_typing.final +class TunnelResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int + data: _builtins.bytes - def __init__(self, *, data: builtins.bytes=...) -> None: + def __init__(self, *, data: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TunnelResponse = TunnelResponse +Global___TunnelResponse: _TypeAlias = TunnelResponse -@typing.final -class ListTunnelsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ListTunnelsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ListTunnelsRequest = ListTunnelsRequest +Global___ListTunnelsRequest: _TypeAlias = ListTunnelsRequest -@typing.final -class ListTunnelsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TUNNELS_FIELD_NUMBER: builtins.int +@_typing.final +class ListTunnelsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TUNNELS_FIELD_NUMBER: _builtins.int - @property - def tunnels(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Tunnel]: + @_builtins.property + def tunnels(self) -> _containers.RepeatedCompositeFieldContainer[Global___Tunnel]: ... - def __init__(self, *, tunnels: collections.abc.Iterable[global___Tunnel] | None=...) -> None: + def __init__(self, *, tunnels: _abc.Iterable[Global___Tunnel] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['tunnels', b'tunnels'] - def ClearField(self, field_name: typing.Literal['tunnels', b'tunnels']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListTunnelsResponse = ListTunnelsResponse +Global___ListTunnelsResponse: _TypeAlias = ListTunnelsResponse -@typing.final -class Tunnel(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PORT_FIELD_NUMBER: builtins.int - CONNECTION_TIMEOUT_FIELD_NUMBER: builtins.int - port: builtins.int +@_typing.final +class Tunnel(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PORT_FIELD_NUMBER: _builtins.int + CONNECTION_TIMEOUT_FIELD_NUMBER: _builtins.int + port: _builtins.int - @property - def connection_timeout(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def connection_timeout(self) -> _duration_pb2.Duration: ... - def __init__(self, *, port: builtins.int=..., connection_timeout: google.protobuf.duration_pb2.Duration | None=...) -> None: + def __init__(self, *, port: _builtins.int=..., connection_timeout: _duration_pb2.Duration | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['connection_timeout', b'connection_timeout'] - def HasField(self, field_name: typing.Literal['connection_timeout', b'connection_timeout']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['connection_timeout', b'connection_timeout', 'port', b'port'] - def ClearField(self, field_name: typing.Literal['connection_timeout', b'connection_timeout', 'port', b'port']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Tunnel = Tunnel +Global___Tunnel: _TypeAlias = Tunnel -@typing.final -class FrameSystemConfig(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAME_FIELD_NUMBER: builtins.int - KINEMATICS_FIELD_NUMBER: builtins.int +@_typing.final +class FrameSystemConfig(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAME_FIELD_NUMBER: _builtins.int + KINEMATICS_FIELD_NUMBER: _builtins.int - @property - def frame(self) -> common.v1.common_pb2.Transform: + @_builtins.property + def frame(self) -> _common_pb2.Transform: """this is an experimental API message""" - @property - def kinematics(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def kinematics(self) -> _struct_pb2.Struct: ... - def __init__(self, *, frame: common.v1.common_pb2.Transform | None=..., kinematics: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, frame: _common_pb2.Transform | None=..., kinematics: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['frame', b'frame', 'kinematics', b'kinematics'] - def HasField(self, field_name: typing.Literal['frame', b'frame', 'kinematics', b'kinematics']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['frame', b'frame', 'kinematics', b'kinematics'] - def ClearField(self, field_name: typing.Literal['frame', b'frame', 'kinematics', b'kinematics']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FrameSystemConfig = FrameSystemConfig +Global___FrameSystemConfig: _TypeAlias = FrameSystemConfig -@typing.final -class FrameSystemConfigRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SUPPLEMENTAL_TRANSFORMS_FIELD_NUMBER: builtins.int +@_typing.final +class FrameSystemConfigRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SUPPLEMENTAL_TRANSFORMS_FIELD_NUMBER: _builtins.int - @property - def supplemental_transforms(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.Transform]: + @_builtins.property + def supplemental_transforms(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.Transform]: """pose information on any additional reference frames that are needed to supplement the robot's frame system """ - def __init__(self, *, supplemental_transforms: collections.abc.Iterable[common.v1.common_pb2.Transform] | None=...) -> None: + def __init__(self, *, supplemental_transforms: _abc.Iterable[_common_pb2.Transform] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['supplemental_transforms', b'supplemental_transforms'] - def ClearField(self, field_name: typing.Literal['supplemental_transforms', b'supplemental_transforms']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FrameSystemConfigRequest = FrameSystemConfigRequest +Global___FrameSystemConfigRequest: _TypeAlias = FrameSystemConfigRequest -@typing.final -class FrameSystemConfigResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAME_SYSTEM_CONFIGS_FIELD_NUMBER: builtins.int +@_typing.final +class FrameSystemConfigResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAME_SYSTEM_CONFIGS_FIELD_NUMBER: _builtins.int - @property - def frame_system_configs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FrameSystemConfig]: + @_builtins.property + def frame_system_configs(self) -> _containers.RepeatedCompositeFieldContainer[Global___FrameSystemConfig]: ... - def __init__(self, *, frame_system_configs: collections.abc.Iterable[global___FrameSystemConfig] | None=...) -> None: + def __init__(self, *, frame_system_configs: _abc.Iterable[Global___FrameSystemConfig] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['frame_system_configs', b'frame_system_configs'] - def ClearField(self, field_name: typing.Literal['frame_system_configs', b'frame_system_configs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FrameSystemConfigResponse = FrameSystemConfigResponse +Global___FrameSystemConfigResponse: _TypeAlias = FrameSystemConfigResponse -@typing.final -class TransformPoseRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SOURCE_FIELD_NUMBER: builtins.int - DESTINATION_FIELD_NUMBER: builtins.int - SUPPLEMENTAL_TRANSFORMS_FIELD_NUMBER: builtins.int - destination: builtins.str +@_typing.final +class TransformPoseRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SOURCE_FIELD_NUMBER: _builtins.int + DESTINATION_FIELD_NUMBER: _builtins.int + SUPPLEMENTAL_TRANSFORMS_FIELD_NUMBER: _builtins.int + destination: _builtins.str 'the reference frame into which the source pose should be transformed,\n if unset this defaults to the "world" reference frame\n ' - @property - def source(self) -> common.v1.common_pb2.PoseInFrame: + @_builtins.property + def source(self) -> _common_pb2.PoseInFrame: """the original pose to transform along with the reference frame in which it was observed """ - @property - def supplemental_transforms(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.Transform]: + @_builtins.property + def supplemental_transforms(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.Transform]: """pose information on any additional reference frames that are needed to perform the transform """ - def __init__(self, *, source: common.v1.common_pb2.PoseInFrame | None=..., destination: builtins.str=..., supplemental_transforms: collections.abc.Iterable[common.v1.common_pb2.Transform] | None=...) -> None: + def __init__(self, *, source: _common_pb2.PoseInFrame | None=..., destination: _builtins.str=..., supplemental_transforms: _abc.Iterable[_common_pb2.Transform] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['source', b'source'] - def HasField(self, field_name: typing.Literal['source', b'source']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['destination', b'destination', 'source', b'source', 'supplemental_transforms', b'supplemental_transforms'] - def ClearField(self, field_name: typing.Literal['destination', b'destination', 'source', b'source', 'supplemental_transforms', b'supplemental_transforms']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TransformPoseRequest = TransformPoseRequest +Global___TransformPoseRequest: _TypeAlias = TransformPoseRequest -@typing.final -class TransformPoseResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSE_FIELD_NUMBER: builtins.int +@_typing.final +class TransformPoseResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSE_FIELD_NUMBER: _builtins.int - @property - def pose(self) -> common.v1.common_pb2.PoseInFrame: + @_builtins.property + def pose(self) -> _common_pb2.PoseInFrame: ... - def __init__(self, *, pose: common.v1.common_pb2.PoseInFrame | None=...) -> None: + def __init__(self, *, pose: _common_pb2.PoseInFrame | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def HasField(self, field_name: typing.Literal['pose', b'pose']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def ClearField(self, field_name: typing.Literal['pose', b'pose']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TransformPoseResponse = TransformPoseResponse +Global___TransformPoseResponse: _TypeAlias = TransformPoseResponse -@typing.final -class TransformPCDRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POINT_CLOUD_PCD_FIELD_NUMBER: builtins.int - SOURCE_FIELD_NUMBER: builtins.int - DESTINATION_FIELD_NUMBER: builtins.int - point_cloud_pcd: builtins.bytes +@_typing.final +class TransformPCDRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POINT_CLOUD_PCD_FIELD_NUMBER: _builtins.int + SOURCE_FIELD_NUMBER: _builtins.int + DESTINATION_FIELD_NUMBER: _builtins.int + point_cloud_pcd: _builtins.bytes 'the point clouds to transform. This should be in the PCD format,\n [encoded into bytes](https://pointclouds.org/documentation/tutorials/pcd_file_format.html).\n ' - source: builtins.str + source: _builtins.str 'the reference frame of the point cloud.' - destination: builtins.str + destination: _builtins.str 'the reference frame into which the source data should be transformed, if unset this defaults to the "world" reference frame.\n Do not move the robot between the generation of the initial pointcloud and the receipt\n of the transformed pointcloud because that will make the transformations inaccurate\n ' - def __init__(self, *, point_cloud_pcd: builtins.bytes=..., source: builtins.str=..., destination: builtins.str=...) -> None: + def __init__(self, *, point_cloud_pcd: _builtins.bytes=..., source: _builtins.str=..., destination: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['destination', b'destination', 'point_cloud_pcd', b'point_cloud_pcd', 'source', b'source'] - def ClearField(self, field_name: typing.Literal['destination', b'destination', 'point_cloud_pcd', b'point_cloud_pcd', 'source', b'source']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TransformPCDRequest = TransformPCDRequest +Global___TransformPCDRequest: _TypeAlias = TransformPCDRequest -@typing.final -class TransformPCDResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POINT_CLOUD_PCD_FIELD_NUMBER: builtins.int - point_cloud_pcd: builtins.bytes +@_typing.final +class TransformPCDResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POINT_CLOUD_PCD_FIELD_NUMBER: _builtins.int + point_cloud_pcd: _builtins.bytes - def __init__(self, *, point_cloud_pcd: builtins.bytes=...) -> None: + def __init__(self, *, point_cloud_pcd: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['point_cloud_pcd', b'point_cloud_pcd'] - def ClearField(self, field_name: typing.Literal['point_cloud_pcd', b'point_cloud_pcd']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TransformPCDResponse = TransformPCDResponse +Global___TransformPCDResponse: _TypeAlias = TransformPCDResponse -@typing.final -class ResourceNamesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ResourceNamesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ResourceNamesRequest = ResourceNamesRequest +Global___ResourceNamesRequest: _TypeAlias = ResourceNamesRequest -@typing.final -class ResourceNamesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESOURCES_FIELD_NUMBER: builtins.int +@_typing.final +class ResourceNamesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + RESOURCES_FIELD_NUMBER: _builtins.int - @property - def resources(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.ResourceName]: + @_builtins.property + def resources(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.ResourceName]: ... - def __init__(self, *, resources: collections.abc.Iterable[common.v1.common_pb2.ResourceName] | None=...) -> None: + def __init__(self, *, resources: _abc.Iterable[_common_pb2.ResourceName] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['resources', b'resources'] - def ClearField(self, field_name: typing.Literal['resources', b'resources']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResourceNamesResponse = ResourceNamesResponse +Global___ResourceNamesResponse: _TypeAlias = ResourceNamesResponse -@typing.final -class ResourceRPCSubtype(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SUBTYPE_FIELD_NUMBER: builtins.int - PROTO_SERVICE_FIELD_NUMBER: builtins.int - proto_service: builtins.str +@_typing.final +class ResourceRPCSubtype(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SUBTYPE_FIELD_NUMBER: _builtins.int + PROTO_SERVICE_FIELD_NUMBER: _builtins.int + proto_service: _builtins.str - @property - def subtype(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + def subtype(self) -> _common_pb2.ResourceName: ... - def __init__(self, *, subtype: common.v1.common_pb2.ResourceName | None=..., proto_service: builtins.str=...) -> None: + def __init__(self, *, subtype: _common_pb2.ResourceName | None=..., proto_service: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['subtype', b'subtype'] - def HasField(self, field_name: typing.Literal['subtype', b'subtype']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['proto_service', b'proto_service', 'subtype', b'subtype'] - def ClearField(self, field_name: typing.Literal['proto_service', b'proto_service', 'subtype', b'subtype']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResourceRPCSubtype = ResourceRPCSubtype +Global___ResourceRPCSubtype: _TypeAlias = ResourceRPCSubtype -@typing.final -class ResourceRPCSubtypesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ResourceRPCSubtypesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ResourceRPCSubtypesRequest = ResourceRPCSubtypesRequest +Global___ResourceRPCSubtypesRequest: _TypeAlias = ResourceRPCSubtypesRequest -@typing.final -class ResourceRPCSubtypesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESOURCE_RPC_SUBTYPES_FIELD_NUMBER: builtins.int +@_typing.final +class ResourceRPCSubtypesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + RESOURCE_RPC_SUBTYPES_FIELD_NUMBER: _builtins.int - @property - def resource_rpc_subtypes(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceRPCSubtype]: + @_builtins.property + def resource_rpc_subtypes(self) -> _containers.RepeatedCompositeFieldContainer[Global___ResourceRPCSubtype]: ... - def __init__(self, *, resource_rpc_subtypes: collections.abc.Iterable[global___ResourceRPCSubtype] | None=...) -> None: + def __init__(self, *, resource_rpc_subtypes: _abc.Iterable[Global___ResourceRPCSubtype] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['resource_rpc_subtypes', b'resource_rpc_subtypes'] - def ClearField(self, field_name: typing.Literal['resource_rpc_subtypes', b'resource_rpc_subtypes']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ResourceRPCSubtypesResponse = ResourceRPCSubtypesResponse +Global___ResourceRPCSubtypesResponse: _TypeAlias = ResourceRPCSubtypesResponse -@typing.final -class Operation(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - METHOD_FIELD_NUMBER: builtins.int - ARGUMENTS_FIELD_NUMBER: builtins.int - STARTED_FIELD_NUMBER: builtins.int - SESSION_ID_FIELD_NUMBER: builtins.int - id: builtins.str - method: builtins.str - session_id: builtins.str +@_typing.final +class Operation(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + METHOD_FIELD_NUMBER: _builtins.int + ARGUMENTS_FIELD_NUMBER: _builtins.int + STARTED_FIELD_NUMBER: _builtins.int + SESSION_ID_FIELD_NUMBER: _builtins.int + id: _builtins.str + method: _builtins.str + session_id: _builtins.str - @property - def arguments(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def arguments(self) -> _struct_pb2.Struct: ... - @property - def started(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def started(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, id: builtins.str=..., method: builtins.str=..., arguments: google.protobuf.struct_pb2.Struct | None=..., started: google.protobuf.timestamp_pb2.Timestamp | None=..., session_id: builtins.str | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., method: _builtins.str=..., arguments: _struct_pb2.Struct | None=..., started: _timestamp_pb2.Timestamp | None=..., session_id: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_session_id', b'_session_id', 'arguments', b'arguments', 'session_id', b'session_id', 'started', b'started'] - def HasField(self, field_name: typing.Literal['_session_id', b'_session_id', 'arguments', b'arguments', 'session_id', b'session_id', 'started', b'started']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_session_id', b'_session_id', 'arguments', b'arguments', 'id', b'id', 'method', b'method', 'session_id', b'session_id', 'started', b'started'] - def ClearField(self, field_name: typing.Literal['_session_id', b'_session_id', 'arguments', b'arguments', 'id', b'id', 'method', b'method', 'session_id', b'session_id', 'started', b'started']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__session_id: _TypeAlias = _typing.Literal['session_id'] + _WhichOneofArgType__session_id: _TypeAlias = _typing.Literal['_session_id', b'_session_id'] - def WhichOneof(self, oneof_group: typing.Literal['_session_id', b'_session_id']) -> typing.Literal['session_id'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__session_id) -> _WhichOneofReturnType__session_id | None: ... -global___Operation = Operation +Global___Operation: _TypeAlias = Operation -@typing.final -class GetOperationsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetOperationsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___GetOperationsRequest = GetOperationsRequest +Global___GetOperationsRequest: _TypeAlias = GetOperationsRequest -@typing.final -class GetOperationsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OPERATIONS_FIELD_NUMBER: builtins.int +@_typing.final +class GetOperationsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + OPERATIONS_FIELD_NUMBER: _builtins.int - @property - def operations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Operation]: + @_builtins.property + def operations(self) -> _containers.RepeatedCompositeFieldContainer[Global___Operation]: ... - def __init__(self, *, operations: collections.abc.Iterable[global___Operation] | None=...) -> None: + def __init__(self, *, operations: _abc.Iterable[Global___Operation] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['operations', b'operations'] - def ClearField(self, field_name: typing.Literal['operations', b'operations']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetOperationsResponse = GetOperationsResponse +Global___GetOperationsResponse: _TypeAlias = GetOperationsResponse -@typing.final -class CancelOperationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class CancelOperationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CancelOperationRequest = CancelOperationRequest +Global___CancelOperationRequest: _TypeAlias = CancelOperationRequest -@typing.final -class CancelOperationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class CancelOperationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___CancelOperationResponse = CancelOperationResponse +Global___CancelOperationResponse: _TypeAlias = CancelOperationResponse -@typing.final -class BlockForOperationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class BlockForOperationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___BlockForOperationRequest = BlockForOperationRequest +Global___BlockForOperationRequest: _TypeAlias = BlockForOperationRequest -@typing.final -class BlockForOperationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class BlockForOperationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___BlockForOperationResponse = BlockForOperationResponse +Global___BlockForOperationResponse: _TypeAlias = BlockForOperationResponse -@typing.final -class PeerConnectionInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int - REMOTE_ADDRESS_FIELD_NUMBER: builtins.int - LOCAL_ADDRESS_FIELD_NUMBER: builtins.int - type: global___PeerConnectionType.ValueType - remote_address: builtins.str - local_address: builtins.str +@_typing.final +class PeerConnectionInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TYPE_FIELD_NUMBER: _builtins.int + REMOTE_ADDRESS_FIELD_NUMBER: _builtins.int + LOCAL_ADDRESS_FIELD_NUMBER: _builtins.int + type: Global___PeerConnectionType.ValueType + remote_address: _builtins.str + local_address: _builtins.str - def __init__(self, *, type: global___PeerConnectionType.ValueType=..., remote_address: builtins.str | None=..., local_address: builtins.str | None=...) -> None: + def __init__(self, *, type: Global___PeerConnectionType.ValueType=..., remote_address: _builtins.str | None=..., local_address: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_local_address', b'_local_address', '_remote_address', b'_remote_address', 'local_address', b'local_address', 'remote_address', b'remote_address'] - def HasField(self, field_name: typing.Literal['_local_address', b'_local_address', '_remote_address', b'_remote_address', 'local_address', b'local_address', 'remote_address', b'remote_address']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_local_address', b'_local_address', '_remote_address', b'_remote_address', 'local_address', b'local_address', 'remote_address', b'remote_address', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['_local_address', b'_local_address', '_remote_address', b'_remote_address', 'local_address', b'local_address', 'remote_address', b'remote_address', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__local_address: _TypeAlias = _typing.Literal['local_address'] + _WhichOneofArgType__local_address: _TypeAlias = _typing.Literal['_local_address', b'_local_address'] + _WhichOneofReturnType__remote_address: _TypeAlias = _typing.Literal['remote_address'] + _WhichOneofArgType__remote_address: _TypeAlias = _typing.Literal['_remote_address', b'_remote_address'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_local_address', b'_local_address']) -> typing.Literal['local_address'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__local_address) -> _WhichOneofReturnType__local_address | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_remote_address', b'_remote_address']) -> typing.Literal['remote_address'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__remote_address) -> _WhichOneofReturnType__remote_address | None: ... -global___PeerConnectionInfo = PeerConnectionInfo +Global___PeerConnectionInfo: _TypeAlias = PeerConnectionInfo -@typing.final -class Session(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - PEER_CONNECTION_INFO_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class Session(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + PEER_CONNECTION_INFO_FIELD_NUMBER: _builtins.int + id: _builtins.str - @property - def peer_connection_info(self) -> global___PeerConnectionInfo: + @_builtins.property + def peer_connection_info(self) -> Global___PeerConnectionInfo: ... - def __init__(self, *, id: builtins.str=..., peer_connection_info: global___PeerConnectionInfo | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., peer_connection_info: Global___PeerConnectionInfo | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_peer_connection_info', b'_peer_connection_info', 'peer_connection_info', b'peer_connection_info'] - def HasField(self, field_name: typing.Literal['_peer_connection_info', b'_peer_connection_info', 'peer_connection_info', b'peer_connection_info']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_peer_connection_info', b'_peer_connection_info', 'id', b'id', 'peer_connection_info', b'peer_connection_info'] - def ClearField(self, field_name: typing.Literal['_peer_connection_info', b'_peer_connection_info', 'id', b'id', 'peer_connection_info', b'peer_connection_info']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__peer_connection_info: _TypeAlias = _typing.Literal['peer_connection_info'] + _WhichOneofArgType__peer_connection_info: _TypeAlias = _typing.Literal['_peer_connection_info', b'_peer_connection_info'] - def WhichOneof(self, oneof_group: typing.Literal['_peer_connection_info', b'_peer_connection_info']) -> typing.Literal['peer_connection_info'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__peer_connection_info) -> _WhichOneofReturnType__peer_connection_info | None: ... -global___Session = Session +Global___Session: _TypeAlias = Session -@typing.final -class GetSessionsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetSessionsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___GetSessionsRequest = GetSessionsRequest +Global___GetSessionsRequest: _TypeAlias = GetSessionsRequest -@typing.final -class GetSessionsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SESSIONS_FIELD_NUMBER: builtins.int +@_typing.final +class GetSessionsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SESSIONS_FIELD_NUMBER: _builtins.int - @property - def sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Session]: + @_builtins.property + def sessions(self) -> _containers.RepeatedCompositeFieldContainer[Global___Session]: ... - def __init__(self, *, sessions: collections.abc.Iterable[global___Session] | None=...) -> None: + def __init__(self, *, sessions: _abc.Iterable[Global___Session] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['sessions', b'sessions'] - def ClearField(self, field_name: typing.Literal['sessions', b'sessions']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetSessionsResponse = GetSessionsResponse +Global___GetSessionsResponse: _TypeAlias = GetSessionsResponse -@typing.final -class ModuleModel(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODULE_NAME_FIELD_NUMBER: builtins.int - MODEL_FIELD_NUMBER: builtins.int - API_FIELD_NUMBER: builtins.int - FROM_LOCAL_MODULE_FIELD_NUMBER: builtins.int - module_name: builtins.str - model: builtins.str - api: builtins.str - from_local_module: builtins.bool +@_typing.final +class ModuleModel(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODULE_NAME_FIELD_NUMBER: _builtins.int + MODEL_FIELD_NUMBER: _builtins.int + API_FIELD_NUMBER: _builtins.int + FROM_LOCAL_MODULE_FIELD_NUMBER: _builtins.int + module_name: _builtins.str + model: _builtins.str + api: _builtins.str + from_local_module: _builtins.bool - def __init__(self, *, module_name: builtins.str=..., model: builtins.str=..., api: builtins.str=..., from_local_module: builtins.bool=...) -> None: + def __init__(self, *, module_name: _builtins.str=..., model: _builtins.str=..., api: _builtins.str=..., from_local_module: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['api', b'api', 'from_local_module', b'from_local_module', 'model', b'model', 'module_name', b'module_name'] - def ClearField(self, field_name: typing.Literal['api', b'api', 'from_local_module', b'from_local_module', 'model', b'model', 'module_name', b'module_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ModuleModel = ModuleModel +Global___ModuleModel: _TypeAlias = ModuleModel -@typing.final -class GetModelsFromModulesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetModelsFromModulesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___GetModelsFromModulesRequest = GetModelsFromModulesRequest +Global___GetModelsFromModulesRequest: _TypeAlias = GetModelsFromModulesRequest -@typing.final -class GetModelsFromModulesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODELS_FIELD_NUMBER: builtins.int +@_typing.final +class GetModelsFromModulesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODELS_FIELD_NUMBER: _builtins.int - @property - def models(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ModuleModel]: + @_builtins.property + def models(self) -> _containers.RepeatedCompositeFieldContainer[Global___ModuleModel]: ... - def __init__(self, *, models: collections.abc.Iterable[global___ModuleModel] | None=...) -> None: + def __init__(self, *, models: _abc.Iterable[Global___ModuleModel] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['models', b'models'] - def ClearField(self, field_name: typing.Literal['models', b'models']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetModelsFromModulesResponse = GetModelsFromModulesResponse +Global___GetModelsFromModulesResponse: _TypeAlias = GetModelsFromModulesResponse -@typing.final -class Status(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - LAST_RECONFIGURED_FIELD_NUMBER: builtins.int +@_typing.final +class Status(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + LAST_RECONFIGURED_FIELD_NUMBER: _builtins.int - @property - def name(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + def name(self) -> _common_pb2.ResourceName: ... - @property - def status(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def status(self) -> _struct_pb2.Struct: ... - @property - def last_reconfigured(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_reconfigured(self) -> _timestamp_pb2.Timestamp: ... - def __init__(self, *, name: common.v1.common_pb2.ResourceName | None=..., status: google.protobuf.struct_pb2.Struct | None=..., last_reconfigured: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, name: _common_pb2.ResourceName | None=..., status: _struct_pb2.Struct | None=..., last_reconfigured: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['last_reconfigured', b'last_reconfigured', 'name', b'name', 'status', b'status'] - def HasField(self, field_name: typing.Literal['last_reconfigured', b'last_reconfigured', 'name', b'name', 'status', b'status']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['last_reconfigured', b'last_reconfigured', 'name', b'name', 'status', b'status'] - def ClearField(self, field_name: typing.Literal['last_reconfigured', b'last_reconfigured', 'name', b'name', 'status', b'status']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Status = Status +Global___Status: _TypeAlias = Status -@typing.final -class GetStatusRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESOURCE_NAMES_FIELD_NUMBER: builtins.int +@_typing.final +class GetStatusRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + RESOURCE_NAMES_FIELD_NUMBER: _builtins.int - @property - def resource_names(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.ResourceName]: + @_builtins.property + def resource_names(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.ResourceName]: ... - def __init__(self, *, resource_names: collections.abc.Iterable[common.v1.common_pb2.ResourceName] | None=...) -> None: + def __init__(self, *, resource_names: _abc.Iterable[_common_pb2.ResourceName] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['resource_names', b'resource_names'] - def ClearField(self, field_name: typing.Literal['resource_names', b'resource_names']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetStatusRequest = GetStatusRequest +Global___GetStatusRequest: _TypeAlias = GetStatusRequest -@typing.final -class GetStatusResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - STATUS_FIELD_NUMBER: builtins.int +@_typing.final +class GetStatusResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + STATUS_FIELD_NUMBER: _builtins.int - @property - def status(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Status]: + @_builtins.property + def status(self) -> _containers.RepeatedCompositeFieldContainer[Global___Status]: ... - def __init__(self, *, status: collections.abc.Iterable[global___Status] | None=...) -> None: + def __init__(self, *, status: _abc.Iterable[Global___Status] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['status', b'status'] - def ClearField(self, field_name: typing.Literal['status', b'status']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetStatusResponse = GetStatusResponse +Global___GetStatusResponse: _TypeAlias = GetStatusResponse -@typing.final -class StreamStatusRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESOURCE_NAMES_FIELD_NUMBER: builtins.int - EVERY_FIELD_NUMBER: builtins.int +@_typing.final +class StreamStatusRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + RESOURCE_NAMES_FIELD_NUMBER: _builtins.int + EVERY_FIELD_NUMBER: _builtins.int - @property - def resource_names(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.ResourceName]: + @_builtins.property + def resource_names(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.ResourceName]: ... - @property - def every(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def every(self) -> _duration_pb2.Duration: """how often to send a new status.""" - def __init__(self, *, resource_names: collections.abc.Iterable[common.v1.common_pb2.ResourceName] | None=..., every: google.protobuf.duration_pb2.Duration | None=...) -> None: + def __init__(self, *, resource_names: _abc.Iterable[_common_pb2.ResourceName] | None=..., every: _duration_pb2.Duration | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['every', b'every'] - def HasField(self, field_name: typing.Literal['every', b'every']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['every', b'every', 'resource_names', b'resource_names'] - def ClearField(self, field_name: typing.Literal['every', b'every', 'resource_names', b'resource_names']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StreamStatusRequest = StreamStatusRequest +Global___StreamStatusRequest: _TypeAlias = StreamStatusRequest -@typing.final -class StreamStatusResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - STATUS_FIELD_NUMBER: builtins.int +@_typing.final +class StreamStatusResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + STATUS_FIELD_NUMBER: _builtins.int - @property - def status(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Status]: + @_builtins.property + def status(self) -> _containers.RepeatedCompositeFieldContainer[Global___Status]: ... - def __init__(self, *, status: collections.abc.Iterable[global___Status] | None=...) -> None: + def __init__(self, *, status: _abc.Iterable[Global___Status] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['status', b'status'] - def ClearField(self, field_name: typing.Literal['status', b'status']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StreamStatusResponse = StreamStatusResponse +Global___StreamStatusResponse: _TypeAlias = StreamStatusResponse -@typing.final -class StopExtraParameters(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PARAMS_FIELD_NUMBER: builtins.int +@_typing.final +class StopExtraParameters(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + PARAMS_FIELD_NUMBER: _builtins.int - @property - def name(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + def name(self) -> _common_pb2.ResourceName: ... - @property - def params(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def params(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: common.v1.common_pb2.ResourceName | None=..., params: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _common_pb2.ResourceName | None=..., params: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'params', b'params'] - def HasField(self, field_name: typing.Literal['name', b'name', 'params', b'params']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'params', b'params'] - def ClearField(self, field_name: typing.Literal['name', b'name', 'params', b'params']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopExtraParameters = StopExtraParameters +Global___StopExtraParameters: _TypeAlias = StopExtraParameters -@typing.final -class StopAllRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXTRA_FIELD_NUMBER: builtins.int +@_typing.final +class StopAllRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + EXTRA_FIELD_NUMBER: _builtins.int - @property - def extra(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___StopExtraParameters]: + @_builtins.property + def extra(self) -> _containers.RepeatedCompositeFieldContainer[Global___StopExtraParameters]: ... - def __init__(self, *, extra: collections.abc.Iterable[global___StopExtraParameters] | None=...) -> None: + def __init__(self, *, extra: _abc.Iterable[Global___StopExtraParameters] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def ClearField(self, field_name: typing.Literal['extra', b'extra']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopAllRequest = StopAllRequest +Global___StopAllRequest: _TypeAlias = StopAllRequest -@typing.final -class StopAllResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StopAllResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___StopAllResponse = StopAllResponse +Global___StopAllResponse: _TypeAlias = StopAllResponse -@typing.final -class StartSessionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESUME_FIELD_NUMBER: builtins.int - resume: builtins.str +@_typing.final +class StartSessionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + RESUME_FIELD_NUMBER: _builtins.int + resume: _builtins.str 'resume can be used to attempt to continue a stream after a disconnection event. If\n a session is not found, a new one will be created and returned.\n ' - def __init__(self, *, resume: builtins.str=...) -> None: + def __init__(self, *, resume: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['resume', b'resume'] - def ClearField(self, field_name: typing.Literal['resume', b'resume']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StartSessionRequest = StartSessionRequest +Global___StartSessionRequest: _TypeAlias = StartSessionRequest -@typing.final -class StartSessionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - HEARTBEAT_WINDOW_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class StartSessionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + HEARTBEAT_WINDOW_FIELD_NUMBER: _builtins.int + id: _builtins.str - @property - def heartbeat_window(self) -> google.protobuf.duration_pb2.Duration: + @_builtins.property + def heartbeat_window(self) -> _duration_pb2.Duration: ... - def __init__(self, *, id: builtins.str=..., heartbeat_window: google.protobuf.duration_pb2.Duration | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., heartbeat_window: _duration_pb2.Duration | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['heartbeat_window', b'heartbeat_window'] - def HasField(self, field_name: typing.Literal['heartbeat_window', b'heartbeat_window']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['heartbeat_window', b'heartbeat_window', 'id', b'id'] - def ClearField(self, field_name: typing.Literal['heartbeat_window', b'heartbeat_window', 'id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StartSessionResponse = StartSessionResponse +Global___StartSessionResponse: _TypeAlias = StartSessionResponse -@typing.final -class SendSessionHeartbeatRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class SendSessionHeartbeatRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + id: _builtins.str - def __init__(self, *, id: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id'] - def ClearField(self, field_name: typing.Literal['id', b'id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SendSessionHeartbeatRequest = SendSessionHeartbeatRequest +Global___SendSessionHeartbeatRequest: _TypeAlias = SendSessionHeartbeatRequest -@typing.final -class SendSessionHeartbeatResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SendSessionHeartbeatResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SendSessionHeartbeatResponse = SendSessionHeartbeatResponse +Global___SendSessionHeartbeatResponse: _TypeAlias = SendSessionHeartbeatResponse -@typing.final -class LogRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOGS_FIELD_NUMBER: builtins.int +@_typing.final +class LogRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOGS_FIELD_NUMBER: _builtins.int - @property - def logs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.LogEntry]: + @_builtins.property + def logs(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.LogEntry]: ... - def __init__(self, *, logs: collections.abc.Iterable[common.v1.common_pb2.LogEntry] | None=...) -> None: + def __init__(self, *, logs: _abc.Iterable[_common_pb2.LogEntry] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['logs', b'logs'] - def ClearField(self, field_name: typing.Literal['logs', b'logs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___LogRequest = LogRequest +Global___LogRequest: _TypeAlias = LogRequest -@typing.final -class LogResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class LogResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___LogResponse = LogResponse +Global___LogResponse: _TypeAlias = LogResponse -@typing.final -class GetCloudMetadataRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetCloudMetadataRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___GetCloudMetadataRequest = GetCloudMetadataRequest - -@typing.final -class GetCloudMetadataResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROBOT_PART_ID_FIELD_NUMBER: builtins.int - PRIMARY_ORG_ID_FIELD_NUMBER: builtins.int - LOCATION_ID_FIELD_NUMBER: builtins.int - MACHINE_ID_FIELD_NUMBER: builtins.int - MACHINE_PART_ID_FIELD_NUMBER: builtins.int - robot_part_id: builtins.str - 'Deprecated: use machine_part_id field.' - primary_org_id: builtins.str - location_id: builtins.str - machine_id: builtins.str - machine_part_id: builtins.str - - def __init__(self, *, robot_part_id: builtins.str=..., primary_org_id: builtins.str=..., location_id: builtins.str=..., machine_id: builtins.str=..., machine_part_id: builtins.str=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['location_id', b'location_id', 'machine_id', b'machine_id', 'machine_part_id', b'machine_part_id', 'primary_org_id', b'primary_org_id', 'robot_part_id', b'robot_part_id']) -> None: - ... -global___GetCloudMetadataResponse = GetCloudMetadataResponse - -@typing.final -class RestartModuleRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODULE_ID_FIELD_NUMBER: builtins.int - MODULE_NAME_FIELD_NUMBER: builtins.int - module_id: builtins.str +Global___GetCloudMetadataRequest: _TypeAlias = GetCloudMetadataRequest + +@_typing.final +class GetCloudMetadataResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ROBOT_PART_ID_FIELD_NUMBER: _builtins.int + PRIMARY_ORG_ID_FIELD_NUMBER: _builtins.int + LOCATION_ID_FIELD_NUMBER: _builtins.int + MACHINE_ID_FIELD_NUMBER: _builtins.int + MACHINE_PART_ID_FIELD_NUMBER: _builtins.int + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def robot_part_id(self) -> _builtins.str: + """Deprecated: use machine_part_id field.""" + + @robot_part_id.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def robot_part_id(self, value: _builtins.str) -> None: + """Deprecated: use machine_part_id field.""" + primary_org_id: _builtins.str + location_id: _builtins.str + machine_id: _builtins.str + machine_part_id: _builtins.str + + def __init__(self, *, robot_part_id: _builtins.str=..., primary_org_id: _builtins.str=..., location_id: _builtins.str=..., machine_id: _builtins.str=..., machine_part_id: _builtins.str=...) -> None: + ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['location_id', b'location_id', 'machine_id', b'machine_id', 'machine_part_id', b'machine_part_id', 'primary_org_id', b'primary_org_id', 'robot_part_id', b'robot_part_id'] + + def ClearField(self, field_name: _ClearFieldArgType) -> None: + ... +Global___GetCloudMetadataResponse: _TypeAlias = GetCloudMetadataResponse + +@_typing.final +class RestartModuleRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODULE_ID_FIELD_NUMBER: _builtins.int + MODULE_NAME_FIELD_NUMBER: _builtins.int + module_id: _builtins.str 'ID is for registry modules, name for local modules' - module_name: builtins.str + module_name: _builtins.str - def __init__(self, *, module_id: builtins.str=..., module_name: builtins.str=...) -> None: + def __init__(self, *, module_id: _builtins.str=..., module_name: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['id_or_name', b'id_or_name', 'module_id', b'module_id', 'module_name', b'module_name'] - def HasField(self, field_name: typing.Literal['id_or_name', b'id_or_name', 'module_id', b'module_id', 'module_name', b'module_name']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id_or_name', b'id_or_name', 'module_id', b'module_id', 'module_name', b'module_name'] - def ClearField(self, field_name: typing.Literal['id_or_name', b'id_or_name', 'module_id', b'module_id', 'module_name', b'module_name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_id_or_name: _TypeAlias = _typing.Literal['module_id', 'module_name'] + _WhichOneofArgType_id_or_name: _TypeAlias = _typing.Literal['id_or_name', b'id_or_name'] - def WhichOneof(self, oneof_group: typing.Literal['id_or_name', b'id_or_name']) -> typing.Literal['module_id', 'module_name'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_id_or_name) -> _WhichOneofReturnType_id_or_name | None: ... -global___RestartModuleRequest = RestartModuleRequest +Global___RestartModuleRequest: _TypeAlias = RestartModuleRequest -@typing.final -class RestartModuleResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class RestartModuleResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___RestartModuleResponse = RestartModuleResponse +Global___RestartModuleResponse: _TypeAlias = RestartModuleResponse -@typing.final -class ShutdownRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ShutdownRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ShutdownRequest = ShutdownRequest +Global___ShutdownRequest: _TypeAlias = ShutdownRequest -@typing.final -class ShutdownResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ShutdownResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ShutdownResponse = ShutdownResponse +Global___ShutdownResponse: _TypeAlias = ShutdownResponse -@typing.final -class GetMachineStatusRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetMachineStatusRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___GetMachineStatusRequest = GetMachineStatusRequest +Global___GetMachineStatusRequest: _TypeAlias = GetMachineStatusRequest -@typing.final -class GetMachineStatusResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetMachineStatusResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor class _State: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType - class _StateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[GetMachineStatusResponse._State.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _StateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[GetMachineStatusResponse._State.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor STATE_UNSPECIFIED: GetMachineStatusResponse._State.ValueType STATE_INITIALIZING: GetMachineStatusResponse._State.ValueType 'the machine is reachable but still in the process of configuring initial\n modules and resources.\n ' @@ -899,67 +971,70 @@ class GetMachineStatusResponse(google.protobuf.message.Message): 'the machine is reachable but still in the process of configuring initial\n modules and resources.\n ' STATE_RUNNING: GetMachineStatusResponse.State.ValueType 'the machine has finished initializing.' - RESOURCES_FIELD_NUMBER: builtins.int - CONFIG_FIELD_NUMBER: builtins.int - STATE_FIELD_NUMBER: builtins.int - JOB_STATUSES_FIELD_NUMBER: builtins.int - state: global___GetMachineStatusResponse.State.ValueType + RESOURCES_FIELD_NUMBER: _builtins.int + CONFIG_FIELD_NUMBER: _builtins.int + STATE_FIELD_NUMBER: _builtins.int + JOB_STATUSES_FIELD_NUMBER: _builtins.int + state: Global___GetMachineStatusResponse.State.ValueType - @property - def resources(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ResourceStatus]: + @_builtins.property + def resources(self) -> _containers.RepeatedCompositeFieldContainer[Global___ResourceStatus]: ... - @property - def config(self) -> global___ConfigStatus: + @_builtins.property + def config(self) -> Global___ConfigStatus: ... - @property - def job_statuses(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___JobStatus]: + @_builtins.property + def job_statuses(self) -> _containers.RepeatedCompositeFieldContainer[Global___JobStatus]: ... - def __init__(self, *, resources: collections.abc.Iterable[global___ResourceStatus] | None=..., config: global___ConfigStatus | None=..., state: global___GetMachineStatusResponse.State.ValueType=..., job_statuses: collections.abc.Iterable[global___JobStatus] | None=...) -> None: + def __init__(self, *, resources: _abc.Iterable[Global___ResourceStatus] | None=..., config: Global___ConfigStatus | None=..., state: Global___GetMachineStatusResponse.State.ValueType=..., job_statuses: _abc.Iterable[Global___JobStatus] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['config', b'config'] - def HasField(self, field_name: typing.Literal['config', b'config']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['config', b'config', 'job_statuses', b'job_statuses', 'resources', b'resources', 'state', b'state'] - def ClearField(self, field_name: typing.Literal['config', b'config', 'job_statuses', b'job_statuses', 'resources', b'resources', 'state', b'state']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetMachineStatusResponse = GetMachineStatusResponse +Global___GetMachineStatusResponse: _TypeAlias = GetMachineStatusResponse -@typing.final -class JobStatus(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - JOB_NAME_FIELD_NUMBER: builtins.int - RECENT_SUCCESSFUL_RUNS_FIELD_NUMBER: builtins.int - RECENT_FAILED_RUNS_FIELD_NUMBER: builtins.int - job_name: builtins.str +@_typing.final +class JobStatus(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + JOB_NAME_FIELD_NUMBER: _builtins.int + RECENT_SUCCESSFUL_RUNS_FIELD_NUMBER: _builtins.int + RECENT_FAILED_RUNS_FIELD_NUMBER: _builtins.int + job_name: _builtins.str - @property - def recent_successful_runs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.timestamp_pb2.Timestamp]: + @_builtins.property + def recent_successful_runs(self) -> _containers.RepeatedCompositeFieldContainer[_timestamp_pb2.Timestamp]: ... - @property - def recent_failed_runs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.timestamp_pb2.Timestamp]: + @_builtins.property + def recent_failed_runs(self) -> _containers.RepeatedCompositeFieldContainer[_timestamp_pb2.Timestamp]: ... - def __init__(self, *, job_name: builtins.str=..., recent_successful_runs: collections.abc.Iterable[google.protobuf.timestamp_pb2.Timestamp] | None=..., recent_failed_runs: collections.abc.Iterable[google.protobuf.timestamp_pb2.Timestamp] | None=...) -> None: + def __init__(self, *, job_name: _builtins.str=..., recent_successful_runs: _abc.Iterable[_timestamp_pb2.Timestamp] | None=..., recent_failed_runs: _abc.Iterable[_timestamp_pb2.Timestamp] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['job_name', b'job_name', 'recent_failed_runs', b'recent_failed_runs', 'recent_successful_runs', b'recent_successful_runs'] - def ClearField(self, field_name: typing.Literal['job_name', b'job_name', 'recent_failed_runs', b'recent_failed_runs', 'recent_successful_runs', b'recent_successful_runs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___JobStatus = JobStatus +Global___JobStatus: _TypeAlias = JobStatus -@typing.final -class ResourceStatus(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class ResourceStatus(_message.Message): + DESCRIPTOR: _descriptor.Descriptor class _State: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType - class _StateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ResourceStatus._State.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + class _StateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[ResourceStatus._State.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor STATE_UNSPECIFIED: ResourceStatus._State.ValueType STATE_UNCONFIGURED: ResourceStatus._State.ValueType 'a newly created resource.' @@ -985,140 +1060,151 @@ class ResourceStatus(google.protobuf.message.Message): 'a resource that is being removed from the robot.' STATE_UNHEALTHY: ResourceStatus.State.ValueType 'a resource that is in an unhealthy state.' - NAME_FIELD_NUMBER: builtins.int - STATE_FIELD_NUMBER: builtins.int - LAST_UPDATED_FIELD_NUMBER: builtins.int - REVISION_FIELD_NUMBER: builtins.int - ERROR_FIELD_NUMBER: builtins.int - CLOUD_METADATA_FIELD_NUMBER: builtins.int - state: global___ResourceStatus.State.ValueType + NAME_FIELD_NUMBER: _builtins.int + STATE_FIELD_NUMBER: _builtins.int + LAST_UPDATED_FIELD_NUMBER: _builtins.int + REVISION_FIELD_NUMBER: _builtins.int + ERROR_FIELD_NUMBER: _builtins.int + CLOUD_METADATA_FIELD_NUMBER: _builtins.int + state: Global___ResourceStatus.State.ValueType 'current state.' - revision: builtins.str + revision: _builtins.str 'revision of the last config that successfully updated this resource.' - error: builtins.str + error: _builtins.str 'error details for a resource. This is guaranteed to be null if the\n resource is ready and non-null if the resource unhealthy.\n ' - @property - def name(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + def name(self) -> _common_pb2.ResourceName: """resource name.""" - @property - def last_updated(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_updated(self) -> _timestamp_pb2.Timestamp: """state transition timestamp.""" - @property - def cloud_metadata(self) -> global___GetCloudMetadataResponse: + @_builtins.property + def cloud_metadata(self) -> Global___GetCloudMetadataResponse: """infomation about resource orgID, locationID and partID""" - def __init__(self, *, name: common.v1.common_pb2.ResourceName | None=..., state: global___ResourceStatus.State.ValueType=..., last_updated: google.protobuf.timestamp_pb2.Timestamp | None=..., revision: builtins.str=..., error: builtins.str=..., cloud_metadata: global___GetCloudMetadataResponse | None=...) -> None: + def __init__(self, *, name: _common_pb2.ResourceName | None=..., state: Global___ResourceStatus.State.ValueType=..., last_updated: _timestamp_pb2.Timestamp | None=..., revision: _builtins.str=..., error: _builtins.str=..., cloud_metadata: Global___GetCloudMetadataResponse | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_cloud_metadata', b'_cloud_metadata', 'cloud_metadata', b'cloud_metadata', 'last_updated', b'last_updated', 'name', b'name'] - def HasField(self, field_name: typing.Literal['_cloud_metadata', b'_cloud_metadata', 'cloud_metadata', b'cloud_metadata', 'last_updated', b'last_updated', 'name', b'name']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_cloud_metadata', b'_cloud_metadata', 'cloud_metadata', b'cloud_metadata', 'error', b'error', 'last_updated', b'last_updated', 'name', b'name', 'revision', b'revision', 'state', b'state'] - def ClearField(self, field_name: typing.Literal['_cloud_metadata', b'_cloud_metadata', 'cloud_metadata', b'cloud_metadata', 'error', b'error', 'last_updated', b'last_updated', 'name', b'name', 'revision', b'revision', 'state', b'state']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__cloud_metadata: _TypeAlias = _typing.Literal['cloud_metadata'] + _WhichOneofArgType__cloud_metadata: _TypeAlias = _typing.Literal['_cloud_metadata', b'_cloud_metadata'] - def WhichOneof(self, oneof_group: typing.Literal['_cloud_metadata', b'_cloud_metadata']) -> typing.Literal['cloud_metadata'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__cloud_metadata) -> _WhichOneofReturnType__cloud_metadata | None: ... -global___ResourceStatus = ResourceStatus +Global___ResourceStatus: _TypeAlias = ResourceStatus -@typing.final -class ConfigStatus(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - REVISION_FIELD_NUMBER: builtins.int - LAST_UPDATED_FIELD_NUMBER: builtins.int - revision: builtins.str +@_typing.final +class ConfigStatus(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + REVISION_FIELD_NUMBER: _builtins.int + LAST_UPDATED_FIELD_NUMBER: _builtins.int + revision: _builtins.str 'revision of the last config that the machine successfully ingested.' - @property - def last_updated(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def last_updated(self) -> _timestamp_pb2.Timestamp: """config ingestion timestamp.""" - def __init__(self, *, revision: builtins.str=..., last_updated: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None: + def __init__(self, *, revision: _builtins.str=..., last_updated: _timestamp_pb2.Timestamp | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['last_updated', b'last_updated'] - def HasField(self, field_name: typing.Literal['last_updated', b'last_updated']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['last_updated', b'last_updated', 'revision', b'revision'] - def ClearField(self, field_name: typing.Literal['last_updated', b'last_updated', 'revision', b'revision']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ConfigStatus = ConfigStatus +Global___ConfigStatus: _TypeAlias = ConfigStatus -@typing.final -class GetVersionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class GetVersionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___GetVersionRequest = GetVersionRequest +Global___GetVersionRequest: _TypeAlias = GetVersionRequest -@typing.final -class GetVersionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PLATFORM_FIELD_NUMBER: builtins.int - VERSION_FIELD_NUMBER: builtins.int - API_VERSION_FIELD_NUMBER: builtins.int - platform: builtins.str +@_typing.final +class GetVersionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PLATFORM_FIELD_NUMBER: _builtins.int + VERSION_FIELD_NUMBER: _builtins.int + API_VERSION_FIELD_NUMBER: _builtins.int + platform: _builtins.str 'platform type of viam-server (ie. `rdk` or `micro-rdk`).' - version: builtins.str + version: _builtins.str 'version of viam-server. If built without a version, it will be dev-.' - api_version: builtins.str + api_version: _builtins.str - def __init__(self, *, platform: builtins.str=..., version: builtins.str=..., api_version: builtins.str=...) -> None: + def __init__(self, *, platform: _builtins.str=..., version: _builtins.str=..., api_version: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['api_version', b'api_version', 'platform', b'platform', 'version', b'version'] - def ClearField(self, field_name: typing.Literal['api_version', b'api_version', 'platform', b'platform', 'version', b'version']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetVersionResponse = GetVersionResponse +Global___GetVersionResponse: _TypeAlias = GetVersionResponse -@typing.final -class GetPoseRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMPONENT_NAME_FIELD_NUMBER: builtins.int - DESTINATION_FRAME_FIELD_NUMBER: builtins.int - SUPPLEMENTAL_TRANSFORMS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - component_name: builtins.str +@_typing.final +class GetPoseRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + DESTINATION_FRAME_FIELD_NUMBER: _builtins.int + SUPPLEMENTAL_TRANSFORMS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + component_name: _builtins.str 'the component whose pose is being requested' - destination_frame: builtins.str + destination_frame: _builtins.str 'the reference frame in which the component\'s pose\n should be provided, if unset this defaults\n to the "world" reference frame\n ' - @property - def supplemental_transforms(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.Transform]: + @_builtins.property + def supplemental_transforms(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.Transform]: """pose information on any additional reference frames that are needed to compute the component's pose """ - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, component_name: builtins.str=..., destination_frame: builtins.str=..., supplemental_transforms: collections.abc.Iterable[common.v1.common_pb2.Transform] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, component_name: _builtins.str=..., destination_frame: _builtins.str=..., supplemental_transforms: _abc.Iterable[_common_pb2.Transform] | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['component_name', b'component_name', 'destination_frame', b'destination_frame', 'extra', b'extra', 'supplemental_transforms', b'supplemental_transforms'] - def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'destination_frame', b'destination_frame', 'extra', b'extra', 'supplemental_transforms', b'supplemental_transforms']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPoseRequest = GetPoseRequest +Global___GetPoseRequest: _TypeAlias = GetPoseRequest -@typing.final -class GetPoseResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSE_FIELD_NUMBER: builtins.int +@_typing.final +class GetPoseResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSE_FIELD_NUMBER: _builtins.int - @property - def pose(self) -> common.v1.common_pb2.PoseInFrame: + @_builtins.property + def pose(self) -> _common_pb2.PoseInFrame: ... - def __init__(self, *, pose: common.v1.common_pb2.PoseInFrame | None=...) -> None: + def __init__(self, *, pose: _common_pb2.PoseInFrame | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def HasField(self, field_name: typing.Literal['pose', b'pose']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def ClearField(self, field_name: typing.Literal['pose', b'pose']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPoseResponse = GetPoseResponse \ No newline at end of file +Global___GetPoseResponse: _TypeAlias = GetPoseResponse \ No newline at end of file diff --git a/src/viam/gen/service/datamanager/v1/data_manager_pb2.py b/src/viam/gen/service/datamanager/v1/data_manager_pb2.py index c96eee16ac..55403e73e0 100644 --- a/src/viam/gen/service/datamanager/v1/data_manager_pb2.py +++ b/src/viam/gen/service/datamanager/v1/data_manager_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/datamanager/v1/data_manager.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/datamanager/v1/data_manager.proto') _sym_db = _symbol_database.Default() from ....app.datasync.v1 import data_sync_pb2 as app_dot_datasync_dot_v1_dot_data__sync__pb2 from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 diff --git a/src/viam/gen/service/datamanager/v1/data_manager_pb2.pyi b/src/viam/gen/service/datamanager/v1/data_manager_pb2.pyi index 88d24bd005..5094fc8399 100644 --- a/src/viam/gen/service/datamanager/v1/data_manager_pb2.pyi +++ b/src/viam/gen/service/datamanager/v1/data_manager_pb2.pyi @@ -2,84 +2,93 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -from .... import app -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class SyncRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: +from app.datasync.v1 import data_sync_pb2 as _data_sync_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class SyncRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SyncRequest = SyncRequest +Global___SyncRequest: _TypeAlias = SyncRequest -@typing.final -class SyncResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SyncResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SyncResponse = SyncResponse - -@typing.final -class UploadBinaryDataToDatasetsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - BINARY_DATA_FIELD_NUMBER: builtins.int - TAGS_FIELD_NUMBER: builtins.int - DATASET_IDS_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - binary_data: builtins.bytes - mime_type: app.datasync.v1.data_sync_pb2.MimeType.ValueType - - @property - def tags(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: +Global___SyncResponse: _TypeAlias = SyncResponse + +@_typing.final +class UploadBinaryDataToDatasetsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + BINARY_DATA_FIELD_NUMBER: _builtins.int + TAGS_FIELD_NUMBER: _builtins.int + DATASET_IDS_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + binary_data: _builtins.bytes + mime_type: _data_sync_pb2.MimeType.ValueType + + @_builtins.property + def tags(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def dataset_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def dataset_ids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., binary_data: builtins.bytes=..., tags: collections.abc.Iterable[builtins.str] | None=..., dataset_ids: collections.abc.Iterable[builtins.str] | None=..., mime_type: app.datasync.v1.data_sync_pb2.MimeType.ValueType=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., binary_data: _builtins.bytes=..., tags: _abc.Iterable[_builtins.str] | None=..., dataset_ids: _abc.Iterable[_builtins.str] | None=..., mime_type: _data_sync_pb2.MimeType.ValueType=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['binary_data', b'binary_data', 'dataset_ids', b'dataset_ids', 'extra', b'extra', 'mime_type', b'mime_type', 'name', b'name', 'tags', b'tags'] - def ClearField(self, field_name: typing.Literal['binary_data', b'binary_data', 'dataset_ids', b'dataset_ids', 'extra', b'extra', 'mime_type', b'mime_type', 'name', b'name', 'tags', b'tags']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___UploadBinaryDataToDatasetsRequest = UploadBinaryDataToDatasetsRequest +Global___UploadBinaryDataToDatasetsRequest: _TypeAlias = UploadBinaryDataToDatasetsRequest -@typing.final -class UploadBinaryDataToDatasetsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class UploadBinaryDataToDatasetsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___UploadBinaryDataToDatasetsResponse = UploadBinaryDataToDatasetsResponse \ No newline at end of file +Global___UploadBinaryDataToDatasetsResponse: _TypeAlias = UploadBinaryDataToDatasetsResponse \ No newline at end of file diff --git a/src/viam/gen/service/discovery/v1/discovery_pb2.py b/src/viam/gen/service/discovery/v1/discovery_pb2.py index f9ede98873..4307e32939 100644 --- a/src/viam/gen/service/discovery/v1/discovery_pb2.py +++ b/src/viam/gen/service/discovery/v1/discovery_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/discovery/v1/discovery.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/discovery/v1/discovery.proto') _sym_db = _symbol_database.Default() from ....app.v1 import robot_pb2 as app_dot_v1_dot_robot__pb2 from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 diff --git a/src/viam/gen/service/discovery/v1/discovery_pb2.pyi b/src/viam/gen/service/discovery/v1/discovery_pb2.pyi index fad274cafe..7ffec1d74d 100644 --- a/src/viam/gen/service/discovery/v1/discovery_pb2.pyi +++ b/src/viam/gen/service/discovery/v1/discovery_pb2.pyi @@ -2,50 +2,58 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -from .... import app -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class DiscoverResourcesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +from app.v1 import robot_pb2 as _robot_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class DiscoverResourcesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the discover service' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DiscoverResourcesRequest = DiscoverResourcesRequest +Global___DiscoverResourcesRequest: _TypeAlias = DiscoverResourcesRequest -@typing.final -class DiscoverResourcesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DISCOVERIES_FIELD_NUMBER: builtins.int +@_typing.final +class DiscoverResourcesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DISCOVERIES_FIELD_NUMBER: _builtins.int - @property - def discoveries(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[app.v1.robot_pb2.ComponentConfig]: + @_builtins.property + def discoveries(self) -> _containers.RepeatedCompositeFieldContainer[_robot_pb2.ComponentConfig]: """list of ComponentConfigs that describe the components found by a discover service.""" - def __init__(self, *, discoveries: collections.abc.Iterable[app.v1.robot_pb2.ComponentConfig] | None=...) -> None: + def __init__(self, *, discoveries: _abc.Iterable[_robot_pb2.ComponentConfig] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['discoveries', b'discoveries'] - def ClearField(self, field_name: typing.Literal['discoveries', b'discoveries']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___DiscoverResourcesResponse = DiscoverResourcesResponse \ No newline at end of file +Global___DiscoverResourcesResponse: _TypeAlias = DiscoverResourcesResponse \ No newline at end of file diff --git a/src/viam/gen/service/generic/v1/generic_pb2.py b/src/viam/gen/service/generic/v1/generic_pb2.py index 53d25c6e05..bb6fb30c73 100644 --- a/src/viam/gen/service/generic/v1/generic_pb2.py +++ b/src/viam/gen/service/generic/v1/generic_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/generic/v1/generic.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/generic/v1/generic.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/service/generic/v1/generic_pb2.pyi b/src/viam/gen/service/generic/v1/generic_pb2.pyi index ab07168813..554b3b57f8 100644 --- a/src/viam/gen/service/generic/v1/generic_pb2.pyi +++ b/src/viam/gen/service/generic/v1/generic_pb2.pyi @@ -2,5 +2,5 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import google.protobuf.descriptor -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor \ No newline at end of file +from google.protobuf import descriptor as _descriptor +DESCRIPTOR: _descriptor.FileDescriptor \ No newline at end of file diff --git a/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.py b/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.py index e01012ca28..85f5f44313 100644 --- a/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.py +++ b/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/mlmodel/v1/mlmodel.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/mlmodel/v1/mlmodel.proto') _sym_db = _symbol_database.Default() from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 diff --git a/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi b/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi index e3ee307aba..6f72d7f6bc 100644 --- a/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi +++ b/src/viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi @@ -2,27 +2,27 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _LabelType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _LabelTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_LabelType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _LabelTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_LabelType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor LABEL_TYPE_UNSPECIFIED: _LabelType.ValueType LABEL_TYPE_TENSOR_VALUE: _LabelType.ValueType 'the value of the arrays/tensor is the label index' @@ -36,445 +36,474 @@ LABEL_TYPE_TENSOR_VALUE: LabelType.ValueType 'the value of the arrays/tensor is the label index' LABEL_TYPE_TENSOR_AXIS: LabelType.ValueType 'the position of the tensor value in the axis is the label index' -global___LabelType = LabelType - -@typing.final -class InferRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - INPUT_TENSORS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___LabelType: _TypeAlias = LabelType + +@_typing.final +class InferRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + INPUT_TENSORS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the model service' - @property - def input_tensors(self) -> global___FlatTensors: + @_builtins.property + def input_tensors(self) -> Global___FlatTensors: """the input data is provided as set of named flat tensors""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., input_tensors: global___FlatTensors | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., input_tensors: Global___FlatTensors | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'input_tensors', b'input_tensors'] - def HasField(self, field_name: typing.Literal['extra', b'extra', 'input_tensors', b'input_tensors']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'input_tensors', b'input_tensors', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'input_tensors', b'input_tensors', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___InferRequest = InferRequest +Global___InferRequest: _TypeAlias = InferRequest -@typing.final -class InferResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OUTPUT_TENSORS_FIELD_NUMBER: builtins.int +@_typing.final +class InferResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + OUTPUT_TENSORS_FIELD_NUMBER: _builtins.int - @property - def output_tensors(self) -> global___FlatTensors: + @_builtins.property + def output_tensors(self) -> Global___FlatTensors: """the output data is provided as a set of named flat tensors""" - def __init__(self, *, output_tensors: global___FlatTensors | None=...) -> None: + def __init__(self, *, output_tensors: Global___FlatTensors | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['output_tensors', b'output_tensors'] - def HasField(self, field_name: typing.Literal['output_tensors', b'output_tensors']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['output_tensors', b'output_tensors'] - def ClearField(self, field_name: typing.Literal['output_tensors', b'output_tensors']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___InferResponse = InferResponse +Global___InferResponse: _TypeAlias = InferResponse -@typing.final -class MetadataRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class MetadataRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the model service' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MetadataRequest = MetadataRequest +Global___MetadataRequest: _TypeAlias = MetadataRequest -@typing.final -class MetadataResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_FIELD_NUMBER: builtins.int +@_typing.final +class MetadataResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + METADATA_FIELD_NUMBER: _builtins.int - @property - def metadata(self) -> global___Metadata: + @_builtins.property + def metadata(self) -> Global___Metadata: """this is the metadata associated with the ML model""" - def __init__(self, *, metadata: global___Metadata | None=...) -> None: + def __init__(self, *, metadata: Global___Metadata | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata'] - def HasField(self, field_name: typing.Literal['metadata', b'metadata']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['metadata', b'metadata'] - def ClearField(self, field_name: typing.Literal['metadata', b'metadata']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MetadataResponse = MetadataResponse +Global___MetadataResponse: _TypeAlias = MetadataResponse -@typing.final -class Metadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - INPUT_INFO_FIELD_NUMBER: builtins.int - OUTPUT_INFO_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class Metadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + INPUT_INFO_FIELD_NUMBER: _builtins.int + OUTPUT_INFO_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the model' - type: builtins.str + type: _builtins.str 'type of model e.g. object_detector, text_classifier' - description: builtins.str + description: _builtins.str 'description of the model' - @property - def input_info(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TensorInfo]: + @_builtins.property + def input_info(self) -> _containers.RepeatedCompositeFieldContainer[Global___TensorInfo]: """the necessary input arrays/tensors for an inference, order matters""" - @property - def output_info(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TensorInfo]: + @_builtins.property + def output_info(self) -> _containers.RepeatedCompositeFieldContainer[Global___TensorInfo]: """the output arrays/tensors of the model, order matters""" - def __init__(self, *, name: builtins.str=..., type: builtins.str=..., description: builtins.str=..., input_info: collections.abc.Iterable[global___TensorInfo] | None=..., output_info: collections.abc.Iterable[global___TensorInfo] | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., type: _builtins.str=..., description: _builtins.str=..., input_info: _abc.Iterable[Global___TensorInfo] | None=..., output_info: _abc.Iterable[Global___TensorInfo] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['description', b'description', 'input_info', b'input_info', 'name', b'name', 'output_info', b'output_info', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['description', b'description', 'input_info', b'input_info', 'name', b'name', 'output_info', b'output_info', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Metadata = Metadata +Global___Metadata: _TypeAlias = Metadata -@typing.final -class TensorInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - DATA_TYPE_FIELD_NUMBER: builtins.int - SHAPE_FIELD_NUMBER: builtins.int - ASSOCIATED_FILES_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class TensorInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + DATA_TYPE_FIELD_NUMBER: _builtins.int + SHAPE_FIELD_NUMBER: _builtins.int + ASSOCIATED_FILES_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the data in the array/tensor' - description: builtins.str + description: _builtins.str 'description of the data in the array/tensor' - data_type: builtins.str + data_type: _builtins.str 'data type of the array/tensor, e.g. float32, float64, uint8' - @property - def shape(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + @_builtins.property + def shape(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: """shape of the array/tensor (-1 for unknown)""" - @property - def associated_files(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___File]: + @_builtins.property + def associated_files(self) -> _containers.RepeatedCompositeFieldContainer[Global___File]: """files associated with the array/tensor, like for category labels""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """anything else you want to say""" - def __init__(self, *, name: builtins.str=..., description: builtins.str=..., data_type: builtins.str=..., shape: collections.abc.Iterable[builtins.int] | None=..., associated_files: collections.abc.Iterable[global___File] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., description: _builtins.str=..., data_type: _builtins.str=..., shape: _abc.Iterable[_builtins.int] | None=..., associated_files: _abc.Iterable[Global___File] | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['associated_files', b'associated_files', 'data_type', b'data_type', 'description', b'description', 'extra', b'extra', 'name', b'name', 'shape', b'shape'] - def ClearField(self, field_name: typing.Literal['associated_files', b'associated_files', 'data_type', b'data_type', 'description', b'description', 'extra', b'extra', 'name', b'name', 'shape', b'shape']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___TensorInfo = TensorInfo +Global___TensorInfo: _TypeAlias = TensorInfo -@typing.final -class File(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - DESCRIPTION_FIELD_NUMBER: builtins.int - LABEL_TYPE_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class File(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + DESCRIPTION_FIELD_NUMBER: _builtins.int + LABEL_TYPE_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the file, with file extension' - description: builtins.str + description: _builtins.str 'description of what the file contains' - label_type: global___LabelType.ValueType + label_type: Global___LabelType.ValueType 'How to associate the arrays/tensors to the labels in the file' - def __init__(self, *, name: builtins.str=..., description: builtins.str=..., label_type: global___LabelType.ValueType=...) -> None: + def __init__(self, *, name: _builtins.str=..., description: _builtins.str=..., label_type: Global___LabelType.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['description', b'description', 'label_type', b'label_type', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['description', b'description', 'label_type', b'label_type', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___File = File +Global___File: _TypeAlias = File -@typing.final -class FlatTensorDataInt8(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int - data: builtins.bytes +@_typing.final +class FlatTensorDataInt8(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int + data: _builtins.bytes - def __init__(self, *, data: builtins.bytes=...) -> None: + def __init__(self, *, data: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FlatTensorDataInt8 = FlatTensorDataInt8 +Global___FlatTensorDataInt8: _TypeAlias = FlatTensorDataInt8 -@typing.final -class FlatTensorDataUInt8(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int - data: builtins.bytes +@_typing.final +class FlatTensorDataUInt8(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int + data: _builtins.bytes - def __init__(self, *, data: builtins.bytes=...) -> None: + def __init__(self, *, data: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FlatTensorDataUInt8 = FlatTensorDataUInt8 +Global___FlatTensorDataUInt8: _TypeAlias = FlatTensorDataUInt8 -@typing.final -class FlatTensorDataInt16(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class FlatTensorDataInt16(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + @_builtins.property + def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: """packs two 16-bit numbers per entry - explicitly little-endian so big-endian producers/consumers must compensate """ - def __init__(self, *, data: collections.abc.Iterable[builtins.int] | None=...) -> None: + def __init__(self, *, data: _abc.Iterable[_builtins.int] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FlatTensorDataInt16 = FlatTensorDataInt16 +Global___FlatTensorDataInt16: _TypeAlias = FlatTensorDataInt16 -@typing.final -class FlatTensorDataUInt16(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class FlatTensorDataUInt16(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + @_builtins.property + def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: """packs two 16-bit numbers per entry - explicitly little-endian so big-endian producers/consumers must compensate """ - def __init__(self, *, data: collections.abc.Iterable[builtins.int] | None=...) -> None: + def __init__(self, *, data: _abc.Iterable[_builtins.int] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FlatTensorDataUInt16 = FlatTensorDataUInt16 +Global___FlatTensorDataUInt16: _TypeAlias = FlatTensorDataUInt16 -@typing.final -class FlatTensorDataInt32(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class FlatTensorDataInt32(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + @_builtins.property + def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... - def __init__(self, *, data: collections.abc.Iterable[builtins.int] | None=...) -> None: + def __init__(self, *, data: _abc.Iterable[_builtins.int] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FlatTensorDataInt32 = FlatTensorDataInt32 +Global___FlatTensorDataInt32: _TypeAlias = FlatTensorDataInt32 -@typing.final -class FlatTensorDataUInt32(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class FlatTensorDataUInt32(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + @_builtins.property + def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... - def __init__(self, *, data: collections.abc.Iterable[builtins.int] | None=...) -> None: + def __init__(self, *, data: _abc.Iterable[_builtins.int] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FlatTensorDataUInt32 = FlatTensorDataUInt32 +Global___FlatTensorDataUInt32: _TypeAlias = FlatTensorDataUInt32 -@typing.final -class FlatTensorDataInt64(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class FlatTensorDataInt64(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + @_builtins.property + def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... - def __init__(self, *, data: collections.abc.Iterable[builtins.int] | None=...) -> None: + def __init__(self, *, data: _abc.Iterable[_builtins.int] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FlatTensorDataInt64 = FlatTensorDataInt64 +Global___FlatTensorDataInt64: _TypeAlias = FlatTensorDataInt64 -@typing.final -class FlatTensorDataUInt64(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class FlatTensorDataUInt64(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + @_builtins.property + def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ... - def __init__(self, *, data: collections.abc.Iterable[builtins.int] | None=...) -> None: + def __init__(self, *, data: _abc.Iterable[_builtins.int] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FlatTensorDataUInt64 = FlatTensorDataUInt64 +Global___FlatTensorDataUInt64: _TypeAlias = FlatTensorDataUInt64 -@typing.final -class FlatTensorDataFloat(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class FlatTensorDataFloat(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... - def __init__(self, *, data: collections.abc.Iterable[builtins.float] | None=...) -> None: + def __init__(self, *, data: _abc.Iterable[_builtins.float] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FlatTensorDataFloat = FlatTensorDataFloat +Global___FlatTensorDataFloat: _TypeAlias = FlatTensorDataFloat -@typing.final -class FlatTensorDataDouble(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_FIELD_NUMBER: builtins.int +@_typing.final +class FlatTensorDataDouble(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_FIELD_NUMBER: _builtins.int - @property - def data(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: + @_builtins.property + def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ... - def __init__(self, *, data: collections.abc.Iterable[builtins.float] | None=...) -> None: + def __init__(self, *, data: _abc.Iterable[_builtins.float] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data', b'data'] - def ClearField(self, field_name: typing.Literal['data', b'data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FlatTensorDataDouble = FlatTensorDataDouble +Global___FlatTensorDataDouble: _TypeAlias = FlatTensorDataDouble -@typing.final -class FlatTensor(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SHAPE_FIELD_NUMBER: builtins.int - INT8_TENSOR_FIELD_NUMBER: builtins.int - UINT8_TENSOR_FIELD_NUMBER: builtins.int - INT16_TENSOR_FIELD_NUMBER: builtins.int - UINT16_TENSOR_FIELD_NUMBER: builtins.int - INT32_TENSOR_FIELD_NUMBER: builtins.int - UINT32_TENSOR_FIELD_NUMBER: builtins.int - INT64_TENSOR_FIELD_NUMBER: builtins.int - UINT64_TENSOR_FIELD_NUMBER: builtins.int - FLOAT_TENSOR_FIELD_NUMBER: builtins.int - DOUBLE_TENSOR_FIELD_NUMBER: builtins.int +@_typing.final +class FlatTensor(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SHAPE_FIELD_NUMBER: _builtins.int + INT8_TENSOR_FIELD_NUMBER: _builtins.int + UINT8_TENSOR_FIELD_NUMBER: _builtins.int + INT16_TENSOR_FIELD_NUMBER: _builtins.int + UINT16_TENSOR_FIELD_NUMBER: _builtins.int + INT32_TENSOR_FIELD_NUMBER: _builtins.int + UINT32_TENSOR_FIELD_NUMBER: _builtins.int + INT64_TENSOR_FIELD_NUMBER: _builtins.int + UINT64_TENSOR_FIELD_NUMBER: _builtins.int + FLOAT_TENSOR_FIELD_NUMBER: _builtins.int + DOUBLE_TENSOR_FIELD_NUMBER: _builtins.int - @property - def shape(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + @_builtins.property + def shape(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: """the shape of the provided tensor as a list of integer extents""" - @property - def int8_tensor(self) -> global___FlatTensorDataInt8: + @_builtins.property + def int8_tensor(self) -> Global___FlatTensorDataInt8: ... - @property - def uint8_tensor(self) -> global___FlatTensorDataUInt8: + @_builtins.property + def uint8_tensor(self) -> Global___FlatTensorDataUInt8: ... - @property - def int16_tensor(self) -> global___FlatTensorDataInt16: + @_builtins.property + def int16_tensor(self) -> Global___FlatTensorDataInt16: ... - @property - def uint16_tensor(self) -> global___FlatTensorDataUInt16: + @_builtins.property + def uint16_tensor(self) -> Global___FlatTensorDataUInt16: ... - @property - def int32_tensor(self) -> global___FlatTensorDataInt32: + @_builtins.property + def int32_tensor(self) -> Global___FlatTensorDataInt32: ... - @property - def uint32_tensor(self) -> global___FlatTensorDataUInt32: + @_builtins.property + def uint32_tensor(self) -> Global___FlatTensorDataUInt32: ... - @property - def int64_tensor(self) -> global___FlatTensorDataInt64: + @_builtins.property + def int64_tensor(self) -> Global___FlatTensorDataInt64: ... - @property - def uint64_tensor(self) -> global___FlatTensorDataUInt64: + @_builtins.property + def uint64_tensor(self) -> Global___FlatTensorDataUInt64: ... - @property - def float_tensor(self) -> global___FlatTensorDataFloat: + @_builtins.property + def float_tensor(self) -> Global___FlatTensorDataFloat: ... - @property - def double_tensor(self) -> global___FlatTensorDataDouble: + @_builtins.property + def double_tensor(self) -> Global___FlatTensorDataDouble: ... - def __init__(self, *, shape: collections.abc.Iterable[builtins.int] | None=..., int8_tensor: global___FlatTensorDataInt8 | None=..., uint8_tensor: global___FlatTensorDataUInt8 | None=..., int16_tensor: global___FlatTensorDataInt16 | None=..., uint16_tensor: global___FlatTensorDataUInt16 | None=..., int32_tensor: global___FlatTensorDataInt32 | None=..., uint32_tensor: global___FlatTensorDataUInt32 | None=..., int64_tensor: global___FlatTensorDataInt64 | None=..., uint64_tensor: global___FlatTensorDataUInt64 | None=..., float_tensor: global___FlatTensorDataFloat | None=..., double_tensor: global___FlatTensorDataDouble | None=...) -> None: + def __init__(self, *, shape: _abc.Iterable[_builtins.int] | None=..., int8_tensor: Global___FlatTensorDataInt8 | None=..., uint8_tensor: Global___FlatTensorDataUInt8 | None=..., int16_tensor: Global___FlatTensorDataInt16 | None=..., uint16_tensor: Global___FlatTensorDataUInt16 | None=..., int32_tensor: Global___FlatTensorDataInt32 | None=..., uint32_tensor: Global___FlatTensorDataUInt32 | None=..., int64_tensor: Global___FlatTensorDataInt64 | None=..., uint64_tensor: Global___FlatTensorDataUInt64 | None=..., float_tensor: Global___FlatTensorDataFloat | None=..., double_tensor: Global___FlatTensorDataDouble | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['double_tensor', b'double_tensor', 'float_tensor', b'float_tensor', 'int16_tensor', b'int16_tensor', 'int32_tensor', b'int32_tensor', 'int64_tensor', b'int64_tensor', 'int8_tensor', b'int8_tensor', 'tensor', b'tensor', 'uint16_tensor', b'uint16_tensor', 'uint32_tensor', b'uint32_tensor', 'uint64_tensor', b'uint64_tensor', 'uint8_tensor', b'uint8_tensor'] - def HasField(self, field_name: typing.Literal['double_tensor', b'double_tensor', 'float_tensor', b'float_tensor', 'int16_tensor', b'int16_tensor', 'int32_tensor', b'int32_tensor', 'int64_tensor', b'int64_tensor', 'int8_tensor', b'int8_tensor', 'tensor', b'tensor', 'uint16_tensor', b'uint16_tensor', 'uint32_tensor', b'uint32_tensor', 'uint64_tensor', b'uint64_tensor', 'uint8_tensor', b'uint8_tensor']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['double_tensor', b'double_tensor', 'float_tensor', b'float_tensor', 'int16_tensor', b'int16_tensor', 'int32_tensor', b'int32_tensor', 'int64_tensor', b'int64_tensor', 'int8_tensor', b'int8_tensor', 'shape', b'shape', 'tensor', b'tensor', 'uint16_tensor', b'uint16_tensor', 'uint32_tensor', b'uint32_tensor', 'uint64_tensor', b'uint64_tensor', 'uint8_tensor', b'uint8_tensor'] - def ClearField(self, field_name: typing.Literal['double_tensor', b'double_tensor', 'float_tensor', b'float_tensor', 'int16_tensor', b'int16_tensor', 'int32_tensor', b'int32_tensor', 'int64_tensor', b'int64_tensor', 'int8_tensor', b'int8_tensor', 'shape', b'shape', 'tensor', b'tensor', 'uint16_tensor', b'uint16_tensor', 'uint32_tensor', b'uint32_tensor', 'uint64_tensor', b'uint64_tensor', 'uint8_tensor', b'uint8_tensor']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_tensor: _TypeAlias = _typing.Literal['int8_tensor', 'uint8_tensor', 'int16_tensor', 'uint16_tensor', 'int32_tensor', 'uint32_tensor', 'int64_tensor', 'uint64_tensor', 'float_tensor', 'double_tensor'] + _WhichOneofArgType_tensor: _TypeAlias = _typing.Literal['tensor', b'tensor'] - def WhichOneof(self, oneof_group: typing.Literal['tensor', b'tensor']) -> typing.Literal['int8_tensor', 'uint8_tensor', 'int16_tensor', 'uint16_tensor', 'int32_tensor', 'uint32_tensor', 'int64_tensor', 'uint64_tensor', 'float_tensor', 'double_tensor'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_tensor) -> _WhichOneofReturnType_tensor | None: ... -global___FlatTensor = FlatTensor +Global___FlatTensor: _TypeAlias = FlatTensor -@typing.final -class FlatTensors(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class FlatTensors(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class TensorsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class TensorsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> global___FlatTensor: + @_builtins.property + def value(self) -> Global___FlatTensor: ... - def __init__(self, *, key: builtins.str=..., value: global___FlatTensor | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: Global___FlatTensor | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - TENSORS_FIELD_NUMBER: builtins.int + TENSORS_FIELD_NUMBER: _builtins.int - @property - def tensors(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___FlatTensor]: + @_builtins.property + def tensors(self) -> _containers.MessageMap[_builtins.str, Global___FlatTensor]: """A name-indexed collection of flat tensor objects""" - def __init__(self, *, tensors: collections.abc.Mapping[builtins.str, global___FlatTensor] | None=...) -> None: + def __init__(self, *, tensors: _abc.Mapping[_builtins.str, Global___FlatTensor] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['tensors', b'tensors'] - def ClearField(self, field_name: typing.Literal['tensors', b'tensors']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___FlatTensors = FlatTensors \ No newline at end of file +Global___FlatTensors: _TypeAlias = FlatTensors \ No newline at end of file diff --git a/src/viam/gen/service/motion/v1/motion_pb2.py b/src/viam/gen/service/motion/v1/motion_pb2.py index 7cabaaa459..3884bfc559 100644 --- a/src/viam/gen/service/motion/v1/motion_pb2.py +++ b/src/viam/gen/service/motion/v1/motion_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/motion/v1/motion.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/motion/v1/motion.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/service/motion/v1/motion_pb2.pyi b/src/viam/gen/service/motion/v1/motion_pb2.pyi index 62294516a4..d6cf452d9b 100644 --- a/src/viam/gen/service/motion/v1/motion_pb2.pyi +++ b/src/viam/gen/service/motion/v1/motion_pb2.pyi @@ -2,29 +2,33 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from .... import common -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated +else: + from typing_extensions import deprecated as _deprecated +DESCRIPTOR: _descriptor.FileDescriptor class _PlanState: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _PlanStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PlanState.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _PlanStateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_PlanState.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor PLAN_STATE_UNSPECIFIED: _PlanState.ValueType PLAN_STATE_IN_PROGRESS: _PlanState.ValueType PLAN_STATE_STOPPED: _PlanState.ValueType @@ -43,858 +47,954 @@ PLAN_STATE_IN_PROGRESS: PlanState.ValueType PLAN_STATE_STOPPED: PlanState.ValueType PLAN_STATE_SUCCEEDED: PlanState.ValueType PLAN_STATE_FAILED: PlanState.ValueType -global___PlanState = PlanState +Global___PlanState: _TypeAlias = PlanState -@typing.final -class MoveRequest(google.protobuf.message.Message): +@_typing.final +class MoveRequest(_message.Message): """Moves any component on the robot to a specified destination which can be from the reference frame of any other component on the robot.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - DESTINATION_FIELD_NUMBER: builtins.int - COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int - WORLD_STATE_FIELD_NUMBER: builtins.int - CONSTRAINTS_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + DESTINATION_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: _builtins.int + WORLD_STATE_FIELD_NUMBER: _builtins.int + CONSTRAINTS_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the motion service' - component_name: builtins.str + component_name: _builtins.str 'Component on the robot to move to the specified destination' - @property - def destination(self) -> common.v1.common_pb2.PoseInFrame: + @_builtins.property + def destination(self) -> _common_pb2.PoseInFrame: """Destination to move to, which can a pose in the reference frame of any frame in the robot's frame system""" - @property - def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def component_name_deprecated(self) -> _common_pb2.ResourceName: """Deprecated, use component_name field.""" - @property - def world_state(self) -> common.v1.common_pb2.WorldState: + @_builtins.property + def world_state(self) -> _common_pb2.WorldState: """Avoid obstacles by specifying their geometries in the world state Augment the frame system of the robot by specifying additional transforms to add to it for the duration of the Move """ - @property - def constraints(self) -> global___Constraints: + @_builtins.property + def constraints(self) -> Global___Constraints: """Constrain the way the robot will move""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.PoseInFrame | None=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., world_state: common.v1.common_pb2.WorldState | None=..., constraints: global___Constraints | None=..., component_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., destination: _common_pb2.PoseInFrame | None=..., component_name_deprecated: _common_pb2.ResourceName | None=..., world_state: _common_pb2.WorldState | None=..., constraints: Global___Constraints | None=..., component_name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_constraints', b'_constraints', '_world_state', b'_world_state', 'component_name_deprecated', b'component_name_deprecated', 'constraints', b'constraints', 'destination', b'destination', 'extra', b'extra', 'world_state', b'world_state'] - def HasField(self, field_name: typing.Literal['_constraints', b'_constraints', '_world_state', b'_world_state', 'component_name_deprecated', b'component_name_deprecated', 'constraints', b'constraints', 'destination', b'destination', 'extra', b'extra', 'world_state', b'world_state']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_constraints', b'_constraints', '_world_state', b'_world_state', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'constraints', b'constraints', 'destination', b'destination', 'extra', b'extra', 'name', b'name', 'world_state', b'world_state'] - def ClearField(self, field_name: typing.Literal['_constraints', b'_constraints', '_world_state', b'_world_state', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'constraints', b'constraints', 'destination', b'destination', 'extra', b'extra', 'name', b'name', 'world_state', b'world_state']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__constraints: _TypeAlias = _typing.Literal['constraints'] + _WhichOneofArgType__constraints: _TypeAlias = _typing.Literal['_constraints', b'_constraints'] + _WhichOneofReturnType__world_state: _TypeAlias = _typing.Literal['world_state'] + _WhichOneofArgType__world_state: _TypeAlias = _typing.Literal['_world_state', b'_world_state'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_constraints', b'_constraints']) -> typing.Literal['constraints'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__constraints) -> _WhichOneofReturnType__constraints | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_world_state', b'_world_state']) -> typing.Literal['world_state'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__world_state) -> _WhichOneofReturnType__world_state | None: ... -global___MoveRequest = MoveRequest +Global___MoveRequest: _TypeAlias = MoveRequest -@typing.final -class MoveResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SUCCESS_FIELD_NUMBER: builtins.int - success: builtins.bool +@_typing.final +class MoveResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SUCCESS_FIELD_NUMBER: _builtins.int + success: _builtins.bool - def __init__(self, *, success: builtins.bool=...) -> None: + def __init__(self, *, success: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['success', b'success'] - def ClearField(self, field_name: typing.Literal['success', b'success']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MoveResponse = MoveResponse +Global___MoveResponse: _TypeAlias = MoveResponse -@typing.final -class MoveOnMapRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - DESTINATION_FIELD_NUMBER: builtins.int - COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int - SLAM_SERVICE_NAME_DEPRECATED_FIELD_NUMBER: builtins.int - MOTION_CONFIGURATION_FIELD_NUMBER: builtins.int - OBSTACLES_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - SLAM_SERVICE_NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class MoveOnMapRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + DESTINATION_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: _builtins.int + SLAM_SERVICE_NAME_DEPRECATED_FIELD_NUMBER: _builtins.int + MOTION_CONFIGURATION_FIELD_NUMBER: _builtins.int + OBSTACLES_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + SLAM_SERVICE_NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the motion service' - component_name: builtins.str + component_name: _builtins.str 'Component on the robot to move to the specified destination' - slam_service_name: builtins.str + slam_service_name: _builtins.str 'Name of the slam service from which the SLAM map is requested' - @property - def destination(self) -> common.v1.common_pb2.Pose: + @_builtins.property + def destination(self) -> _common_pb2.Pose: """Specify a destination to, which can be any pose with respect to the SLAM map's origin""" - @property - def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def component_name_deprecated(self) -> _common_pb2.ResourceName: """Deprecated, use component_name field.""" - @property - def slam_service_name_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def slam_service_name_deprecated(self) -> _common_pb2.ResourceName: """Deprecated, use slam_service_name field.""" - @property - def motion_configuration(self) -> global___MotionConfiguration: + @_builtins.property + def motion_configuration(self) -> Global___MotionConfiguration: """Optional set of motion configuration options""" - @property - def obstacles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.Geometry]: + @_builtins.property + def obstacles(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.Geometry]: """Obstacles to be considered for motion planning""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.Pose | None=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., slam_service_name_deprecated: common.v1.common_pb2.ResourceName | None=..., motion_configuration: global___MotionConfiguration | None=..., obstacles: collections.abc.Iterable[common.v1.common_pb2.Geometry] | None=..., component_name: builtins.str=..., slam_service_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., destination: _common_pb2.Pose | None=..., component_name_deprecated: _common_pb2.ResourceName | None=..., slam_service_name_deprecated: _common_pb2.ResourceName | None=..., motion_configuration: Global___MotionConfiguration | None=..., obstacles: _abc.Iterable[_common_pb2.Geometry] | None=..., component_name: _builtins.str=..., slam_service_name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_motion_configuration', b'_motion_configuration', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'motion_configuration', b'motion_configuration', 'slam_service_name_deprecated', b'slam_service_name_deprecated'] - def HasField(self, field_name: typing.Literal['_motion_configuration', b'_motion_configuration', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'motion_configuration', b'motion_configuration', 'slam_service_name_deprecated', b'slam_service_name_deprecated']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_motion_configuration', b'_motion_configuration', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'motion_configuration', b'motion_configuration', 'name', b'name', 'obstacles', b'obstacles', 'slam_service_name', b'slam_service_name', 'slam_service_name_deprecated', b'slam_service_name_deprecated'] - def ClearField(self, field_name: typing.Literal['_motion_configuration', b'_motion_configuration', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'motion_configuration', b'motion_configuration', 'name', b'name', 'obstacles', b'obstacles', 'slam_service_name', b'slam_service_name', 'slam_service_name_deprecated', b'slam_service_name_deprecated']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__motion_configuration: _TypeAlias = _typing.Literal['motion_configuration'] + _WhichOneofArgType__motion_configuration: _TypeAlias = _typing.Literal['_motion_configuration', b'_motion_configuration'] - def WhichOneof(self, oneof_group: typing.Literal['_motion_configuration', b'_motion_configuration']) -> typing.Literal['motion_configuration'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__motion_configuration) -> _WhichOneofReturnType__motion_configuration | None: ... -global___MoveOnMapRequest = MoveOnMapRequest +Global___MoveOnMapRequest: _TypeAlias = MoveOnMapRequest -@typing.final -class MoveOnMapResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXECUTION_ID_FIELD_NUMBER: builtins.int - execution_id: builtins.str +@_typing.final +class MoveOnMapResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + EXECUTION_ID_FIELD_NUMBER: _builtins.int + execution_id: _builtins.str 'The unique ID which identifies the execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning.\n ' - def __init__(self, *, execution_id: builtins.str=...) -> None: + def __init__(self, *, execution_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['execution_id', b'execution_id'] - def ClearField(self, field_name: typing.Literal['execution_id', b'execution_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MoveOnMapResponse = MoveOnMapResponse +Global___MoveOnMapResponse: _TypeAlias = MoveOnMapResponse -@typing.final -class ObstacleDetector(google.protobuf.message.Message): +@_typing.final +class ObstacleDetector(_message.Message): """Pairs a vision service with a camera, informing the service about which camera it may use""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VISION_SERVICE_DEPRECATED_FIELD_NUMBER: builtins.int - CAMERA_DEPRECATED_FIELD_NUMBER: builtins.int - VISION_SERVICE_FIELD_NUMBER: builtins.int - CAMERA_FIELD_NUMBER: builtins.int - vision_service: builtins.str - camera: builtins.str + DESCRIPTOR: _descriptor.Descriptor + VISION_SERVICE_DEPRECATED_FIELD_NUMBER: _builtins.int + CAMERA_DEPRECATED_FIELD_NUMBER: _builtins.int + VISION_SERVICE_FIELD_NUMBER: _builtins.int + CAMERA_FIELD_NUMBER: _builtins.int + vision_service: _builtins.str + camera: _builtins.str - @property - def vision_service_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def vision_service_deprecated(self) -> _common_pb2.ResourceName: ... - @property - def camera_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def camera_deprecated(self) -> _common_pb2.ResourceName: ... - def __init__(self, *, vision_service_deprecated: common.v1.common_pb2.ResourceName | None=..., camera_deprecated: common.v1.common_pb2.ResourceName | None=..., vision_service: builtins.str=..., camera: builtins.str=...) -> None: + def __init__(self, *, vision_service_deprecated: _common_pb2.ResourceName | None=..., camera_deprecated: _common_pb2.ResourceName | None=..., vision_service: _builtins.str=..., camera: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['camera_deprecated', b'camera_deprecated', 'vision_service_deprecated', b'vision_service_deprecated'] - def HasField(self, field_name: typing.Literal['camera_deprecated', b'camera_deprecated', 'vision_service_deprecated', b'vision_service_deprecated']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['camera', b'camera', 'camera_deprecated', b'camera_deprecated', 'vision_service', b'vision_service', 'vision_service_deprecated', b'vision_service_deprecated'] - def ClearField(self, field_name: typing.Literal['camera', b'camera', 'camera_deprecated', b'camera_deprecated', 'vision_service', b'vision_service', 'vision_service_deprecated', b'vision_service_deprecated']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ObstacleDetector = ObstacleDetector +Global___ObstacleDetector: _TypeAlias = ObstacleDetector -@typing.final -class MotionConfiguration(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OBSTACLE_DETECTORS_FIELD_NUMBER: builtins.int - POSITION_POLLING_FREQUENCY_HZ_FIELD_NUMBER: builtins.int - OBSTACLE_POLLING_FREQUENCY_HZ_FIELD_NUMBER: builtins.int - PLAN_DEVIATION_M_FIELD_NUMBER: builtins.int - LINEAR_M_PER_SEC_FIELD_NUMBER: builtins.int - ANGULAR_DEGS_PER_SEC_FIELD_NUMBER: builtins.int - position_polling_frequency_hz: builtins.float +@_typing.final +class MotionConfiguration(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + OBSTACLE_DETECTORS_FIELD_NUMBER: _builtins.int + POSITION_POLLING_FREQUENCY_HZ_FIELD_NUMBER: _builtins.int + OBSTACLE_POLLING_FREQUENCY_HZ_FIELD_NUMBER: _builtins.int + PLAN_DEVIATION_M_FIELD_NUMBER: _builtins.int + LINEAR_M_PER_SEC_FIELD_NUMBER: _builtins.int + ANGULAR_DEGS_PER_SEC_FIELD_NUMBER: _builtins.int + position_polling_frequency_hz: _builtins.float 'Sets the frequency to poll for the position of the robot' - obstacle_polling_frequency_hz: builtins.float + obstacle_polling_frequency_hz: _builtins.float 'Sets the frequency to poll the vision service(s) for new obstacles' - plan_deviation_m: builtins.float + plan_deviation_m: _builtins.float 'Sets the distance in meters that a robot is allowed to deviate from the motion plan' - linear_m_per_sec: builtins.float + linear_m_per_sec: _builtins.float 'Optional linear velocity to target when moving' - angular_degs_per_sec: builtins.float + angular_degs_per_sec: _builtins.float 'Optional angular velocity to target when turning' - @property - def obstacle_detectors(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ObstacleDetector]: + @_builtins.property + def obstacle_detectors(self) -> _containers.RepeatedCompositeFieldContainer[Global___ObstacleDetector]: """The ObstacleDetectors that will be used for transient obstacle avoidance""" - def __init__(self, *, obstacle_detectors: collections.abc.Iterable[global___ObstacleDetector] | None=..., position_polling_frequency_hz: builtins.float | None=..., obstacle_polling_frequency_hz: builtins.float | None=..., plan_deviation_m: builtins.float | None=..., linear_m_per_sec: builtins.float | None=..., angular_degs_per_sec: builtins.float | None=...) -> None: + def __init__(self, *, obstacle_detectors: _abc.Iterable[Global___ObstacleDetector] | None=..., position_polling_frequency_hz: _builtins.float | None=..., obstacle_polling_frequency_hz: _builtins.float | None=..., plan_deviation_m: _builtins.float | None=..., linear_m_per_sec: _builtins.float | None=..., angular_degs_per_sec: _builtins.float | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec', '_linear_m_per_sec', b'_linear_m_per_sec', '_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz', '_plan_deviation_m', b'_plan_deviation_m', '_position_polling_frequency_hz', b'_position_polling_frequency_hz', 'angular_degs_per_sec', b'angular_degs_per_sec', 'linear_m_per_sec', b'linear_m_per_sec', 'obstacle_polling_frequency_hz', b'obstacle_polling_frequency_hz', 'plan_deviation_m', b'plan_deviation_m', 'position_polling_frequency_hz', b'position_polling_frequency_hz'] - def HasField(self, field_name: typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec', '_linear_m_per_sec', b'_linear_m_per_sec', '_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz', '_plan_deviation_m', b'_plan_deviation_m', '_position_polling_frequency_hz', b'_position_polling_frequency_hz', 'angular_degs_per_sec', b'angular_degs_per_sec', 'linear_m_per_sec', b'linear_m_per_sec', 'obstacle_polling_frequency_hz', b'obstacle_polling_frequency_hz', 'plan_deviation_m', b'plan_deviation_m', 'position_polling_frequency_hz', b'position_polling_frequency_hz']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec', '_linear_m_per_sec', b'_linear_m_per_sec', '_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz', '_plan_deviation_m', b'_plan_deviation_m', '_position_polling_frequency_hz', b'_position_polling_frequency_hz', 'angular_degs_per_sec', b'angular_degs_per_sec', 'linear_m_per_sec', b'linear_m_per_sec', 'obstacle_detectors', b'obstacle_detectors', 'obstacle_polling_frequency_hz', b'obstacle_polling_frequency_hz', 'plan_deviation_m', b'plan_deviation_m', 'position_polling_frequency_hz', b'position_polling_frequency_hz'] - def ClearField(self, field_name: typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec', '_linear_m_per_sec', b'_linear_m_per_sec', '_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz', '_plan_deviation_m', b'_plan_deviation_m', '_position_polling_frequency_hz', b'_position_polling_frequency_hz', 'angular_degs_per_sec', b'angular_degs_per_sec', 'linear_m_per_sec', b'linear_m_per_sec', 'obstacle_detectors', b'obstacle_detectors', 'obstacle_polling_frequency_hz', b'obstacle_polling_frequency_hz', 'plan_deviation_m', b'plan_deviation_m', 'position_polling_frequency_hz', b'position_polling_frequency_hz']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__angular_degs_per_sec: _TypeAlias = _typing.Literal['angular_degs_per_sec'] + _WhichOneofArgType__angular_degs_per_sec: _TypeAlias = _typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec'] + _WhichOneofReturnType__linear_m_per_sec: _TypeAlias = _typing.Literal['linear_m_per_sec'] + _WhichOneofArgType__linear_m_per_sec: _TypeAlias = _typing.Literal['_linear_m_per_sec', b'_linear_m_per_sec'] + _WhichOneofReturnType__obstacle_polling_frequency_hz: _TypeAlias = _typing.Literal['obstacle_polling_frequency_hz'] + _WhichOneofArgType__obstacle_polling_frequency_hz: _TypeAlias = _typing.Literal['_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz'] + _WhichOneofReturnType__plan_deviation_m: _TypeAlias = _typing.Literal['plan_deviation_m'] + _WhichOneofArgType__plan_deviation_m: _TypeAlias = _typing.Literal['_plan_deviation_m', b'_plan_deviation_m'] + _WhichOneofReturnType__position_polling_frequency_hz: _TypeAlias = _typing.Literal['position_polling_frequency_hz'] + _WhichOneofArgType__position_polling_frequency_hz: _TypeAlias = _typing.Literal['_position_polling_frequency_hz', b'_position_polling_frequency_hz'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_angular_degs_per_sec', b'_angular_degs_per_sec']) -> typing.Literal['angular_degs_per_sec'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__angular_degs_per_sec) -> _WhichOneofReturnType__angular_degs_per_sec | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_linear_m_per_sec', b'_linear_m_per_sec']) -> typing.Literal['linear_m_per_sec'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__linear_m_per_sec) -> _WhichOneofReturnType__linear_m_per_sec | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_obstacle_polling_frequency_hz', b'_obstacle_polling_frequency_hz']) -> typing.Literal['obstacle_polling_frequency_hz'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__obstacle_polling_frequency_hz) -> _WhichOneofReturnType__obstacle_polling_frequency_hz | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_plan_deviation_m', b'_plan_deviation_m']) -> typing.Literal['plan_deviation_m'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__plan_deviation_m) -> _WhichOneofReturnType__plan_deviation_m | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_position_polling_frequency_hz', b'_position_polling_frequency_hz']) -> typing.Literal['position_polling_frequency_hz'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__position_polling_frequency_hz) -> _WhichOneofReturnType__position_polling_frequency_hz | None: ... -global___MotionConfiguration = MotionConfiguration +Global___MotionConfiguration: _TypeAlias = MotionConfiguration -@typing.final -class MoveOnGlobeRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - DESTINATION_FIELD_NUMBER: builtins.int - HEADING_FIELD_NUMBER: builtins.int - COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int - MOVEMENT_SENSOR_NAME_DEPRECATED_FIELD_NUMBER: builtins.int - OBSTACLES_FIELD_NUMBER: builtins.int - MOTION_CONFIGURATION_FIELD_NUMBER: builtins.int - BOUNDING_REGIONS_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - MOVEMENT_SENSOR_NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class MoveOnGlobeRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + DESTINATION_FIELD_NUMBER: _builtins.int + HEADING_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: _builtins.int + MOVEMENT_SENSOR_NAME_DEPRECATED_FIELD_NUMBER: _builtins.int + OBSTACLES_FIELD_NUMBER: _builtins.int + MOTION_CONFIGURATION_FIELD_NUMBER: _builtins.int + BOUNDING_REGIONS_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + MOVEMENT_SENSOR_NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the motion service' - heading: builtins.float + heading: _builtins.float 'Optional compass heading to achieve at the destination, in degrees [0-360)' - component_name: builtins.str + component_name: _builtins.str 'Component on the robot to move to the specified destination' - movement_sensor_name: builtins.str + movement_sensor_name: _builtins.str 'Name of the movement sensor which will be used to check robot location' - @property - def destination(self) -> common.v1.common_pb2.GeoPoint: + @_builtins.property + def destination(self) -> _common_pb2.GeoPoint: """Destination, encoded as a GeoPoint""" - @property - def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def component_name_deprecated(self) -> _common_pb2.ResourceName: """Deprecated, use component_name field.""" - @property - def movement_sensor_name_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def movement_sensor_name_deprecated(self) -> _common_pb2.ResourceName: """Deprecated, use movement_sensor_name field.""" - @property - def obstacles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.GeoGeometry]: + @_builtins.property + def obstacles(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.GeoGeometry]: """Obstacles to be considered for motion planning""" - @property - def motion_configuration(self) -> global___MotionConfiguration: + @_builtins.property + def motion_configuration(self) -> Global___MotionConfiguration: """Optional set of motion configuration options""" - @property - def bounding_regions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.GeoGeometry]: + @_builtins.property + def bounding_regions(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.GeoGeometry]: """Set of obstacles which the robot must remain within while navigating""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., destination: common.v1.common_pb2.GeoPoint | None=..., heading: builtins.float | None=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., movement_sensor_name_deprecated: common.v1.common_pb2.ResourceName | None=..., obstacles: collections.abc.Iterable[common.v1.common_pb2.GeoGeometry] | None=..., motion_configuration: global___MotionConfiguration | None=..., bounding_regions: collections.abc.Iterable[common.v1.common_pb2.GeoGeometry] | None=..., component_name: builtins.str=..., movement_sensor_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., destination: _common_pb2.GeoPoint | None=..., heading: _builtins.float | None=..., component_name_deprecated: _common_pb2.ResourceName | None=..., movement_sensor_name_deprecated: _common_pb2.ResourceName | None=..., obstacles: _abc.Iterable[_common_pb2.GeoGeometry] | None=..., motion_configuration: Global___MotionConfiguration | None=..., bounding_regions: _abc.Iterable[_common_pb2.GeoGeometry] | None=..., component_name: _builtins.str=..., movement_sensor_name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_heading', b'_heading', '_motion_configuration', b'_motion_configuration', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'heading', b'heading', 'motion_configuration', b'motion_configuration', 'movement_sensor_name_deprecated', b'movement_sensor_name_deprecated'] - def HasField(self, field_name: typing.Literal['_heading', b'_heading', '_motion_configuration', b'_motion_configuration', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'heading', b'heading', 'motion_configuration', b'motion_configuration', 'movement_sensor_name_deprecated', b'movement_sensor_name_deprecated']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_heading', b'_heading', '_motion_configuration', b'_motion_configuration', 'bounding_regions', b'bounding_regions', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'heading', b'heading', 'motion_configuration', b'motion_configuration', 'movement_sensor_name', b'movement_sensor_name', 'movement_sensor_name_deprecated', b'movement_sensor_name_deprecated', 'name', b'name', 'obstacles', b'obstacles'] - def ClearField(self, field_name: typing.Literal['_heading', b'_heading', '_motion_configuration', b'_motion_configuration', 'bounding_regions', b'bounding_regions', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'destination', b'destination', 'extra', b'extra', 'heading', b'heading', 'motion_configuration', b'motion_configuration', 'movement_sensor_name', b'movement_sensor_name', 'movement_sensor_name_deprecated', b'movement_sensor_name_deprecated', 'name', b'name', 'obstacles', b'obstacles']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__heading: _TypeAlias = _typing.Literal['heading'] + _WhichOneofArgType__heading: _TypeAlias = _typing.Literal['_heading', b'_heading'] + _WhichOneofReturnType__motion_configuration: _TypeAlias = _typing.Literal['motion_configuration'] + _WhichOneofArgType__motion_configuration: _TypeAlias = _typing.Literal['_motion_configuration', b'_motion_configuration'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_heading', b'_heading']) -> typing.Literal['heading'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__heading) -> _WhichOneofReturnType__heading | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_motion_configuration', b'_motion_configuration']) -> typing.Literal['motion_configuration'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__motion_configuration) -> _WhichOneofReturnType__motion_configuration | None: ... -global___MoveOnGlobeRequest = MoveOnGlobeRequest +Global___MoveOnGlobeRequest: _TypeAlias = MoveOnGlobeRequest -@typing.final -class MoveOnGlobeResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXECUTION_ID_FIELD_NUMBER: builtins.int - execution_id: builtins.str +@_typing.final +class MoveOnGlobeResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + EXECUTION_ID_FIELD_NUMBER: _builtins.int + execution_id: _builtins.str 'The unique ID which identifies the execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning.\n ' - def __init__(self, *, execution_id: builtins.str=...) -> None: + def __init__(self, *, execution_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['execution_id', b'execution_id'] - def ClearField(self, field_name: typing.Literal['execution_id', b'execution_id']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___MoveOnGlobeResponse = MoveOnGlobeResponse +Global___MoveOnGlobeResponse: _TypeAlias = MoveOnGlobeResponse -@typing.final -class GetPoseRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int - DESTINATION_FRAME_FIELD_NUMBER: builtins.int - SUPPLEMENTAL_TRANSFORMS_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - destination_frame: builtins.str +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class GetPoseRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: _builtins.int + DESTINATION_FRAME_FIELD_NUMBER: _builtins.int + SUPPLEMENTAL_TRANSFORMS_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + destination_frame: _builtins.str 'the reference frame in which the component\'s pose\n should be provided, if unset this defaults\n to the "world" reference frame\n ' - component_name: builtins.str + component_name: _builtins.str 'the component whose pose is being requested' - @property - def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def component_name_deprecated(self) -> _common_pb2.ResourceName: """Deprecated, use component_name field.""" - @property - def supplemental_transforms(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.Transform]: + @_builtins.property + def supplemental_transforms(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.Transform]: """pose information on any additional reference frames that are needed to compute the component's pose """ - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., destination_frame: builtins.str=..., supplemental_transforms: collections.abc.Iterable[common.v1.common_pb2.Transform] | None=..., component_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., component_name_deprecated: _common_pb2.ResourceName | None=..., destination_frame: _builtins.str=..., supplemental_transforms: _abc.Iterable[_common_pb2.Transform] | None=..., component_name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['component_name_deprecated', b'component_name_deprecated', 'extra', b'extra'] - def HasField(self, field_name: typing.Literal['component_name_deprecated', b'component_name_deprecated', 'extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'destination_frame', b'destination_frame', 'extra', b'extra', 'name', b'name', 'supplemental_transforms', b'supplemental_transforms'] - def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'destination_frame', b'destination_frame', 'extra', b'extra', 'name', b'name', 'supplemental_transforms', b'supplemental_transforms']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPoseRequest = GetPoseRequest +Global___GetPoseRequest: _TypeAlias = GetPoseRequest -@typing.final -class GetPoseResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSE_FIELD_NUMBER: builtins.int +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class GetPoseResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSE_FIELD_NUMBER: _builtins.int - @property - def pose(self) -> common.v1.common_pb2.PoseInFrame: + @_builtins.property + def pose(self) -> _common_pb2.PoseInFrame: ... - def __init__(self, *, pose: common.v1.common_pb2.PoseInFrame | None=...) -> None: + def __init__(self, *, pose: _common_pb2.PoseInFrame | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def HasField(self, field_name: typing.Literal['pose', b'pose']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def ClearField(self, field_name: typing.Literal['pose', b'pose']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPoseResponse = GetPoseResponse +Global___GetPoseResponse: _TypeAlias = GetPoseResponse -@typing.final -class StopPlanRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class StopPlanRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'The name of the motion service' - component_name: builtins.str + component_name: _builtins.str 'The component of the currently executing plan to stop' - @property - def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def component_name_deprecated(self) -> _common_pb2.ResourceName: """Deprecated, use component_name field.""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., component_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., component_name_deprecated: _common_pb2.ResourceName | None=..., component_name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['component_name_deprecated', b'component_name_deprecated', 'extra', b'extra'] - def HasField(self, field_name: typing.Literal['component_name_deprecated', b'component_name_deprecated', 'extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StopPlanRequest = StopPlanRequest +Global___StopPlanRequest: _TypeAlias = StopPlanRequest -@typing.final -class StopPlanResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class StopPlanResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___StopPlanResponse = StopPlanResponse +Global___StopPlanResponse: _TypeAlias = StopPlanResponse -@typing.final -class ListPlanStatusesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - ONLY_ACTIVE_PLANS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class ListPlanStatusesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + ONLY_ACTIVE_PLANS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'The name of the motion service' - only_active_plans: builtins.bool + only_active_plans: _builtins.bool 'If supplied, the response will filter the\n plan results for the supplied state\n ' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., only_active_plans: builtins.bool=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., only_active_plans: _builtins.bool=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'only_active_plans', b'only_active_plans'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'only_active_plans', b'only_active_plans']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListPlanStatusesRequest = ListPlanStatusesRequest +Global___ListPlanStatusesRequest: _TypeAlias = ListPlanStatusesRequest -@typing.final -class ListPlanStatusesResponse(google.protobuf.message.Message): +@_typing.final +class ListPlanStatusesResponse(_message.Message): """Status of all executed / executing plan statuses with associated IDs within the 24 hour TTL""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PLAN_STATUSES_WITH_IDS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + PLAN_STATUSES_WITH_IDS_FIELD_NUMBER: _builtins.int - @property - def plan_statuses_with_ids(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanStatusWithID]: + @_builtins.property + def plan_statuses_with_ids(self) -> _containers.RepeatedCompositeFieldContainer[Global___PlanStatusWithID]: """List of last known statuses with the associated IDs of all plans within the TTL ordered by timestamp in ascending order """ - def __init__(self, *, plan_statuses_with_ids: collections.abc.Iterable[global___PlanStatusWithID] | None=...) -> None: + def __init__(self, *, plan_statuses_with_ids: _abc.Iterable[Global___PlanStatusWithID] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['plan_statuses_with_ids', b'plan_statuses_with_ids'] - def ClearField(self, field_name: typing.Literal['plan_statuses_with_ids', b'plan_statuses_with_ids']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListPlanStatusesResponse = ListPlanStatusesResponse +Global___ListPlanStatusesResponse: _TypeAlias = ListPlanStatusesResponse -@typing.final -class GetPlanRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int - LAST_PLAN_ONLY_FIELD_NUMBER: builtins.int - EXECUTION_ID_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPlanRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: _builtins.int + LAST_PLAN_ONLY_FIELD_NUMBER: _builtins.int + EXECUTION_ID_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'The name of the motion service' - last_plan_only: builtins.bool + last_plan_only: _builtins.bool 'If supplied, the response will only return\n the the last plan for the component / execution\n ' - execution_id: builtins.str + execution_id: _builtins.str 'If you want to know about the plans of a previous execution' - component_name: builtins.str + component_name: _builtins.str 'The name of the component which was requested to be moved.' - @property - def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def component_name_deprecated(self) -> _common_pb2.ResourceName: """Deprecated, use component_name field.""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., last_plan_only: builtins.bool=..., execution_id: builtins.str | None=..., component_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., component_name_deprecated: _common_pb2.ResourceName | None=..., last_plan_only: _builtins.bool=..., execution_id: _builtins.str | None=..., component_name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_execution_id', b'_execution_id', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'extra', b'extra'] - def HasField(self, field_name: typing.Literal['_execution_id', b'_execution_id', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_execution_id', b'_execution_id', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'extra', b'extra', 'last_plan_only', b'last_plan_only', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['_execution_id', b'_execution_id', 'component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'extra', b'extra', 'last_plan_only', b'last_plan_only', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__execution_id: _TypeAlias = _typing.Literal['execution_id'] + _WhichOneofArgType__execution_id: _TypeAlias = _typing.Literal['_execution_id', b'_execution_id'] - def WhichOneof(self, oneof_group: typing.Literal['_execution_id', b'_execution_id']) -> typing.Literal['execution_id'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__execution_id) -> _WhichOneofReturnType__execution_id | None: ... -global___GetPlanRequest = GetPlanRequest +Global___GetPlanRequest: _TypeAlias = GetPlanRequest -@typing.final -class GetPlanResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CURRENT_PLAN_WITH_STATUS_FIELD_NUMBER: builtins.int - REPLAN_HISTORY_FIELD_NUMBER: builtins.int +@_typing.final +class GetPlanResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CURRENT_PLAN_WITH_STATUS_FIELD_NUMBER: _builtins.int + REPLAN_HISTORY_FIELD_NUMBER: _builtins.int - @property - def current_plan_with_status(self) -> global___PlanWithStatus: + @_builtins.property + def current_plan_with_status(self) -> Global___PlanWithStatus: """The current plan and status that matches the request query""" - @property - def replan_history(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanWithStatus]: + @_builtins.property + def replan_history(self) -> _containers.RepeatedCompositeFieldContainer[Global___PlanWithStatus]: """Returns the history of all previous plans that were generated in ascending order. This field will be empty if the motion service did not need to re-plan. """ - def __init__(self, *, current_plan_with_status: global___PlanWithStatus | None=..., replan_history: collections.abc.Iterable[global___PlanWithStatus] | None=...) -> None: + def __init__(self, *, current_plan_with_status: Global___PlanWithStatus | None=..., replan_history: _abc.Iterable[Global___PlanWithStatus] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['current_plan_with_status', b'current_plan_with_status'] - def HasField(self, field_name: typing.Literal['current_plan_with_status', b'current_plan_with_status']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['current_plan_with_status', b'current_plan_with_status', 'replan_history', b'replan_history'] - def ClearField(self, field_name: typing.Literal['current_plan_with_status', b'current_plan_with_status', 'replan_history', b'replan_history']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPlanResponse = GetPlanResponse +Global___GetPlanResponse: _TypeAlias = GetPlanResponse -@typing.final -class Constraints(google.protobuf.message.Message): +@_typing.final +class Constraints(_message.Message): """Constraints specifies all enumerated constraints to be passed to Viam's motion planning, along with any optional parameters""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LINEAR_CONSTRAINT_FIELD_NUMBER: builtins.int - ORIENTATION_CONSTRAINT_FIELD_NUMBER: builtins.int - COLLISION_SPECIFICATION_FIELD_NUMBER: builtins.int - PSEUDOLINEAR_CONSTRAINT_FIELD_NUMBER: builtins.int - - @property - def linear_constraint(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LinearConstraint]: + DESCRIPTOR: _descriptor.Descriptor + LINEAR_CONSTRAINT_FIELD_NUMBER: _builtins.int + ORIENTATION_CONSTRAINT_FIELD_NUMBER: _builtins.int + COLLISION_SPECIFICATION_FIELD_NUMBER: _builtins.int + PSEUDOLINEAR_CONSTRAINT_FIELD_NUMBER: _builtins.int + + @_builtins.property + def linear_constraint(self) -> _containers.RepeatedCompositeFieldContainer[Global___LinearConstraint]: """Typed message for a specific constraint""" - @property - def orientation_constraint(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___OrientationConstraint]: + @_builtins.property + def orientation_constraint(self) -> _containers.RepeatedCompositeFieldContainer[Global___OrientationConstraint]: ... - @property - def collision_specification(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CollisionSpecification]: + @_builtins.property + def collision_specification(self) -> _containers.RepeatedCompositeFieldContainer[Global___CollisionSpecification]: ... - @property - def pseudolinear_constraint(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PseudolinearConstraint]: + @_builtins.property + def pseudolinear_constraint(self) -> _containers.RepeatedCompositeFieldContainer[Global___PseudolinearConstraint]: """Arc constraint, Time constraint, and others will be added here when they are supported""" - def __init__(self, *, linear_constraint: collections.abc.Iterable[global___LinearConstraint] | None=..., orientation_constraint: collections.abc.Iterable[global___OrientationConstraint] | None=..., collision_specification: collections.abc.Iterable[global___CollisionSpecification] | None=..., pseudolinear_constraint: collections.abc.Iterable[global___PseudolinearConstraint] | None=...) -> None: + def __init__(self, *, linear_constraint: _abc.Iterable[Global___LinearConstraint] | None=..., orientation_constraint: _abc.Iterable[Global___OrientationConstraint] | None=..., collision_specification: _abc.Iterable[Global___CollisionSpecification] | None=..., pseudolinear_constraint: _abc.Iterable[Global___PseudolinearConstraint] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['collision_specification', b'collision_specification', 'linear_constraint', b'linear_constraint', 'orientation_constraint', b'orientation_constraint', 'pseudolinear_constraint', b'pseudolinear_constraint'] - def ClearField(self, field_name: typing.Literal['collision_specification', b'collision_specification', 'linear_constraint', b'linear_constraint', 'orientation_constraint', b'orientation_constraint', 'pseudolinear_constraint', b'pseudolinear_constraint']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Constraints = Constraints +Global___Constraints: _TypeAlias = Constraints -@typing.final -class LinearConstraint(google.protobuf.message.Message): +@_typing.final +class LinearConstraint(_message.Message): """LinearConstraint specifies that the component being moved should move linearly relative to its goal. It does not constrain the motion of components other than the `component_name` specified in motion.Move """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LINE_TOLERANCE_MM_FIELD_NUMBER: builtins.int - ORIENTATION_TOLERANCE_DEGS_FIELD_NUMBER: builtins.int - line_tolerance_mm: builtins.float + DESCRIPTOR: _descriptor.Descriptor + LINE_TOLERANCE_MM_FIELD_NUMBER: _builtins.int + ORIENTATION_TOLERANCE_DEGS_FIELD_NUMBER: _builtins.int + line_tolerance_mm: _builtins.float 'Max linear deviation from straight-line between start and goal, in mm.' - orientation_tolerance_degs: builtins.float + orientation_tolerance_degs: _builtins.float 'Max allowable orientation deviation, in degrees, while on the shortest path between start / goal states' - def __init__(self, *, line_tolerance_mm: builtins.float | None=..., orientation_tolerance_degs: builtins.float | None=...) -> None: + def __init__(self, *, line_tolerance_mm: _builtins.float | None=..., orientation_tolerance_degs: _builtins.float | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm', '_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'line_tolerance_mm', b'line_tolerance_mm', 'orientation_tolerance_degs', b'orientation_tolerance_degs'] - def HasField(self, field_name: typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm', '_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'line_tolerance_mm', b'line_tolerance_mm', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm', '_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'line_tolerance_mm', b'line_tolerance_mm', 'orientation_tolerance_degs', b'orientation_tolerance_degs'] - def ClearField(self, field_name: typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm', '_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'line_tolerance_mm', b'line_tolerance_mm', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__line_tolerance_mm: _TypeAlias = _typing.Literal['line_tolerance_mm'] + _WhichOneofArgType__line_tolerance_mm: _TypeAlias = _typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm'] + _WhichOneofReturnType__orientation_tolerance_degs: _TypeAlias = _typing.Literal['orientation_tolerance_degs'] + _WhichOneofArgType__orientation_tolerance_degs: _TypeAlias = _typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_line_tolerance_mm', b'_line_tolerance_mm']) -> typing.Literal['line_tolerance_mm'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__line_tolerance_mm) -> _WhichOneofReturnType__line_tolerance_mm | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs']) -> typing.Literal['orientation_tolerance_degs'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__orientation_tolerance_degs) -> _WhichOneofReturnType__orientation_tolerance_degs | None: ... -global___LinearConstraint = LinearConstraint +Global___LinearConstraint: _TypeAlias = LinearConstraint -@typing.final -class PseudolinearConstraint(google.protobuf.message.Message): +@_typing.final +class PseudolinearConstraint(_message.Message): """PseudolinearConstraint specifies that the component being moved should not deviate from the straight-line path to their goal by more than a factor proportional to the distance from start to goal. For example, if a component is moving 100mm, then a LineToleranceFactor of 1.0 means that the component will remain within a 100mm radius of the straight-line start-goal path. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LINE_TOLERANCE_FACTOR_FIELD_NUMBER: builtins.int - ORIENTATION_TOLERANCE_FACTOR_FIELD_NUMBER: builtins.int - line_tolerance_factor: builtins.float - orientation_tolerance_factor: builtins.float + DESCRIPTOR: _descriptor.Descriptor + LINE_TOLERANCE_FACTOR_FIELD_NUMBER: _builtins.int + ORIENTATION_TOLERANCE_FACTOR_FIELD_NUMBER: _builtins.int + line_tolerance_factor: _builtins.float + orientation_tolerance_factor: _builtins.float - def __init__(self, *, line_tolerance_factor: builtins.float | None=..., orientation_tolerance_factor: builtins.float | None=...) -> None: + def __init__(self, *, line_tolerance_factor: _builtins.float | None=..., orientation_tolerance_factor: _builtins.float | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_line_tolerance_factor', b'_line_tolerance_factor', '_orientation_tolerance_factor', b'_orientation_tolerance_factor', 'line_tolerance_factor', b'line_tolerance_factor', 'orientation_tolerance_factor', b'orientation_tolerance_factor'] - def HasField(self, field_name: typing.Literal['_line_tolerance_factor', b'_line_tolerance_factor', '_orientation_tolerance_factor', b'_orientation_tolerance_factor', 'line_tolerance_factor', b'line_tolerance_factor', 'orientation_tolerance_factor', b'orientation_tolerance_factor']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_line_tolerance_factor', b'_line_tolerance_factor', '_orientation_tolerance_factor', b'_orientation_tolerance_factor', 'line_tolerance_factor', b'line_tolerance_factor', 'orientation_tolerance_factor', b'orientation_tolerance_factor'] - def ClearField(self, field_name: typing.Literal['_line_tolerance_factor', b'_line_tolerance_factor', '_orientation_tolerance_factor', b'_orientation_tolerance_factor', 'line_tolerance_factor', b'line_tolerance_factor', 'orientation_tolerance_factor', b'orientation_tolerance_factor']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__line_tolerance_factor: _TypeAlias = _typing.Literal['line_tolerance_factor'] + _WhichOneofArgType__line_tolerance_factor: _TypeAlias = _typing.Literal['_line_tolerance_factor', b'_line_tolerance_factor'] + _WhichOneofReturnType__orientation_tolerance_factor: _TypeAlias = _typing.Literal['orientation_tolerance_factor'] + _WhichOneofArgType__orientation_tolerance_factor: _TypeAlias = _typing.Literal['_orientation_tolerance_factor', b'_orientation_tolerance_factor'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_line_tolerance_factor', b'_line_tolerance_factor']) -> typing.Literal['line_tolerance_factor'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__line_tolerance_factor) -> _WhichOneofReturnType__line_tolerance_factor | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_orientation_tolerance_factor', b'_orientation_tolerance_factor']) -> typing.Literal['orientation_tolerance_factor'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__orientation_tolerance_factor) -> _WhichOneofReturnType__orientation_tolerance_factor | None: ... -global___PseudolinearConstraint = PseudolinearConstraint +Global___PseudolinearConstraint: _TypeAlias = PseudolinearConstraint -@typing.final -class OrientationConstraint(google.protobuf.message.Message): +@_typing.final +class OrientationConstraint(_message.Message): """OrientationConstraint specifies that the component being moved will not deviate its orientation beyond some threshold relative to the goal. It does not constrain the motion of components other than the `component_name` specified in motion.Move """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ORIENTATION_TOLERANCE_DEGS_FIELD_NUMBER: builtins.int - orientation_tolerance_degs: builtins.float + DESCRIPTOR: _descriptor.Descriptor + ORIENTATION_TOLERANCE_DEGS_FIELD_NUMBER: _builtins.int + orientation_tolerance_degs: _builtins.float 'Max allowable orientation deviation, in degrees, while on the shortest path between start / goal states' - def __init__(self, *, orientation_tolerance_degs: builtins.float | None=...) -> None: + def __init__(self, *, orientation_tolerance_degs: _builtins.float | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'orientation_tolerance_degs', b'orientation_tolerance_degs'] - def HasField(self, field_name: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'orientation_tolerance_degs', b'orientation_tolerance_degs'] - def ClearField(self, field_name: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs', 'orientation_tolerance_degs', b'orientation_tolerance_degs']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__orientation_tolerance_degs: _TypeAlias = _typing.Literal['orientation_tolerance_degs'] + _WhichOneofArgType__orientation_tolerance_degs: _TypeAlias = _typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs'] - def WhichOneof(self, oneof_group: typing.Literal['_orientation_tolerance_degs', b'_orientation_tolerance_degs']) -> typing.Literal['orientation_tolerance_degs'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__orientation_tolerance_degs) -> _WhichOneofReturnType__orientation_tolerance_degs | None: ... -global___OrientationConstraint = OrientationConstraint +Global___OrientationConstraint: _TypeAlias = OrientationConstraint -@typing.final -class CollisionSpecification(google.protobuf.message.Message): +@_typing.final +class CollisionSpecification(_message.Message): """CollisionSpecification is used to selectively apply obstacle avoidance to specific parts of the robot""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class AllowedFrameCollisions(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FRAME1_FIELD_NUMBER: builtins.int - FRAME2_FIELD_NUMBER: builtins.int - frame1: builtins.str - frame2: builtins.str + @_typing.final + class AllowedFrameCollisions(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + FRAME1_FIELD_NUMBER: _builtins.int + FRAME2_FIELD_NUMBER: _builtins.int + frame1: _builtins.str + frame2: _builtins.str - def __init__(self, *, frame1: builtins.str=..., frame2: builtins.str=...) -> None: + def __init__(self, *, frame1: _builtins.str=..., frame2: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['frame1', b'frame1', 'frame2', b'frame2'] - def ClearField(self, field_name: typing.Literal['frame1', b'frame1', 'frame2', b'frame2']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - ALLOWS_FIELD_NUMBER: builtins.int + ALLOWS_FIELD_NUMBER: _builtins.int - @property - def allows(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___CollisionSpecification.AllowedFrameCollisions]: + @_builtins.property + def allows(self) -> _containers.RepeatedCompositeFieldContainer[Global___CollisionSpecification.AllowedFrameCollisions]: """Pairs of frame which should be allowed to collide with one another""" - def __init__(self, *, allows: collections.abc.Iterable[global___CollisionSpecification.AllowedFrameCollisions] | None=...) -> None: + def __init__(self, *, allows: _abc.Iterable[Global___CollisionSpecification.AllowedFrameCollisions] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['allows', b'allows'] - def ClearField(self, field_name: typing.Literal['allows', b'allows']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CollisionSpecification = CollisionSpecification +Global___CollisionSpecification: _TypeAlias = CollisionSpecification -@typing.final -class PlanWithStatus(google.protobuf.message.Message): +@_typing.final +class PlanWithStatus(_message.Message): """Describes a plan, its current status & all status changes that have occured previously on that plan """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PLAN_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - STATUS_HISTORY_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + PLAN_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + STATUS_HISTORY_FIELD_NUMBER: _builtins.int - @property - def plan(self) -> global___Plan: + @_builtins.property + def plan(self) -> Global___Plan: """The plan""" - @property - def status(self) -> global___PlanStatus: + @_builtins.property + def status(self) -> Global___PlanStatus: """The current status of the plan""" - @property - def status_history(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanStatus]: + @_builtins.property + def status_history(self) -> _containers.RepeatedCompositeFieldContainer[Global___PlanStatus]: """The prior status changes that have happened during plan execution""" - def __init__(self, *, plan: global___Plan | None=..., status: global___PlanStatus | None=..., status_history: collections.abc.Iterable[global___PlanStatus] | None=...) -> None: + def __init__(self, *, plan: Global___Plan | None=..., status: Global___PlanStatus | None=..., status_history: _abc.Iterable[Global___PlanStatus] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['plan', b'plan', 'status', b'status'] - def HasField(self, field_name: typing.Literal['plan', b'plan', 'status', b'status']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['plan', b'plan', 'status', b'status', 'status_history', b'status_history'] - def ClearField(self, field_name: typing.Literal['plan', b'plan', 'status', b'status', 'status_history', b'status_history']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PlanWithStatus = PlanWithStatus +Global___PlanWithStatus: _TypeAlias = PlanWithStatus -@typing.final -class PlanStatusWithID(google.protobuf.message.Message): +@_typing.final +class PlanStatusWithID(_message.Message): """PlanStatusWithID describes the state of a given plan at a point in time plus the plan_id, component_name and execution_id the status is associated with """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PLAN_ID_FIELD_NUMBER: builtins.int - COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int - EXECUTION_ID_FIELD_NUMBER: builtins.int - STATUS_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - plan_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + PLAN_ID_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: _builtins.int + EXECUTION_ID_FIELD_NUMBER: _builtins.int + STATUS_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + plan_id: _builtins.str 'The unique ID of the plan' - execution_id: builtins.str + execution_id: _builtins.str 'The unique ID which identifies the plan execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning.\n ' - component_name: builtins.str + component_name: _builtins.str 'The component to be moved.\n Used for tracking & stopping.\n NOTE: A plan may move more components than just the\n component_name.\n ' - @property - def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def component_name_deprecated(self) -> _common_pb2.ResourceName: """Deprecated, use component_name field.""" - @property - def status(self) -> global___PlanStatus: + @_builtins.property + def status(self) -> Global___PlanStatus: ... - def __init__(self, *, plan_id: builtins.str=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., execution_id: builtins.str=..., status: global___PlanStatus | None=..., component_name: builtins.str=...) -> None: + def __init__(self, *, plan_id: _builtins.str=..., component_name_deprecated: _common_pb2.ResourceName | None=..., execution_id: _builtins.str=..., status: Global___PlanStatus | None=..., component_name: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['component_name_deprecated', b'component_name_deprecated', 'status', b'status'] - def HasField(self, field_name: typing.Literal['component_name_deprecated', b'component_name_deprecated', 'status', b'status']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'plan_id', b'plan_id', 'status', b'status'] - def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'plan_id', b'plan_id', 'status', b'status']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PlanStatusWithID = PlanStatusWithID +Global___PlanStatusWithID: _TypeAlias = PlanStatusWithID -@typing.final -class PlanStatus(google.protobuf.message.Message): +@_typing.final +class PlanStatus(_message.Message): """Plan status describes the state of a given plan at a point in time """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - STATE_FIELD_NUMBER: builtins.int - TIMESTAMP_FIELD_NUMBER: builtins.int - REASON_FIELD_NUMBER: builtins.int - state: global___PlanState.ValueType + DESCRIPTOR: _descriptor.Descriptor + STATE_FIELD_NUMBER: _builtins.int + TIMESTAMP_FIELD_NUMBER: _builtins.int + REASON_FIELD_NUMBER: _builtins.int + state: Global___PlanState.ValueType 'The state of the plan execution' - reason: builtins.str + reason: _builtins.str 'The reason for the state change. If motion plan failed\n this will return the error message.\n If motion needed to re-plan, this will return\n the re-plan reason.\n ' - @property - def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def timestamp(self) -> _timestamp_pb2.Timestamp: """The time the executing plan transtioned to the state""" - def __init__(self, *, state: global___PlanState.ValueType=..., timestamp: google.protobuf.timestamp_pb2.Timestamp | None=..., reason: builtins.str | None=...) -> None: + def __init__(self, *, state: Global___PlanState.ValueType=..., timestamp: _timestamp_pb2.Timestamp | None=..., reason: _builtins.str | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_reason', b'_reason', 'reason', b'reason', 'timestamp', b'timestamp'] - def HasField(self, field_name: typing.Literal['_reason', b'_reason', 'reason', b'reason', 'timestamp', b'timestamp']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_reason', b'_reason', 'reason', b'reason', 'state', b'state', 'timestamp', b'timestamp'] - def ClearField(self, field_name: typing.Literal['_reason', b'_reason', 'reason', b'reason', 'state', b'state', 'timestamp', b'timestamp']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__reason: _TypeAlias = _typing.Literal['reason'] + _WhichOneofArgType__reason: _TypeAlias = _typing.Literal['_reason', b'_reason'] - def WhichOneof(self, oneof_group: typing.Literal['_reason', b'_reason']) -> typing.Literal['reason'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__reason) -> _WhichOneofReturnType__reason | None: ... -global___PlanStatus = PlanStatus +Global___PlanStatus: _TypeAlias = PlanStatus -@typing.final -class Plan(google.protobuf.message.Message): +@_typing.final +class Plan(_message.Message): """A plan describes a motion plan""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: builtins.int - EXECUTION_ID_FIELD_NUMBER: builtins.int - STEPS_FIELD_NUMBER: builtins.int - COMPONENT_NAME_FIELD_NUMBER: builtins.int - id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_DEPRECATED_FIELD_NUMBER: _builtins.int + EXECUTION_ID_FIELD_NUMBER: _builtins.int + STEPS_FIELD_NUMBER: _builtins.int + COMPONENT_NAME_FIELD_NUMBER: _builtins.int + id: _builtins.str "The plan's unique ID" - execution_id: builtins.str + execution_id: _builtins.str 'The unique ID which identifies the execution.\n Multiple plans will share the same execution_id if they were\n generated due to replanning\n ' - component_name: builtins.str + component_name: _builtins.str 'The component requested to be moved.\n Used for tracking & stopping.\n NOTE: A plan may move more components than just the\n root component.\n ' - @property - def component_name_deprecated(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def component_name_deprecated(self) -> _common_pb2.ResourceName: """Deprecated, use component_name field.""" - @property - def steps(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PlanStep]: + @_builtins.property + def steps(self) -> _containers.RepeatedCompositeFieldContainer[Global___PlanStep]: """The steps of a plan is an ordered list of plan steps""" - def __init__(self, *, id: builtins.str=..., component_name_deprecated: common.v1.common_pb2.ResourceName | None=..., execution_id: builtins.str=..., steps: collections.abc.Iterable[global___PlanStep] | None=..., component_name: builtins.str=...) -> None: + def __init__(self, *, id: _builtins.str=..., component_name_deprecated: _common_pb2.ResourceName | None=..., execution_id: _builtins.str=..., steps: _abc.Iterable[Global___PlanStep] | None=..., component_name: _builtins.str=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['component_name_deprecated', b'component_name_deprecated'] - def HasField(self, field_name: typing.Literal['component_name_deprecated', b'component_name_deprecated']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'id', b'id', 'steps', b'steps'] - def ClearField(self, field_name: typing.Literal['component_name', b'component_name', 'component_name_deprecated', b'component_name_deprecated', 'execution_id', b'execution_id', 'id', b'id', 'steps', b'steps']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Plan = Plan +Global___Plan: _TypeAlias = Plan -@typing.final -class PlanStep(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class PlanStep(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class StepEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class StepEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> global___ComponentState: + @_builtins.property + def value(self) -> Global___ComponentState: ... - def __init__(self, *, key: builtins.str=..., value: global___ComponentState | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: Global___ComponentState | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - STEP_FIELD_NUMBER: builtins.int + STEP_FIELD_NUMBER: _builtins.int - @property - def step(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___ComponentState]: + @_builtins.property + def step(self) -> _containers.MessageMap[_builtins.str, Global___ComponentState]: """A step is the component state each component resource should reach while executing that step of the plan. Keys are the fully qualified component name. """ - def __init__(self, *, step: collections.abc.Mapping[builtins.str, global___ComponentState] | None=...) -> None: + def __init__(self, *, step: _abc.Mapping[_builtins.str, Global___ComponentState] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['step', b'step'] - def ClearField(self, field_name: typing.Literal['step', b'step']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___PlanStep = PlanStep +Global___PlanStep: _TypeAlias = PlanStep -@typing.final -class ComponentState(google.protobuf.message.Message): +@_typing.final +class ComponentState(_message.Message): """A pose""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSE_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + POSE_FIELD_NUMBER: _builtins.int - @property - def pose(self) -> common.v1.common_pb2.Pose: + @_builtins.property + def pose(self) -> _common_pb2.Pose: ... - def __init__(self, *, pose: common.v1.common_pb2.Pose | None=...) -> None: + def __init__(self, *, pose: _common_pb2.Pose | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def HasField(self, field_name: typing.Literal['pose', b'pose']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def ClearField(self, field_name: typing.Literal['pose', b'pose']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ComponentState = ComponentState \ No newline at end of file +Global___ComponentState: _TypeAlias = ComponentState \ No newline at end of file diff --git a/src/viam/gen/service/navigation/v1/navigation_pb2.py b/src/viam/gen/service/navigation/v1/navigation_pb2.py index 738baa15d2..a7694776ac 100644 --- a/src/viam/gen/service/navigation/v1/navigation_pb2.py +++ b/src/viam/gen/service/navigation/v1/navigation_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/navigation/v1/navigation.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/navigation/v1/navigation.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/service/navigation/v1/navigation_pb2.pyi b/src/viam/gen/service/navigation/v1/navigation_pb2.pyi index 9f9de82981..2e0d626274 100644 --- a/src/viam/gen/service/navigation/v1/navigation_pb2.pyi +++ b/src/viam/gen/service/navigation/v1/navigation_pb2.pyi @@ -2,28 +2,28 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from .... import common -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _MapType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _MapTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MapType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _MapTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_MapType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor MAP_TYPE_UNSPECIFIED: _MapType.ValueType MAP_TYPE_NONE: _MapType.ValueType MAP_TYPE_GPS: _MapType.ValueType @@ -33,14 +33,14 @@ class MapType(_MapType, metaclass=_MapTypeEnumTypeWrapper): MAP_TYPE_UNSPECIFIED: MapType.ValueType MAP_TYPE_NONE: MapType.ValueType MAP_TYPE_GPS: MapType.ValueType -global___MapType = MapType +Global___MapType: _TypeAlias = MapType class _Mode: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _ModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Mode.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _ModeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_Mode.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor MODE_UNSPECIFIED: _Mode.ValueType MODE_MANUAL: _Mode.ValueType MODE_WAYPOINT: _Mode.ValueType @@ -52,368 +52,395 @@ MODE_UNSPECIFIED: Mode.ValueType MODE_MANUAL: Mode.ValueType MODE_WAYPOINT: Mode.ValueType MODE_EXPLORE: Mode.ValueType -global___Mode = Mode +Global___Mode: _TypeAlias = Mode -@typing.final -class GetModeRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetModeRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetModeRequest = GetModeRequest +Global___GetModeRequest: _TypeAlias = GetModeRequest -@typing.final -class GetModeResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MODE_FIELD_NUMBER: builtins.int - mode: global___Mode.ValueType +@_typing.final +class GetModeResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MODE_FIELD_NUMBER: _builtins.int + mode: Global___Mode.ValueType - def __init__(self, *, mode: global___Mode.ValueType=...) -> None: + def __init__(self, *, mode: Global___Mode.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['mode', b'mode'] - def ClearField(self, field_name: typing.Literal['mode', b'mode']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetModeResponse = GetModeResponse +Global___GetModeResponse: _TypeAlias = GetModeResponse -@typing.final -class SetModeRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - MODE_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - mode: global___Mode.ValueType +@_typing.final +class SetModeRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + MODE_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + mode: Global___Mode.ValueType - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., mode: global___Mode.ValueType=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., mode: Global___Mode.ValueType=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'mode', b'mode', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'mode', b'mode', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetModeRequest = SetModeRequest +Global___SetModeRequest: _TypeAlias = SetModeRequest -@typing.final -class SetModeResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class SetModeResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetModeResponse = SetModeResponse +Global___SetModeResponse: _TypeAlias = SetModeResponse -@typing.final -class Waypoint(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ID_FIELD_NUMBER: builtins.int - LOCATION_FIELD_NUMBER: builtins.int - id: builtins.str +@_typing.final +class Waypoint(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ID_FIELD_NUMBER: _builtins.int + LOCATION_FIELD_NUMBER: _builtins.int + id: _builtins.str - @property - def location(self) -> common.v1.common_pb2.GeoPoint: + @_builtins.property + def location(self) -> _common_pb2.GeoPoint: ... - def __init__(self, *, id: builtins.str=..., location: common.v1.common_pb2.GeoPoint | None=...) -> None: + def __init__(self, *, id: _builtins.str=..., location: _common_pb2.GeoPoint | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['location', b'location'] - def HasField(self, field_name: typing.Literal['location', b'location']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['id', b'id', 'location', b'location'] - def ClearField(self, field_name: typing.Literal['id', b'id', 'location', b'location']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Waypoint = Waypoint +Global___Waypoint: _TypeAlias = Waypoint -@typing.final -class GetLocationRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetLocationRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLocationRequest = GetLocationRequest +Global___GetLocationRequest: _TypeAlias = GetLocationRequest -@typing.final -class GetLocationResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LOCATION_FIELD_NUMBER: builtins.int - COMPASS_HEADING_FIELD_NUMBER: builtins.int - compass_heading: builtins.float +@_typing.final +class GetLocationResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + LOCATION_FIELD_NUMBER: _builtins.int + COMPASS_HEADING_FIELD_NUMBER: _builtins.int + compass_heading: _builtins.float 'A number from [0-360) where 0 is north\n 90 is east, 180 is south, 270 is west\n ' - @property - def location(self) -> common.v1.common_pb2.GeoPoint: + @_builtins.property + def location(self) -> _common_pb2.GeoPoint: ... - def __init__(self, *, location: common.v1.common_pb2.GeoPoint | None=..., compass_heading: builtins.float=...) -> None: + def __init__(self, *, location: _common_pb2.GeoPoint | None=..., compass_heading: _builtins.float=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['location', b'location'] - def HasField(self, field_name: typing.Literal['location', b'location']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['compass_heading', b'compass_heading', 'location', b'location'] - def ClearField(self, field_name: typing.Literal['compass_heading', b'compass_heading', 'location', b'location']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetLocationResponse = GetLocationResponse +Global___GetLocationResponse: _TypeAlias = GetLocationResponse -@typing.final -class GetWaypointsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetWaypointsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetWaypointsRequest = GetWaypointsRequest +Global___GetWaypointsRequest: _TypeAlias = GetWaypointsRequest -@typing.final -class GetWaypointsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - WAYPOINTS_FIELD_NUMBER: builtins.int +@_typing.final +class GetWaypointsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + WAYPOINTS_FIELD_NUMBER: _builtins.int - @property - def waypoints(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Waypoint]: + @_builtins.property + def waypoints(self) -> _containers.RepeatedCompositeFieldContainer[Global___Waypoint]: ... - def __init__(self, *, waypoints: collections.abc.Iterable[global___Waypoint] | None=...) -> None: + def __init__(self, *, waypoints: _abc.Iterable[Global___Waypoint] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['waypoints', b'waypoints'] - def ClearField(self, field_name: typing.Literal['waypoints', b'waypoints']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetWaypointsResponse = GetWaypointsResponse +Global___GetWaypointsResponse: _TypeAlias = GetWaypointsResponse -@typing.final -class AddWaypointRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - LOCATION_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class AddWaypointRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + LOCATION_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def location(self) -> common.v1.common_pb2.GeoPoint: + @_builtins.property + def location(self) -> _common_pb2.GeoPoint: ... - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., location: common.v1.common_pb2.GeoPoint | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., location: _common_pb2.GeoPoint | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'location', b'location'] - def HasField(self, field_name: typing.Literal['extra', b'extra', 'location', b'location']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'location', b'location', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'location', b'location', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AddWaypointRequest = AddWaypointRequest +Global___AddWaypointRequest: _TypeAlias = AddWaypointRequest -@typing.final -class AddWaypointResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class AddWaypointResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AddWaypointResponse = AddWaypointResponse +Global___AddWaypointResponse: _TypeAlias = AddWaypointResponse -@typing.final -class RemoveWaypointRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - ID_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - id: builtins.str +@_typing.final +class RemoveWaypointRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + ID_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + id: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., id: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., id: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'id', b'id', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'id', b'id', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoveWaypointRequest = RemoveWaypointRequest +Global___RemoveWaypointRequest: _TypeAlias = RemoveWaypointRequest -@typing.final -class RemoveWaypointResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_typing.final +class RemoveWaypointResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___RemoveWaypointResponse = RemoveWaypointResponse +Global___RemoveWaypointResponse: _TypeAlias = RemoveWaypointResponse -@typing.final -class GetObstaclesRequest(google.protobuf.message.Message): +@_typing.final +class GetObstaclesRequest(_message.Message): """GetObstacles will return the geopoint location and geometry of all known obstacles on the navigation map. Obstacles that are detected through the vision service will only be returned if this endpoint is called when the robot is sensing the obstacle """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetObstaclesRequest = GetObstaclesRequest +Global___GetObstaclesRequest: _TypeAlias = GetObstaclesRequest -@typing.final -class GetObstaclesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OBSTACLES_FIELD_NUMBER: builtins.int +@_typing.final +class GetObstaclesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + OBSTACLES_FIELD_NUMBER: _builtins.int - @property - def obstacles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.GeoGeometry]: + @_builtins.property + def obstacles(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.GeoGeometry]: """List of all known geometries""" - def __init__(self, *, obstacles: collections.abc.Iterable[common.v1.common_pb2.GeoGeometry] | None=...) -> None: + def __init__(self, *, obstacles: _abc.Iterable[_common_pb2.GeoGeometry] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['obstacles', b'obstacles'] - def ClearField(self, field_name: typing.Literal['obstacles', b'obstacles']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetObstaclesResponse = GetObstaclesResponse +Global___GetObstaclesResponse: _TypeAlias = GetObstaclesResponse -@typing.final -class Path(google.protobuf.message.Message): +@_typing.final +class Path(_message.Message): """A user provided destination and the set of geopoints that the robot is expected to take to get there """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DESTINATION_WAYPOINT_ID_FIELD_NUMBER: builtins.int - GEOPOINTS_FIELD_NUMBER: builtins.int - destination_waypoint_id: builtins.str + DESCRIPTOR: _descriptor.Descriptor + DESTINATION_WAYPOINT_ID_FIELD_NUMBER: _builtins.int + GEOPOINTS_FIELD_NUMBER: _builtins.int + destination_waypoint_id: _builtins.str 'The id of the user specified waypoint' - @property - def geopoints(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.GeoPoint]: + @_builtins.property + def geopoints(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.GeoPoint]: """List of geopoints that the motion planner output to reach the destination The first geopoint is the starting position of the robot for that path """ - def __init__(self, *, destination_waypoint_id: builtins.str=..., geopoints: collections.abc.Iterable[common.v1.common_pb2.GeoPoint] | None=...) -> None: + def __init__(self, *, destination_waypoint_id: _builtins.str=..., geopoints: _abc.Iterable[_common_pb2.GeoPoint] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['destination_waypoint_id', b'destination_waypoint_id', 'geopoints', b'geopoints'] - def ClearField(self, field_name: typing.Literal['destination_waypoint_id', b'destination_waypoint_id', 'geopoints', b'geopoints']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Path = Path +Global___Path: _TypeAlias = Path -@typing.final -class GetPathsRequest(google.protobuf.message.Message): +@_typing.final +class GetPathsRequest(_message.Message): """Returns all the paths known to the navigation service""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the navigation service' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPathsRequest = GetPathsRequest +Global___GetPathsRequest: _TypeAlias = GetPathsRequest -@typing.final -class GetPathsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PATHS_FIELD_NUMBER: builtins.int +@_typing.final +class GetPathsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + PATHS_FIELD_NUMBER: _builtins.int - @property - def paths(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Path]: + @_builtins.property + def paths(self) -> _containers.RepeatedCompositeFieldContainer[Global___Path]: ... - def __init__(self, *, paths: collections.abc.Iterable[global___Path] | None=...) -> None: + def __init__(self, *, paths: _abc.Iterable[Global___Path] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['paths', b'paths'] - def ClearField(self, field_name: typing.Literal['paths', b'paths']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPathsResponse = GetPathsResponse +Global___GetPathsResponse: _TypeAlias = GetPathsResponse -@typing.final -class GetPropertiesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPropertiesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the navigation service' - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesRequest = GetPropertiesRequest +Global___GetPropertiesRequest: _TypeAlias = GetPropertiesRequest -@typing.final -class GetPropertiesResponse(google.protobuf.message.Message): +@_typing.final +class GetPropertiesResponse(_message.Message): """Returns properties information for the named navigation service""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MAP_TYPE_FIELD_NUMBER: builtins.int - map_type: global___MapType.ValueType + DESCRIPTOR: _descriptor.Descriptor + MAP_TYPE_FIELD_NUMBER: _builtins.int + map_type: Global___MapType.ValueType - def __init__(self, *, map_type: global___MapType.ValueType=...) -> None: + def __init__(self, *, map_type: Global___MapType.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['map_type', b'map_type'] - def ClearField(self, field_name: typing.Literal['map_type', b'map_type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesResponse = GetPropertiesResponse \ No newline at end of file +Global___GetPropertiesResponse: _TypeAlias = GetPropertiesResponse \ No newline at end of file diff --git a/src/viam/gen/service/sensors/v1/sensors_pb2.py b/src/viam/gen/service/sensors/v1/sensors_pb2.py index 9a304eb65e..41bd1af07c 100644 --- a/src/viam/gen/service/sensors/v1/sensors_pb2.py +++ b/src/viam/gen/service/sensors/v1/sensors_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/sensors/v1/sensors.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/sensors/v1/sensors.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/service/sensors/v1/sensors_pb2.pyi b/src/viam/gen/service/sensors/v1/sensors_pb2.pyi index ac654840b0..92cb48ad22 100644 --- a/src/viam/gen/service/sensors/v1/sensors_pb2.pyi +++ b/src/viam/gen/service/sensors/v1/sensors_pb2.pyi @@ -2,136 +2,185 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from .... import common -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class GetSensorsRequest(google.protobuf.message.Message): +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +if sys.version_info >= (3, 13): + from warnings import deprecated as _deprecated +else: + from typing_extensions import deprecated as _deprecated +DESCRIPTOR: _descriptor.FileDescriptor + +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class GetSensorsRequest(_message.Message): """The sensors service messages are deprecated""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def name(self) -> _builtins.str: + ... + + @name.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def name(self, value: _builtins.str) -> None: + ... + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetSensorsRequest = GetSensorsRequest +Global___GetSensorsRequest: _TypeAlias = GetSensorsRequest -@typing.final -class GetSensorsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SENSOR_NAMES_FIELD_NUMBER: builtins.int +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class GetSensorsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SENSOR_NAMES_FIELD_NUMBER: _builtins.int - @property - def sensor_names(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.ResourceName]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def sensor_names(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.ResourceName]: ... - def __init__(self, *, sensor_names: collections.abc.Iterable[common.v1.common_pb2.ResourceName] | None=...) -> None: + def __init__(self, *, sensor_names: _abc.Iterable[_common_pb2.ResourceName] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['sensor_names', b'sensor_names'] - def ClearField(self, field_name: typing.Literal['sensor_names', b'sensor_names']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetSensorsResponse = GetSensorsResponse +Global___GetSensorsResponse: _TypeAlias = GetSensorsResponse -@typing.final -class GetReadingsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - SENSOR_NAMES_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class GetReadingsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + SENSOR_NAMES_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def name(self) -> _builtins.str: + ... + + @name.setter + @_deprecated('This field has been marked as deprecated using proto field options.') + def name(self, value: _builtins.str) -> None: + ... - @property - def sensor_names(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.ResourceName]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def sensor_names(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.ResourceName]: ... - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., sensor_names: collections.abc.Iterable[common.v1.common_pb2.ResourceName] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., sensor_names: _abc.Iterable[_common_pb2.ResourceName] | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'sensor_names', b'sensor_names'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'sensor_names', b'sensor_names']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetReadingsRequest = GetReadingsRequest +Global___GetReadingsRequest: _TypeAlias = GetReadingsRequest -@typing.final -class Readings(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class Readings(_message.Message): + DESCRIPTOR: _descriptor.Descriptor - @typing.final - class ReadingsEntry(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int - VALUE_FIELD_NUMBER: builtins.int - key: builtins.str + @_typing.final + class ReadingsEntry(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + KEY_FIELD_NUMBER: _builtins.int + VALUE_FIELD_NUMBER: _builtins.int + key: _builtins.str - @property - def value(self) -> google.protobuf.struct_pb2.Value: + @_builtins.property + def value(self) -> _struct_pb2.Value: ... - def __init__(self, *, key: builtins.str=..., value: google.protobuf.struct_pb2.Value | None=...) -> None: + def __init__(self, *, key: _builtins.str=..., value: _struct_pb2.Value | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['value', b'value'] - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['key', b'key', 'value', b'value'] - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... - NAME_FIELD_NUMBER: builtins.int - READINGS_FIELD_NUMBER: builtins.int + NAME_FIELD_NUMBER: _builtins.int + READINGS_FIELD_NUMBER: _builtins.int - @property - def name(self) -> common.v1.common_pb2.ResourceName: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def name(self) -> _common_pb2.ResourceName: ... - @property - def readings(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, google.protobuf.struct_pb2.Value]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def readings(self) -> _containers.MessageMap[_builtins.str, _struct_pb2.Value]: ... - def __init__(self, *, name: common.v1.common_pb2.ResourceName | None=..., readings: collections.abc.Mapping[builtins.str, google.protobuf.struct_pb2.Value] | None=...) -> None: + def __init__(self, *, name: _common_pb2.ResourceName | None=..., readings: _abc.Mapping[_builtins.str, _struct_pb2.Value] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def HasField(self, field_name: typing.Literal['name', b'name']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'readings', b'readings'] - def ClearField(self, field_name: typing.Literal['name', b'name', 'readings', b'readings']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Readings = Readings +Global___Readings: _TypeAlias = Readings -@typing.final -class GetReadingsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - READINGS_FIELD_NUMBER: builtins.int +@_deprecated('This message has been marked as deprecated using proto message options.') +@_typing.final +class GetReadingsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + READINGS_FIELD_NUMBER: _builtins.int - @property - def readings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Readings]: + @_builtins.property + @_deprecated('This field has been marked as deprecated using proto field options.') + def readings(self) -> _containers.RepeatedCompositeFieldContainer[Global___Readings]: ... - def __init__(self, *, readings: collections.abc.Iterable[global___Readings] | None=...) -> None: + def __init__(self, *, readings: _abc.Iterable[Global___Readings] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['readings', b'readings'] - def ClearField(self, field_name: typing.Literal['readings', b'readings']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetReadingsResponse = GetReadingsResponse \ No newline at end of file +Global___GetReadingsResponse: _TypeAlias = GetReadingsResponse \ No newline at end of file diff --git a/src/viam/gen/service/shell/v1/shell_pb2.py b/src/viam/gen/service/shell/v1/shell_pb2.py index f1fbd6403d..fc0e2e3e05 100644 --- a/src/viam/gen/service/shell/v1/shell_pb2.py +++ b/src/viam/gen/service/shell/v1/shell_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/shell/v1/shell.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/shell/v1/shell.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/service/shell/v1/shell_pb2.pyi b/src/viam/gen/service/shell/v1/shell_pb2.pyi index ef580b5672..0d6cd836bb 100644 --- a/src/viam/gen/service/shell/v1/shell_pb2.pyi +++ b/src/viam/gen/service/shell/v1/shell_pb2.pyi @@ -2,28 +2,28 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _CopyFilesSourceType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _CopyFilesSourceTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CopyFilesSourceType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _CopyFilesSourceTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_CopyFilesSourceType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor COPY_FILES_SOURCE_TYPE_UNSPECIFIED: _CopyFilesSourceType.ValueType COPY_FILES_SOURCE_TYPE_SINGLE_FILE: _CopyFilesSourceType.ValueType COPY_FILES_SOURCE_TYPE_SINGLE_DIRECTORY: _CopyFilesSourceType.ValueType @@ -40,50 +40,53 @@ COPY_FILES_SOURCE_TYPE_UNSPECIFIED: CopyFilesSourceType.ValueType COPY_FILES_SOURCE_TYPE_SINGLE_FILE: CopyFilesSourceType.ValueType COPY_FILES_SOURCE_TYPE_SINGLE_DIRECTORY: CopyFilesSourceType.ValueType COPY_FILES_SOURCE_TYPE_MULTIPLE_FILES: CopyFilesSourceType.ValueType -global___CopyFilesSourceType = CopyFilesSourceType - -@typing.final -class ShellRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - DATA_IN_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - data_in: builtins.str - - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: +Global___CopyFilesSourceType: _TypeAlias = CopyFilesSourceType + +@_typing.final +class ShellRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + DATA_IN_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + data_in: _builtins.str + + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., data_in: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., data_in: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data_in', b'data_in', 'extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['data_in', b'data_in', 'extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ShellRequest = ShellRequest +Global___ShellRequest: _TypeAlias = ShellRequest -@typing.final -class ShellResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DATA_OUT_FIELD_NUMBER: builtins.int - DATA_ERR_FIELD_NUMBER: builtins.int - EOF_FIELD_NUMBER: builtins.int - data_out: builtins.str - data_err: builtins.str - eof: builtins.bool +@_typing.final +class ShellResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DATA_OUT_FIELD_NUMBER: _builtins.int + DATA_ERR_FIELD_NUMBER: _builtins.int + EOF_FIELD_NUMBER: _builtins.int + data_out: _builtins.str + data_err: _builtins.str + eof: _builtins.bool - def __init__(self, *, data_out: builtins.str=..., data_err: builtins.str=..., eof: builtins.bool=...) -> None: + def __init__(self, *, data_out: _builtins.str=..., data_err: _builtins.str=..., eof: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['data_err', b'data_err', 'data_out', b'data_out', 'eof', b'eof'] - def ClearField(self, field_name: typing.Literal['data_err', b'data_err', 'data_out', b'data_out', 'eof', b'eof']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ShellResponse = ShellResponse +Global___ShellResponse: _TypeAlias = ShellResponse -@typing.final -class FileData(google.protobuf.message.Message): +@_typing.final +class FileData(_message.Message): """FileData contains partial (sometimes complete) information about a File. When transmitting FileData with CopyFilesToMachine and CopyFilesFromMachine, it MUST initially contain its name, size, and is_dir. Depending on whether @@ -94,214 +97,238 @@ class FileData(google.protobuf.message.Message): in order to reduce data transmission while allowing out-of-order transfers. eof must be true and its own message once no more data is to be sent for this file. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - SIZE_FIELD_NUMBER: builtins.int - IS_DIR_FIELD_NUMBER: builtins.int - DATA_FIELD_NUMBER: builtins.int - EOF_FIELD_NUMBER: builtins.int - MOD_TIME_FIELD_NUMBER: builtins.int - MODE_FIELD_NUMBER: builtins.int - name: builtins.str - size: builtins.int - is_dir: builtins.bool - data: builtins.bytes - eof: builtins.bool - mode: builtins.int - - @property - def mod_time(self) -> google.protobuf.timestamp_pb2.Timestamp: + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + SIZE_FIELD_NUMBER: _builtins.int + IS_DIR_FIELD_NUMBER: _builtins.int + DATA_FIELD_NUMBER: _builtins.int + EOF_FIELD_NUMBER: _builtins.int + MOD_TIME_FIELD_NUMBER: _builtins.int + MODE_FIELD_NUMBER: _builtins.int + name: _builtins.str + size: _builtins.int + is_dir: _builtins.bool + data: _builtins.bytes + eof: _builtins.bool + mode: _builtins.int + + @_builtins.property + def mod_time(self) -> _timestamp_pb2.Timestamp: """Note(erd): maybe support access time in the future if needed""" - def __init__(self, *, name: builtins.str=..., size: builtins.int=..., is_dir: builtins.bool=..., data: builtins.bytes=..., eof: builtins.bool=..., mod_time: google.protobuf.timestamp_pb2.Timestamp | None=..., mode: builtins.int | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., size: _builtins.int=..., is_dir: _builtins.bool=..., data: _builtins.bytes=..., eof: _builtins.bool=..., mod_time: _timestamp_pb2.Timestamp | None=..., mode: _builtins.int | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_mod_time', b'_mod_time', '_mode', b'_mode', 'mod_time', b'mod_time', 'mode', b'mode'] - def HasField(self, field_name: typing.Literal['_mod_time', b'_mod_time', '_mode', b'_mode', 'mod_time', b'mod_time', 'mode', b'mode']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_mod_time', b'_mod_time', '_mode', b'_mode', 'data', b'data', 'eof', b'eof', 'is_dir', b'is_dir', 'mod_time', b'mod_time', 'mode', b'mode', 'name', b'name', 'size', b'size'] - def ClearField(self, field_name: typing.Literal['_mod_time', b'_mod_time', '_mode', b'_mode', 'data', b'data', 'eof', b'eof', 'is_dir', b'is_dir', 'mod_time', b'mod_time', 'mode', b'mode', 'name', b'name', 'size', b'size']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__mod_time: _TypeAlias = _typing.Literal['mod_time'] + _WhichOneofArgType__mod_time: _TypeAlias = _typing.Literal['_mod_time', b'_mod_time'] + _WhichOneofReturnType__mode: _TypeAlias = _typing.Literal['mode'] + _WhichOneofArgType__mode: _TypeAlias = _typing.Literal['_mode', b'_mode'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_mod_time', b'_mod_time']) -> typing.Literal['mod_time'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__mod_time) -> _WhichOneofReturnType__mod_time | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_mode', b'_mode']) -> typing.Literal['mode'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__mode) -> _WhichOneofReturnType__mode | None: ... -global___FileData = FileData +Global___FileData: _TypeAlias = FileData -@typing.final -class CopyFilesToMachineRequestMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - SOURCE_TYPE_FIELD_NUMBER: builtins.int - DESTINATION_FIELD_NUMBER: builtins.int - PRESERVE_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class CopyFilesToMachineRequestMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + SOURCE_TYPE_FIELD_NUMBER: _builtins.int + DESTINATION_FIELD_NUMBER: _builtins.int + PRESERVE_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name is the service name.' - source_type: global___CopyFilesSourceType.ValueType + source_type: Global___CopyFilesSourceType.ValueType 'source_type is the type of files that will be transmitted in this request stream.' - destination: builtins.str + destination: _builtins.str 'destination is where the files should be placed. The receiver can choose to\n reasonably modify this destination based on its implementation semantics.\n ' - preserve: builtins.bool + preserve: _builtins.bool 'preserve indicates the the receiver should use the metadata in the file to reflect\n the same state in its filesystem as applicable.\n ' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., source_type: global___CopyFilesSourceType.ValueType=..., destination: builtins.str=..., preserve: builtins.bool=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., source_type: Global___CopyFilesSourceType.ValueType=..., destination: _builtins.str=..., preserve: _builtins.bool=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['destination', b'destination', 'extra', b'extra', 'name', b'name', 'preserve', b'preserve', 'source_type', b'source_type'] - def ClearField(self, field_name: typing.Literal['destination', b'destination', 'extra', b'extra', 'name', b'name', 'preserve', b'preserve', 'source_type', b'source_type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CopyFilesToMachineRequestMetadata = CopyFilesToMachineRequestMetadata +Global___CopyFilesToMachineRequestMetadata: _TypeAlias = CopyFilesToMachineRequestMetadata -@typing.final -class CopyFilesToMachineRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_FIELD_NUMBER: builtins.int - FILE_DATA_FIELD_NUMBER: builtins.int +@_typing.final +class CopyFilesToMachineRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + METADATA_FIELD_NUMBER: _builtins.int + FILE_DATA_FIELD_NUMBER: _builtins.int - @property - def metadata(self) -> global___CopyFilesToMachineRequestMetadata: + @_builtins.property + def metadata(self) -> Global___CopyFilesToMachineRequestMetadata: """metadata is sent first and only once.""" - @property - def file_data(self) -> global___FileData: + @_builtins.property + def file_data(self) -> Global___FileData: """file_data is sent only after metadata. All data MUST be sent in order per-file. """ - def __init__(self, *, metadata: global___CopyFilesToMachineRequestMetadata | None=..., file_data: global___FileData | None=...) -> None: + def __init__(self, *, metadata: Global___CopyFilesToMachineRequestMetadata | None=..., file_data: Global___FileData | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['file_data', b'file_data', 'metadata', b'metadata', 'request', b'request'] - def HasField(self, field_name: typing.Literal['file_data', b'file_data', 'metadata', b'metadata', 'request', b'request']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['file_data', b'file_data', 'metadata', b'metadata', 'request', b'request'] - def ClearField(self, field_name: typing.Literal['file_data', b'file_data', 'metadata', b'metadata', 'request', b'request']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_request: _TypeAlias = _typing.Literal['metadata', 'file_data'] + _WhichOneofArgType_request: _TypeAlias = _typing.Literal['request', b'request'] - def WhichOneof(self, oneof_group: typing.Literal['request', b'request']) -> typing.Literal['metadata', 'file_data'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_request) -> _WhichOneofReturnType_request | None: ... -global___CopyFilesToMachineRequest = CopyFilesToMachineRequest +Global___CopyFilesToMachineRequest: _TypeAlias = CopyFilesToMachineRequest -@typing.final -class CopyFilesToMachineResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ACK_LAST_FILE_FIELD_NUMBER: builtins.int - ack_last_file: builtins.bool +@_typing.final +class CopyFilesToMachineResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + ACK_LAST_FILE_FIELD_NUMBER: _builtins.int + ack_last_file: _builtins.bool 'value does not matter here but responses must be sent after every\n file has been received.\n ' - def __init__(self, *, ack_last_file: builtins.bool=...) -> None: + def __init__(self, *, ack_last_file: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['ack_last_file', b'ack_last_file'] - def ClearField(self, field_name: typing.Literal['ack_last_file', b'ack_last_file']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CopyFilesToMachineResponse = CopyFilesToMachineResponse +Global___CopyFilesToMachineResponse: _TypeAlias = CopyFilesToMachineResponse -@typing.final -class CopyFilesFromMachineRequestMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - PATHS_FIELD_NUMBER: builtins.int - ALLOW_RECURSION_FIELD_NUMBER: builtins.int - PRESERVE_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class CopyFilesFromMachineRequestMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + PATHS_FIELD_NUMBER: _builtins.int + ALLOW_RECURSION_FIELD_NUMBER: _builtins.int + PRESERVE_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name is the service name.' - allow_recursion: builtins.bool + allow_recursion: _builtins.bool 'allow_recursion indicates if directories should be recursed into. If\n a directory is encountered and this is false, an error MUST occur.\n ' - preserve: builtins.bool + preserve: _builtins.bool "preserve indicates the the receiver should provide the metadata in the file\n to reflect the same state in the sender's filesystem as applicable.\n " - @property - def paths(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def paths(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: """paths are the paths to copy from and send back over the wire.""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., paths: collections.abc.Iterable[builtins.str] | None=..., allow_recursion: builtins.bool=..., preserve: builtins.bool=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., paths: _abc.Iterable[_builtins.str] | None=..., allow_recursion: _builtins.bool=..., preserve: _builtins.bool=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['allow_recursion', b'allow_recursion', 'extra', b'extra', 'name', b'name', 'paths', b'paths', 'preserve', b'preserve'] - def ClearField(self, field_name: typing.Literal['allow_recursion', b'allow_recursion', 'extra', b'extra', 'name', b'name', 'paths', b'paths', 'preserve', b'preserve']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CopyFilesFromMachineRequestMetadata = CopyFilesFromMachineRequestMetadata +Global___CopyFilesFromMachineRequestMetadata: _TypeAlias = CopyFilesFromMachineRequestMetadata -@typing.final -class CopyFilesFromMachineRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_FIELD_NUMBER: builtins.int - ACK_LAST_FILE_FIELD_NUMBER: builtins.int - ack_last_file: builtins.bool +@_typing.final +class CopyFilesFromMachineRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + METADATA_FIELD_NUMBER: _builtins.int + ACK_LAST_FILE_FIELD_NUMBER: _builtins.int + ack_last_file: _builtins.bool 'ack_last_file is sent only after metadata and after each file has been received.\n The value does not matter.\n ' - @property - def metadata(self) -> global___CopyFilesFromMachineRequestMetadata: + @_builtins.property + def metadata(self) -> Global___CopyFilesFromMachineRequestMetadata: """metadata is sent first and only once.""" - def __init__(self, *, metadata: global___CopyFilesFromMachineRequestMetadata | None=..., ack_last_file: builtins.bool=...) -> None: + def __init__(self, *, metadata: Global___CopyFilesFromMachineRequestMetadata | None=..., ack_last_file: _builtins.bool=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['ack_last_file', b'ack_last_file', 'metadata', b'metadata', 'request', b'request'] - def HasField(self, field_name: typing.Literal['ack_last_file', b'ack_last_file', 'metadata', b'metadata', 'request', b'request']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['ack_last_file', b'ack_last_file', 'metadata', b'metadata', 'request', b'request'] - def ClearField(self, field_name: typing.Literal['ack_last_file', b'ack_last_file', 'metadata', b'metadata', 'request', b'request']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_request: _TypeAlias = _typing.Literal['metadata', 'ack_last_file'] + _WhichOneofArgType_request: _TypeAlias = _typing.Literal['request', b'request'] - def WhichOneof(self, oneof_group: typing.Literal['request', b'request']) -> typing.Literal['metadata', 'ack_last_file'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_request) -> _WhichOneofReturnType_request | None: ... -global___CopyFilesFromMachineRequest = CopyFilesFromMachineRequest +Global___CopyFilesFromMachineRequest: _TypeAlias = CopyFilesFromMachineRequest -@typing.final -class CopyFilesFromMachineResponseMetadata(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SOURCE_TYPE_FIELD_NUMBER: builtins.int - source_type: global___CopyFilesSourceType.ValueType +@_typing.final +class CopyFilesFromMachineResponseMetadata(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + SOURCE_TYPE_FIELD_NUMBER: _builtins.int + source_type: Global___CopyFilesSourceType.ValueType 'source_type is the type of files that will be transmitted in this response stream.' - def __init__(self, *, source_type: global___CopyFilesSourceType.ValueType=...) -> None: + def __init__(self, *, source_type: Global___CopyFilesSourceType.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['source_type', b'source_type'] - def ClearField(self, field_name: typing.Literal['source_type', b'source_type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CopyFilesFromMachineResponseMetadata = CopyFilesFromMachineResponseMetadata +Global___CopyFilesFromMachineResponseMetadata: _TypeAlias = CopyFilesFromMachineResponseMetadata -@typing.final -class CopyFilesFromMachineResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_FIELD_NUMBER: builtins.int - FILE_DATA_FIELD_NUMBER: builtins.int +@_typing.final +class CopyFilesFromMachineResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + METADATA_FIELD_NUMBER: _builtins.int + FILE_DATA_FIELD_NUMBER: _builtins.int - @property - def metadata(self) -> global___CopyFilesFromMachineResponseMetadata: + @_builtins.property + def metadata(self) -> Global___CopyFilesFromMachineResponseMetadata: """metadata is sent first and only once.""" - @property - def file_data(self) -> global___FileData: + @_builtins.property + def file_data(self) -> Global___FileData: """file_data is sent only after metadata. All data MUST be sent in order per-file. """ - def __init__(self, *, metadata: global___CopyFilesFromMachineResponseMetadata | None=..., file_data: global___FileData | None=...) -> None: + def __init__(self, *, metadata: Global___CopyFilesFromMachineResponseMetadata | None=..., file_data: Global___FileData | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['file_data', b'file_data', 'metadata', b'metadata', 'response', b'response'] - def HasField(self, field_name: typing.Literal['file_data', b'file_data', 'metadata', b'metadata', 'response', b'response']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['file_data', b'file_data', 'metadata', b'metadata', 'response', b'response'] - def ClearField(self, field_name: typing.Literal['file_data', b'file_data', 'metadata', b'metadata', 'response', b'response']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType_response: _TypeAlias = _typing.Literal['metadata', 'file_data'] + _WhichOneofArgType_response: _TypeAlias = _typing.Literal['response', b'response'] - def WhichOneof(self, oneof_group: typing.Literal['response', b'response']) -> typing.Literal['metadata', 'file_data'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType_response) -> _WhichOneofReturnType_response | None: ... -global___CopyFilesFromMachineResponse = CopyFilesFromMachineResponse \ No newline at end of file +Global___CopyFilesFromMachineResponse: _TypeAlias = CopyFilesFromMachineResponse \ No newline at end of file diff --git a/src/viam/gen/service/slam/v1/slam_pb2.py b/src/viam/gen/service/slam/v1/slam_pb2.py index 99fad7b096..a71d978bb0 100644 --- a/src/viam/gen/service/slam/v1/slam_pb2.py +++ b/src/viam/gen/service/slam/v1/slam_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/slam/v1/slam.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/slam/v1/slam.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/service/slam/v1/slam_pb2.pyi b/src/viam/gen/service/slam/v1/slam_pb2.pyi index c1141f3343..a12fafc5c3 100644 --- a/src/viam/gen/service/slam/v1/slam_pb2.pyi +++ b/src/viam/gen/service/slam/v1/slam_pb2.pyi @@ -2,27 +2,27 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from .... import common -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _MappingMode: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _MappingModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MappingMode.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _MappingModeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_MappingMode.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor MAPPING_MODE_UNSPECIFIED: _MappingMode.ValueType MAPPING_MODE_CREATE_NEW_MAP: _MappingMode.ValueType MAPPING_MODE_LOCALIZE_ONLY: _MappingMode.ValueType @@ -37,14 +37,14 @@ MAPPING_MODE_UNSPECIFIED: MappingMode.ValueType MAPPING_MODE_CREATE_NEW_MAP: MappingMode.ValueType MAPPING_MODE_LOCALIZE_ONLY: MappingMode.ValueType MAPPING_MODE_UPDATE_EXISTING_MAP: MappingMode.ValueType -global___MappingMode = MappingMode +Global___MappingMode: _TypeAlias = MappingMode class _SensorType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _SensorTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_SensorType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _SensorTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_SensorType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor SENSOR_TYPE_UNSPECIFIED: _SensorType.ValueType SENSOR_TYPE_CAMERA: _SensorType.ValueType SENSOR_TYPE_MOVEMENT_SENSOR: _SensorType.ValueType @@ -54,160 +54,176 @@ class SensorType(_SensorType, metaclass=_SensorTypeEnumTypeWrapper): SENSOR_TYPE_UNSPECIFIED: SensorType.ValueType SENSOR_TYPE_CAMERA: SensorType.ValueType SENSOR_TYPE_MOVEMENT_SENSOR: SensorType.ValueType -global___SensorType = SensorType +Global___SensorType: _TypeAlias = SensorType -@typing.final -class GetPositionRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPositionRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of slam service' - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionRequest = GetPositionRequest +Global___GetPositionRequest: _TypeAlias = GetPositionRequest -@typing.final -class GetPositionResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POSE_FIELD_NUMBER: builtins.int +@_typing.final +class GetPositionResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POSE_FIELD_NUMBER: _builtins.int - @property - def pose(self) -> common.v1.common_pb2.Pose: + @_builtins.property + def pose(self) -> _common_pb2.Pose: """Current position of the specified component in the SLAM Map""" - def __init__(self, *, pose: common.v1.common_pb2.Pose | None=...) -> None: + def __init__(self, *, pose: _common_pb2.Pose | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def HasField(self, field_name: typing.Literal['pose', b'pose']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['pose', b'pose'] - def ClearField(self, field_name: typing.Literal['pose', b'pose']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPositionResponse = GetPositionResponse +Global___GetPositionResponse: _TypeAlias = GetPositionResponse -@typing.final -class GetPointCloudMapRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - RETURN_EDITED_MAP_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPointCloudMapRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + RETURN_EDITED_MAP_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of slam service' - return_edited_map: builtins.bool + return_edited_map: _builtins.bool 'For SLAM services that implement handling an edited map, this boolean\n should indicate whether to return that edited map. If the SLAM service\n does not handle edited maps, the unedited map will be returned instead.\n ' - def __init__(self, *, name: builtins.str=..., return_edited_map: builtins.bool | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., return_edited_map: _builtins.bool | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_return_edited_map', b'_return_edited_map', 'return_edited_map', b'return_edited_map'] - def HasField(self, field_name: typing.Literal['_return_edited_map', b'_return_edited_map', 'return_edited_map', b'return_edited_map']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_return_edited_map', b'_return_edited_map', 'name', b'name', 'return_edited_map', b'return_edited_map'] - def ClearField(self, field_name: typing.Literal['_return_edited_map', b'_return_edited_map', 'name', b'name', 'return_edited_map', b'return_edited_map']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__return_edited_map: _TypeAlias = _typing.Literal['return_edited_map'] + _WhichOneofArgType__return_edited_map: _TypeAlias = _typing.Literal['_return_edited_map', b'_return_edited_map'] - def WhichOneof(self, oneof_group: typing.Literal['_return_edited_map', b'_return_edited_map']) -> typing.Literal['return_edited_map'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__return_edited_map) -> _WhichOneofReturnType__return_edited_map | None: ... -global___GetPointCloudMapRequest = GetPointCloudMapRequest +Global___GetPointCloudMapRequest: _TypeAlias = GetPointCloudMapRequest -@typing.final -class GetPointCloudMapResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - POINT_CLOUD_PCD_CHUNK_FIELD_NUMBER: builtins.int - point_cloud_pcd_chunk: builtins.bytes +@_typing.final +class GetPointCloudMapResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + POINT_CLOUD_PCD_CHUNK_FIELD_NUMBER: _builtins.int + point_cloud_pcd_chunk: _builtins.bytes 'One chunk of the PointCloud.\n For a given GetPointCloudMap request, concatenating all\n GetPointCloudMapResponse.point_cloud_pcd_chunk values in the\n order received result in the complete pointcloud in standard PCD\n format where XY is the ground plane and positive Z is up, following\n the Right Hand Rule.\n\n Read more about the pointcloud format\n [in the docs](https://pointclouds.org/documentation/tutorials/pcd_file_format.html)\n\n Viam expects pointcloud data with fields "x y z" or "x y z rgb", and for\n this to be specified in the pointcloud header in the FIELDS entry. If color\n data is included in the pointcloud, Viam\'s services assume that the color\n value encodes a confidence score for that data point. Viam expects the\n confidence score to be encoded in the blue parameter of the RGB value, on a\n scale from 1-100.\n\n Pointclouds are little endian encoded.\n ' - def __init__(self, *, point_cloud_pcd_chunk: builtins.bytes=...) -> None: + def __init__(self, *, point_cloud_pcd_chunk: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['point_cloud_pcd_chunk', b'point_cloud_pcd_chunk'] - def ClearField(self, field_name: typing.Literal['point_cloud_pcd_chunk', b'point_cloud_pcd_chunk']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPointCloudMapResponse = GetPointCloudMapResponse +Global___GetPointCloudMapResponse: _TypeAlias = GetPointCloudMapResponse -@typing.final -class GetInternalStateRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetInternalStateRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of slam service' - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetInternalStateRequest = GetInternalStateRequest +Global___GetInternalStateRequest: _TypeAlias = GetInternalStateRequest -@typing.final -class GetInternalStateResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INTERNAL_STATE_CHUNK_FIELD_NUMBER: builtins.int - internal_state_chunk: builtins.bytes +@_typing.final +class GetInternalStateResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + INTERNAL_STATE_CHUNK_FIELD_NUMBER: _builtins.int + internal_state_chunk: _builtins.bytes 'Chunk of the internal state of the SLAM algorithm required to continue\n mapping/localization\n ' - def __init__(self, *, internal_state_chunk: builtins.bytes=...) -> None: + def __init__(self, *, internal_state_chunk: _builtins.bytes=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['internal_state_chunk', b'internal_state_chunk'] - def ClearField(self, field_name: typing.Literal['internal_state_chunk', b'internal_state_chunk']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetInternalStateResponse = GetInternalStateResponse +Global___GetInternalStateResponse: _TypeAlias = GetInternalStateResponse -@typing.final -class GetPropertiesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPropertiesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the slam service' - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesRequest = GetPropertiesRequest +Global___GetPropertiesRequest: _TypeAlias = GetPropertiesRequest -@typing.final -class GetPropertiesResponse(google.protobuf.message.Message): +@_typing.final +class GetPropertiesResponse(_message.Message): """Returns properties information for the named slam service""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLOUD_SLAM_FIELD_NUMBER: builtins.int - MAPPING_MODE_FIELD_NUMBER: builtins.int - INTERNAL_STATE_FILE_TYPE_FIELD_NUMBER: builtins.int - SENSOR_INFO_FIELD_NUMBER: builtins.int - cloud_slam: builtins.bool - mapping_mode: global___MappingMode.ValueType - internal_state_file_type: builtins.str + DESCRIPTOR: _descriptor.Descriptor + CLOUD_SLAM_FIELD_NUMBER: _builtins.int + MAPPING_MODE_FIELD_NUMBER: _builtins.int + INTERNAL_STATE_FILE_TYPE_FIELD_NUMBER: _builtins.int + SENSOR_INFO_FIELD_NUMBER: _builtins.int + cloud_slam: _builtins.bool + mapping_mode: Global___MappingMode.ValueType + internal_state_file_type: _builtins.str - @property - def sensor_info(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SensorInfo]: + @_builtins.property + def sensor_info(self) -> _containers.RepeatedCompositeFieldContainer[Global___SensorInfo]: ... - def __init__(self, *, cloud_slam: builtins.bool=..., mapping_mode: global___MappingMode.ValueType=..., internal_state_file_type: builtins.str | None=..., sensor_info: collections.abc.Iterable[global___SensorInfo] | None=...) -> None: + def __init__(self, *, cloud_slam: _builtins.bool=..., mapping_mode: Global___MappingMode.ValueType=..., internal_state_file_type: _builtins.str | None=..., sensor_info: _abc.Iterable[Global___SensorInfo] | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_internal_state_file_type', b'_internal_state_file_type', 'internal_state_file_type', b'internal_state_file_type'] - def HasField(self, field_name: typing.Literal['_internal_state_file_type', b'_internal_state_file_type', 'internal_state_file_type', b'internal_state_file_type']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_internal_state_file_type', b'_internal_state_file_type', 'cloud_slam', b'cloud_slam', 'internal_state_file_type', b'internal_state_file_type', 'mapping_mode', b'mapping_mode', 'sensor_info', b'sensor_info'] - def ClearField(self, field_name: typing.Literal['_internal_state_file_type', b'_internal_state_file_type', 'cloud_slam', b'cloud_slam', 'internal_state_file_type', b'internal_state_file_type', 'mapping_mode', b'mapping_mode', 'sensor_info', b'sensor_info']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__internal_state_file_type: _TypeAlias = _typing.Literal['internal_state_file_type'] + _WhichOneofArgType__internal_state_file_type: _TypeAlias = _typing.Literal['_internal_state_file_type', b'_internal_state_file_type'] - def WhichOneof(self, oneof_group: typing.Literal['_internal_state_file_type', b'_internal_state_file_type']) -> typing.Literal['internal_state_file_type'] | None: + def WhichOneof(self, oneof_group: _WhichOneofArgType__internal_state_file_type) -> _WhichOneofReturnType__internal_state_file_type | None: ... -global___GetPropertiesResponse = GetPropertiesResponse +Global___GetPropertiesResponse: _TypeAlias = GetPropertiesResponse -@typing.final -class SensorInfo(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - TYPE_FIELD_NUMBER: builtins.int - name: builtins.str - type: global___SensorType.ValueType +@_typing.final +class SensorInfo(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + TYPE_FIELD_NUMBER: _builtins.int + name: _builtins.str + type: Global___SensorType.ValueType - def __init__(self, *, name: builtins.str=..., type: global___SensorType.ValueType=...) -> None: + def __init__(self, *, name: _builtins.str=..., type: Global___SensorType.ValueType=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'type', b'type'] - def ClearField(self, field_name: typing.Literal['name', b'name', 'type', b'type']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SensorInfo = SensorInfo \ No newline at end of file +Global___SensorInfo: _TypeAlias = SensorInfo \ No newline at end of file diff --git a/src/viam/gen/service/video/v1/video_pb2.py b/src/viam/gen/service/video/v1/video_pb2.py index 55a607ee0a..1b18833d42 100644 --- a/src/viam/gen/service/video/v1/video_pb2.py +++ b/src/viam/gen/service/video/v1/video_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/video/v1/video.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/video/v1/video.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/service/video/v1/video_pb2.pyi b/src/viam/gen/service/video/v1/video_pb2.pyi index f71d6413e0..0e393eabcd 100644 --- a/src/viam/gen/service/video/v1/video_pb2.pyi +++ b/src/viam/gen/service/video/v1/video_pb2.pyi @@ -2,71 +2,79 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.message -import google.protobuf.struct_pb2 -import google.protobuf.timestamp_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor -@typing.final -class GetVideoRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - START_TIMESTAMP_FIELD_NUMBER: builtins.int - END_TIMESTAMP_FIELD_NUMBER: builtins.int - VIDEO_CODEC_FIELD_NUMBER: builtins.int - VIDEO_CONTAINER_FIELD_NUMBER: builtins.int - REQUEST_ID_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetVideoRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + START_TIMESTAMP_FIELD_NUMBER: _builtins.int + END_TIMESTAMP_FIELD_NUMBER: _builtins.int + VIDEO_CODEC_FIELD_NUMBER: _builtins.int + VIDEO_CONTAINER_FIELD_NUMBER: _builtins.int + REQUEST_ID_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the video source' - video_codec: builtins.str + video_codec: _builtins.str 'Codec for the video retrieval (e.g., "h264", "h265")' - video_container: builtins.str + video_container: _builtins.str 'Container format for the video retrieval (e.g., "mp4", "fmp4")' - request_id: builtins.str + request_id: _builtins.str 'To match a request to its responses' - @property - def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def start_timestamp(self) -> _timestamp_pb2.Timestamp: """Start time for the video retrieval""" - @property - def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: + @_builtins.property + def end_timestamp(self) -> _timestamp_pb2.Timestamp: """End time for the video retrieval""" - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., start_timestamp: google.protobuf.timestamp_pb2.Timestamp | None=..., end_timestamp: google.protobuf.timestamp_pb2.Timestamp | None=..., video_codec: builtins.str=..., video_container: builtins.str=..., request_id: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., start_timestamp: _timestamp_pb2.Timestamp | None=..., end_timestamp: _timestamp_pb2.Timestamp | None=..., video_codec: _builtins.str=..., video_container: _builtins.str=..., request_id: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['end_timestamp', b'end_timestamp', 'extra', b'extra', 'start_timestamp', b'start_timestamp'] - def HasField(self, field_name: typing.Literal['end_timestamp', b'end_timestamp', 'extra', b'extra', 'start_timestamp', b'start_timestamp']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['end_timestamp', b'end_timestamp', 'extra', b'extra', 'name', b'name', 'request_id', b'request_id', 'start_timestamp', b'start_timestamp', 'video_codec', b'video_codec', 'video_container', b'video_container'] - def ClearField(self, field_name: typing.Literal['end_timestamp', b'end_timestamp', 'extra', b'extra', 'name', b'name', 'request_id', b'request_id', 'start_timestamp', b'start_timestamp', 'video_codec', b'video_codec', 'video_container', b'video_container']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetVideoRequest = GetVideoRequest +Global___GetVideoRequest: _TypeAlias = GetVideoRequest -@typing.final -class GetVideoResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VIDEO_DATA_FIELD_NUMBER: builtins.int - VIDEO_CONTAINER_FIELD_NUMBER: builtins.int - REQUEST_ID_FIELD_NUMBER: builtins.int - video_data: builtins.bytes +@_typing.final +class GetVideoResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + VIDEO_DATA_FIELD_NUMBER: _builtins.int + VIDEO_CONTAINER_FIELD_NUMBER: _builtins.int + REQUEST_ID_FIELD_NUMBER: _builtins.int + video_data: _builtins.bytes 'Video data chunk' - video_container: builtins.str + video_container: _builtins.str 'Container format (e.g., "mp4", "fmp4")' - request_id: builtins.str + request_id: _builtins.str 'Request ID to match this response to its request' - def __init__(self, *, video_data: builtins.bytes=..., video_container: builtins.str=..., request_id: builtins.str=...) -> None: + def __init__(self, *, video_data: _builtins.bytes=..., video_container: _builtins.str=..., request_id: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['request_id', b'request_id', 'video_container', b'video_container', 'video_data', b'video_data'] - def ClearField(self, field_name: typing.Literal['request_id', b'request_id', 'video_container', b'video_container', 'video_data', b'video_data']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetVideoResponse = GetVideoResponse \ No newline at end of file +Global___GetVideoResponse: _TypeAlias = GetVideoResponse \ No newline at end of file diff --git a/src/viam/gen/service/vision/v1/vision_pb2.py b/src/viam/gen/service/vision/v1/vision_pb2.py index a6fc4c0745..b63b5a8e12 100644 --- a/src/viam/gen/service/vision/v1/vision_pb2.py +++ b/src/viam/gen/service/vision/v1/vision_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/vision/v1/vision.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/vision/v1/vision.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from ....component.camera.v1 import camera_pb2 as component_dot_camera_dot_v1_dot_camera__pb2 diff --git a/src/viam/gen/service/vision/v1/vision_pb2.pyi b/src/viam/gen/service/vision/v1/vision_pb2.pyi index 8989ebbaf0..2bf98d6251 100644 --- a/src/viam/gen/service/vision/v1/vision_pb2.pyi +++ b/src/viam/gen/service/vision/v1/vision_pb2.pyi @@ -2,453 +2,499 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from .... import common -from .... import component -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import google.protobuf.struct_pb2 -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class GetDetectionsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - IMAGE_FIELD_NUMBER: builtins.int - WIDTH_FIELD_NUMBER: builtins.int - HEIGHT_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from component.camera.v1 import camera_pb2 as _camera_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class GetDetectionsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + IMAGE_FIELD_NUMBER: _builtins.int + WIDTH_FIELD_NUMBER: _builtins.int + HEIGHT_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the vision service' - image: builtins.bytes + image: _builtins.bytes 'the image, encoded as bytes' - width: builtins.int + width: _builtins.int 'the width of the image' - height: builtins.int + height: _builtins.int 'the height of the image' - mime_type: builtins.str + mime_type: _builtins.str 'the actual MIME type of image' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., image: builtins.bytes=..., width: builtins.int=..., height: builtins.int=..., mime_type: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., image: _builtins.bytes=..., width: _builtins.int=..., height: _builtins.int=..., mime_type: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'height', b'height', 'image', b'image', 'mime_type', b'mime_type', 'name', b'name', 'width', b'width'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'height', b'height', 'image', b'image', 'mime_type', b'mime_type', 'name', b'name', 'width', b'width']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetDetectionsRequest = GetDetectionsRequest +Global___GetDetectionsRequest: _TypeAlias = GetDetectionsRequest -@typing.final -class GetDetectionsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DETECTIONS_FIELD_NUMBER: builtins.int +@_typing.final +class GetDetectionsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DETECTIONS_FIELD_NUMBER: _builtins.int - @property - def detections(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Detection]: + @_builtins.property + def detections(self) -> _containers.RepeatedCompositeFieldContainer[Global___Detection]: """the bounding boxes and labels""" - def __init__(self, *, detections: collections.abc.Iterable[global___Detection] | None=...) -> None: + def __init__(self, *, detections: _abc.Iterable[Global___Detection] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['detections', b'detections'] - def ClearField(self, field_name: typing.Literal['detections', b'detections']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetDetectionsResponse = GetDetectionsResponse +Global___GetDetectionsResponse: _TypeAlias = GetDetectionsResponse -@typing.final -class GetDetectionsFromCameraRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - CAMERA_NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetDetectionsFromCameraRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + CAMERA_NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the vision service' - camera_name: builtins.str + camera_name: _builtins.str 'name of camera source to use as input' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., camera_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., camera_name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['camera_name', b'camera_name', 'extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['camera_name', b'camera_name', 'extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetDetectionsFromCameraRequest = GetDetectionsFromCameraRequest +Global___GetDetectionsFromCameraRequest: _TypeAlias = GetDetectionsFromCameraRequest -@typing.final -class GetDetectionsFromCameraResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DETECTIONS_FIELD_NUMBER: builtins.int +@_typing.final +class GetDetectionsFromCameraResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + DETECTIONS_FIELD_NUMBER: _builtins.int - @property - def detections(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Detection]: + @_builtins.property + def detections(self) -> _containers.RepeatedCompositeFieldContainer[Global___Detection]: """the bounding boxes and labels""" - def __init__(self, *, detections: collections.abc.Iterable[global___Detection] | None=...) -> None: + def __init__(self, *, detections: _abc.Iterable[Global___Detection] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['detections', b'detections'] - def ClearField(self, field_name: typing.Literal['detections', b'detections']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetDetectionsFromCameraResponse = GetDetectionsFromCameraResponse +Global___GetDetectionsFromCameraResponse: _TypeAlias = GetDetectionsFromCameraResponse -@typing.final -class Detection(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - X_MIN_FIELD_NUMBER: builtins.int - Y_MIN_FIELD_NUMBER: builtins.int - X_MAX_FIELD_NUMBER: builtins.int - Y_MAX_FIELD_NUMBER: builtins.int - CONFIDENCE_FIELD_NUMBER: builtins.int - CLASS_NAME_FIELD_NUMBER: builtins.int - X_MIN_NORMALIZED_FIELD_NUMBER: builtins.int - Y_MIN_NORMALIZED_FIELD_NUMBER: builtins.int - X_MAX_NORMALIZED_FIELD_NUMBER: builtins.int - Y_MAX_NORMALIZED_FIELD_NUMBER: builtins.int - x_min: builtins.int +@_typing.final +class Detection(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + X_MIN_FIELD_NUMBER: _builtins.int + Y_MIN_FIELD_NUMBER: _builtins.int + X_MAX_FIELD_NUMBER: _builtins.int + Y_MAX_FIELD_NUMBER: _builtins.int + CONFIDENCE_FIELD_NUMBER: _builtins.int + CLASS_NAME_FIELD_NUMBER: _builtins.int + X_MIN_NORMALIZED_FIELD_NUMBER: _builtins.int + Y_MIN_NORMALIZED_FIELD_NUMBER: _builtins.int + X_MAX_NORMALIZED_FIELD_NUMBER: _builtins.int + Y_MAX_NORMALIZED_FIELD_NUMBER: _builtins.int + x_min: _builtins.int 'the four corners of the box' - y_min: builtins.int - x_max: builtins.int - y_max: builtins.int - confidence: builtins.float + y_min: _builtins.int + x_max: _builtins.int + y_max: _builtins.int + confidence: _builtins.float 'the confidence of the detection' - class_name: builtins.str + class_name: _builtins.str 'label associated with the detected object' - x_min_normalized: builtins.float + x_min_normalized: _builtins.float 'the four corners of the box, in proportion to the respective image dimension' - y_min_normalized: builtins.float - x_max_normalized: builtins.float - y_max_normalized: builtins.float + y_min_normalized: _builtins.float + x_max_normalized: _builtins.float + y_max_normalized: _builtins.float - def __init__(self, *, x_min: builtins.int | None=..., y_min: builtins.int | None=..., x_max: builtins.int | None=..., y_max: builtins.int | None=..., confidence: builtins.float=..., class_name: builtins.str=..., x_min_normalized: builtins.float | None=..., y_min_normalized: builtins.float | None=..., x_max_normalized: builtins.float | None=..., y_max_normalized: builtins.float | None=...) -> None: + def __init__(self, *, x_min: _builtins.int | None=..., y_min: _builtins.int | None=..., x_max: _builtins.int | None=..., y_max: _builtins.int | None=..., confidence: _builtins.float=..., class_name: _builtins.str=..., x_min_normalized: _builtins.float | None=..., y_min_normalized: _builtins.float | None=..., x_max_normalized: _builtins.float | None=..., y_max_normalized: _builtins.float | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['_x_max', b'_x_max', '_x_max_normalized', b'_x_max_normalized', '_x_min', b'_x_min', '_x_min_normalized', b'_x_min_normalized', '_y_max', b'_y_max', '_y_max_normalized', b'_y_max_normalized', '_y_min', b'_y_min', '_y_min_normalized', b'_y_min_normalized', 'x_max', b'x_max', 'x_max_normalized', b'x_max_normalized', 'x_min', b'x_min', 'x_min_normalized', b'x_min_normalized', 'y_max', b'y_max', 'y_max_normalized', b'y_max_normalized', 'y_min', b'y_min', 'y_min_normalized', b'y_min_normalized'] - def HasField(self, field_name: typing.Literal['_x_max', b'_x_max', '_x_max_normalized', b'_x_max_normalized', '_x_min', b'_x_min', '_x_min_normalized', b'_x_min_normalized', '_y_max', b'_y_max', '_y_max_normalized', b'_y_max_normalized', '_y_min', b'_y_min', '_y_min_normalized', b'_y_min_normalized', 'x_max', b'x_max', 'x_max_normalized', b'x_max_normalized', 'x_min', b'x_min', 'x_min_normalized', b'x_min_normalized', 'y_max', b'y_max', 'y_max_normalized', b'y_max_normalized', 'y_min', b'y_min', 'y_min_normalized', b'y_min_normalized']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['_x_max', b'_x_max', '_x_max_normalized', b'_x_max_normalized', '_x_min', b'_x_min', '_x_min_normalized', b'_x_min_normalized', '_y_max', b'_y_max', '_y_max_normalized', b'_y_max_normalized', '_y_min', b'_y_min', '_y_min_normalized', b'_y_min_normalized', 'class_name', b'class_name', 'confidence', b'confidence', 'x_max', b'x_max', 'x_max_normalized', b'x_max_normalized', 'x_min', b'x_min', 'x_min_normalized', b'x_min_normalized', 'y_max', b'y_max', 'y_max_normalized', b'y_max_normalized', 'y_min', b'y_min', 'y_min_normalized', b'y_min_normalized'] - def ClearField(self, field_name: typing.Literal['_x_max', b'_x_max', '_x_max_normalized', b'_x_max_normalized', '_x_min', b'_x_min', '_x_min_normalized', b'_x_min_normalized', '_y_max', b'_y_max', '_y_max_normalized', b'_y_max_normalized', '_y_min', b'_y_min', '_y_min_normalized', b'_y_min_normalized', 'class_name', b'class_name', 'confidence', b'confidence', 'x_max', b'x_max', 'x_max_normalized', b'x_max_normalized', 'x_min', b'x_min', 'x_min_normalized', b'x_min_normalized', 'y_max', b'y_max', 'y_max_normalized', b'y_max_normalized', 'y_min', b'y_min', 'y_min_normalized', b'y_min_normalized']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... + _WhichOneofReturnType__x_max: _TypeAlias = _typing.Literal['x_max'] + _WhichOneofArgType__x_max: _TypeAlias = _typing.Literal['_x_max', b'_x_max'] + _WhichOneofReturnType__x_max_normalized: _TypeAlias = _typing.Literal['x_max_normalized'] + _WhichOneofArgType__x_max_normalized: _TypeAlias = _typing.Literal['_x_max_normalized', b'_x_max_normalized'] + _WhichOneofReturnType__x_min: _TypeAlias = _typing.Literal['x_min'] + _WhichOneofArgType__x_min: _TypeAlias = _typing.Literal['_x_min', b'_x_min'] + _WhichOneofReturnType__x_min_normalized: _TypeAlias = _typing.Literal['x_min_normalized'] + _WhichOneofArgType__x_min_normalized: _TypeAlias = _typing.Literal['_x_min_normalized', b'_x_min_normalized'] + _WhichOneofReturnType__y_max: _TypeAlias = _typing.Literal['y_max'] + _WhichOneofArgType__y_max: _TypeAlias = _typing.Literal['_y_max', b'_y_max'] + _WhichOneofReturnType__y_max_normalized: _TypeAlias = _typing.Literal['y_max_normalized'] + _WhichOneofArgType__y_max_normalized: _TypeAlias = _typing.Literal['_y_max_normalized', b'_y_max_normalized'] + _WhichOneofReturnType__y_min: _TypeAlias = _typing.Literal['y_min'] + _WhichOneofArgType__y_min: _TypeAlias = _typing.Literal['_y_min', b'_y_min'] + _WhichOneofReturnType__y_min_normalized: _TypeAlias = _typing.Literal['y_min_normalized'] + _WhichOneofArgType__y_min_normalized: _TypeAlias = _typing.Literal['_y_min_normalized', b'_y_min_normalized'] - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_x_max', b'_x_max']) -> typing.Literal['x_max'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__x_max) -> _WhichOneofReturnType__x_max | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_x_max_normalized', b'_x_max_normalized']) -> typing.Literal['x_max_normalized'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__x_max_normalized) -> _WhichOneofReturnType__x_max_normalized | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_x_min', b'_x_min']) -> typing.Literal['x_min'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__x_min) -> _WhichOneofReturnType__x_min | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_x_min_normalized', b'_x_min_normalized']) -> typing.Literal['x_min_normalized'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__x_min_normalized) -> _WhichOneofReturnType__x_min_normalized | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_y_max', b'_y_max']) -> typing.Literal['y_max'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__y_max) -> _WhichOneofReturnType__y_max | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_y_max_normalized', b'_y_max_normalized']) -> typing.Literal['y_max_normalized'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__y_max_normalized) -> _WhichOneofReturnType__y_max_normalized | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_y_min', b'_y_min']) -> typing.Literal['y_min'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__y_min) -> _WhichOneofReturnType__y_min | None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['_y_min_normalized', b'_y_min_normalized']) -> typing.Literal['y_min_normalized'] | None: + @_typing.overload + def WhichOneof(self, oneof_group: _WhichOneofArgType__y_min_normalized) -> _WhichOneofReturnType__y_min_normalized | None: ... -global___Detection = Detection +Global___Detection: _TypeAlias = Detection -@typing.final -class GetClassificationsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - IMAGE_FIELD_NUMBER: builtins.int - WIDTH_FIELD_NUMBER: builtins.int - HEIGHT_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - N_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetClassificationsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + IMAGE_FIELD_NUMBER: _builtins.int + WIDTH_FIELD_NUMBER: _builtins.int + HEIGHT_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + N_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the vision service' - image: builtins.bytes + image: _builtins.bytes 'the image encoded as bytes' - width: builtins.int + width: _builtins.int 'the width of the image' - height: builtins.int + height: _builtins.int 'the height of the image' - mime_type: builtins.str + mime_type: _builtins.str 'the actual MIME type of image' - n: builtins.int + n: _builtins.int 'the number of classifications desired' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., image: builtins.bytes=..., width: builtins.int=..., height: builtins.int=..., mime_type: builtins.str=..., n: builtins.int=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., image: _builtins.bytes=..., width: _builtins.int=..., height: _builtins.int=..., mime_type: _builtins.str=..., n: _builtins.int=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'height', b'height', 'image', b'image', 'mime_type', b'mime_type', 'n', b'n', 'name', b'name', 'width', b'width'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'height', b'height', 'image', b'image', 'mime_type', b'mime_type', 'n', b'n', 'name', b'name', 'width', b'width']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetClassificationsRequest = GetClassificationsRequest +Global___GetClassificationsRequest: _TypeAlias = GetClassificationsRequest -@typing.final -class GetClassificationsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLASSIFICATIONS_FIELD_NUMBER: builtins.int +@_typing.final +class GetClassificationsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CLASSIFICATIONS_FIELD_NUMBER: _builtins.int - @property - def classifications(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Classification]: + @_builtins.property + def classifications(self) -> _containers.RepeatedCompositeFieldContainer[Global___Classification]: ... - def __init__(self, *, classifications: collections.abc.Iterable[global___Classification] | None=...) -> None: + def __init__(self, *, classifications: _abc.Iterable[Global___Classification] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['classifications', b'classifications'] - def ClearField(self, field_name: typing.Literal['classifications', b'classifications']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetClassificationsResponse = GetClassificationsResponse +Global___GetClassificationsResponse: _TypeAlias = GetClassificationsResponse -@typing.final -class GetClassificationsFromCameraRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - CAMERA_NAME_FIELD_NUMBER: builtins.int - N_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetClassificationsFromCameraRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + CAMERA_NAME_FIELD_NUMBER: _builtins.int + N_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the vision service' - camera_name: builtins.str + camera_name: _builtins.str 'the image encoded as bytes' - n: builtins.int + n: _builtins.int 'the number of classifications desired' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., camera_name: builtins.str=..., n: builtins.int=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., camera_name: _builtins.str=..., n: _builtins.int=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['camera_name', b'camera_name', 'extra', b'extra', 'n', b'n', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['camera_name', b'camera_name', 'extra', b'extra', 'n', b'n', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetClassificationsFromCameraRequest = GetClassificationsFromCameraRequest +Global___GetClassificationsFromCameraRequest: _TypeAlias = GetClassificationsFromCameraRequest -@typing.final -class GetClassificationsFromCameraResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLASSIFICATIONS_FIELD_NUMBER: builtins.int +@_typing.final +class GetClassificationsFromCameraResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CLASSIFICATIONS_FIELD_NUMBER: _builtins.int - @property - def classifications(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Classification]: + @_builtins.property + def classifications(self) -> _containers.RepeatedCompositeFieldContainer[Global___Classification]: ... - def __init__(self, *, classifications: collections.abc.Iterable[global___Classification] | None=...) -> None: + def __init__(self, *, classifications: _abc.Iterable[Global___Classification] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['classifications', b'classifications'] - def ClearField(self, field_name: typing.Literal['classifications', b'classifications']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetClassificationsFromCameraResponse = GetClassificationsFromCameraResponse +Global___GetClassificationsFromCameraResponse: _TypeAlias = GetClassificationsFromCameraResponse -@typing.final -class Classification(google.protobuf.message.Message): +@_typing.final +class Classification(_message.Message): """the general form of the output from a classifier""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLASS_NAME_FIELD_NUMBER: builtins.int - CONFIDENCE_FIELD_NUMBER: builtins.int - class_name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + CLASS_NAME_FIELD_NUMBER: _builtins.int + CONFIDENCE_FIELD_NUMBER: _builtins.int + class_name: _builtins.str 'the class name' - confidence: builtins.float + confidence: _builtins.float 'the confidence score of the classification' - def __init__(self, *, class_name: builtins.str=..., confidence: builtins.float=...) -> None: + def __init__(self, *, class_name: _builtins.str=..., confidence: _builtins.float=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['class_name', b'class_name', 'confidence', b'confidence'] - def ClearField(self, field_name: typing.Literal['class_name', b'class_name', 'confidence', b'confidence']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Classification = Classification +Global___Classification: _TypeAlias = Classification -@typing.final -class GetObjectPointCloudsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - CAMERA_NAME_FIELD_NUMBER: builtins.int - MIME_TYPE_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str - camera_name: builtins.str +@_typing.final +class GetObjectPointCloudsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + CAMERA_NAME_FIELD_NUMBER: _builtins.int + MIME_TYPE_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str + camera_name: _builtins.str 'Name of a camera' - mime_type: builtins.str + mime_type: _builtins.str 'Requested MIME type of response' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., camera_name: builtins.str=..., mime_type: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., camera_name: _builtins.str=..., mime_type: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['camera_name', b'camera_name', 'extra', b'extra', 'mime_type', b'mime_type', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['camera_name', b'camera_name', 'extra', b'extra', 'mime_type', b'mime_type', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetObjectPointCloudsRequest = GetObjectPointCloudsRequest +Global___GetObjectPointCloudsRequest: _TypeAlias = GetObjectPointCloudsRequest -@typing.final -class GetObjectPointCloudsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - MIME_TYPE_FIELD_NUMBER: builtins.int - OBJECTS_FIELD_NUMBER: builtins.int - mime_type: builtins.str +@_typing.final +class GetObjectPointCloudsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + MIME_TYPE_FIELD_NUMBER: _builtins.int + OBJECTS_FIELD_NUMBER: _builtins.int + mime_type: _builtins.str 'Actual MIME type of response' - @property - def objects(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.PointCloudObject]: + @_builtins.property + def objects(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.PointCloudObject]: """List of objects in the scene""" - def __init__(self, *, mime_type: builtins.str=..., objects: collections.abc.Iterable[common.v1.common_pb2.PointCloudObject] | None=...) -> None: + def __init__(self, *, mime_type: _builtins.str=..., objects: _abc.Iterable[_common_pb2.PointCloudObject] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['mime_type', b'mime_type', 'objects', b'objects'] - def ClearField(self, field_name: typing.Literal['mime_type', b'mime_type', 'objects', b'objects']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetObjectPointCloudsResponse = GetObjectPointCloudsResponse +Global___GetObjectPointCloudsResponse: _TypeAlias = GetObjectPointCloudsResponse -@typing.final -class GetPropertiesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetPropertiesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the vision service' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesRequest = GetPropertiesRequest +Global___GetPropertiesRequest: _TypeAlias = GetPropertiesRequest -@typing.final -class CaptureAllFromCameraRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - CAMERA_NAME_FIELD_NUMBER: builtins.int - RETURN_IMAGE_FIELD_NUMBER: builtins.int - RETURN_CLASSIFICATIONS_FIELD_NUMBER: builtins.int - RETURN_DETECTIONS_FIELD_NUMBER: builtins.int - RETURN_OBJECT_POINT_CLOUDS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class CaptureAllFromCameraRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + CAMERA_NAME_FIELD_NUMBER: _builtins.int + RETURN_IMAGE_FIELD_NUMBER: _builtins.int + RETURN_CLASSIFICATIONS_FIELD_NUMBER: _builtins.int + RETURN_DETECTIONS_FIELD_NUMBER: _builtins.int + RETURN_OBJECT_POINT_CLOUDS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'name of the vision service' - camera_name: builtins.str + camera_name: _builtins.str 'name of camera source to use as input' - return_image: builtins.bool + return_image: _builtins.bool 'whether or not including the image in the response' - return_classifications: builtins.bool + return_classifications: _builtins.bool 'whether or not including classifications in the response' - return_detections: builtins.bool + return_detections: _builtins.bool 'whether or not including detections in the response' - return_object_point_clouds: builtins.bool + return_object_point_clouds: _builtins.bool 'whether or not including pcd in the response' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, name: builtins.str=..., camera_name: builtins.str=..., return_image: builtins.bool=..., return_classifications: builtins.bool=..., return_detections: builtins.bool=..., return_object_point_clouds: builtins.bool=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., camera_name: _builtins.str=..., return_image: _builtins.bool=..., return_classifications: _builtins.bool=..., return_detections: _builtins.bool=..., return_object_point_clouds: _builtins.bool=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['camera_name', b'camera_name', 'extra', b'extra', 'name', b'name', 'return_classifications', b'return_classifications', 'return_detections', b'return_detections', 'return_image', b'return_image', 'return_object_point_clouds', b'return_object_point_clouds'] - def ClearField(self, field_name: typing.Literal['camera_name', b'camera_name', 'extra', b'extra', 'name', b'name', 'return_classifications', b'return_classifications', 'return_detections', b'return_detections', 'return_image', b'return_image', 'return_object_point_clouds', b'return_object_point_clouds']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CaptureAllFromCameraRequest = CaptureAllFromCameraRequest +Global___CaptureAllFromCameraRequest: _TypeAlias = CaptureAllFromCameraRequest -@typing.final -class CaptureAllFromCameraResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - IMAGE_FIELD_NUMBER: builtins.int - DETECTIONS_FIELD_NUMBER: builtins.int - CLASSIFICATIONS_FIELD_NUMBER: builtins.int - OBJECTS_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int +@_typing.final +class CaptureAllFromCameraResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + IMAGE_FIELD_NUMBER: _builtins.int + DETECTIONS_FIELD_NUMBER: _builtins.int + CLASSIFICATIONS_FIELD_NUMBER: _builtins.int + OBJECTS_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int - @property - def image(self) -> component.camera.v1.camera_pb2.Image: + @_builtins.property + def image(self) -> _camera_pb2.Image: ... - @property - def detections(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Detection]: + @_builtins.property + def detections(self) -> _containers.RepeatedCompositeFieldContainer[Global___Detection]: ... - @property - def classifications(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Classification]: + @_builtins.property + def classifications(self) -> _containers.RepeatedCompositeFieldContainer[Global___Classification]: ... - @property - def objects(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[common.v1.common_pb2.PointCloudObject]: + @_builtins.property + def objects(self) -> _containers.RepeatedCompositeFieldContainer[_common_pb2.PointCloudObject]: ... - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: ... - def __init__(self, *, image: component.camera.v1.camera_pb2.Image | None=..., detections: collections.abc.Iterable[global___Detection] | None=..., classifications: collections.abc.Iterable[global___Classification] | None=..., objects: collections.abc.Iterable[common.v1.common_pb2.PointCloudObject] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, image: _camera_pb2.Image | None=..., detections: _abc.Iterable[Global___Detection] | None=..., classifications: _abc.Iterable[Global___Classification] | None=..., objects: _abc.Iterable[_common_pb2.PointCloudObject] | None=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'image', b'image'] - def HasField(self, field_name: typing.Literal['extra', b'extra', 'image', b'image']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['classifications', b'classifications', 'detections', b'detections', 'extra', b'extra', 'image', b'image', 'objects', b'objects'] - def ClearField(self, field_name: typing.Literal['classifications', b'classifications', 'detections', b'detections', 'extra', b'extra', 'image', b'image', 'objects', b'objects']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___CaptureAllFromCameraResponse = CaptureAllFromCameraResponse +Global___CaptureAllFromCameraResponse: _TypeAlias = CaptureAllFromCameraResponse -@typing.final -class GetPropertiesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CLASSIFICATIONS_SUPPORTED_FIELD_NUMBER: builtins.int - DETECTIONS_SUPPORTED_FIELD_NUMBER: builtins.int - OBJECT_POINT_CLOUDS_SUPPORTED_FIELD_NUMBER: builtins.int - classifications_supported: builtins.bool +@_typing.final +class GetPropertiesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CLASSIFICATIONS_SUPPORTED_FIELD_NUMBER: _builtins.int + DETECTIONS_SUPPORTED_FIELD_NUMBER: _builtins.int + OBJECT_POINT_CLOUDS_SUPPORTED_FIELD_NUMBER: _builtins.int + classifications_supported: _builtins.bool 'whether or not classifactions are supported by the vision service' - detections_supported: builtins.bool + detections_supported: _builtins.bool 'whether or not detections are supported by the vision service' - object_point_clouds_supported: builtins.bool + object_point_clouds_supported: _builtins.bool 'whether or not 3d segmentation is supported by the vision service' - def __init__(self, *, classifications_supported: builtins.bool=..., detections_supported: builtins.bool=..., object_point_clouds_supported: builtins.bool=...) -> None: + def __init__(self, *, classifications_supported: _builtins.bool=..., detections_supported: _builtins.bool=..., object_point_clouds_supported: _builtins.bool=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['classifications_supported', b'classifications_supported', 'detections_supported', b'detections_supported', 'object_point_clouds_supported', b'object_point_clouds_supported'] - def ClearField(self, field_name: typing.Literal['classifications_supported', b'classifications_supported', 'detections_supported', b'detections_supported', 'object_point_clouds_supported', b'object_point_clouds_supported']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetPropertiesResponse = GetPropertiesResponse \ No newline at end of file +Global___GetPropertiesResponse: _TypeAlias = GetPropertiesResponse \ No newline at end of file diff --git a/src/viam/gen/service/worldstatestore/v1/world_state_store_pb2.py b/src/viam/gen/service/worldstatestore/v1/world_state_store_pb2.py index 210c9cf278..c409c4b40c 100644 --- a/src/viam/gen/service/worldstatestore/v1/world_state_store_pb2.py +++ b/src/viam/gen/service/worldstatestore/v1/world_state_store_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/worldstatestore/v1/world_state_store.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'service/worldstatestore/v1/world_state_store.proto') _sym_db = _symbol_database.Default() from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2 from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 diff --git a/src/viam/gen/service/worldstatestore/v1/world_state_store_pb2.pyi b/src/viam/gen/service/worldstatestore/v1/world_state_store_pb2.pyi index dfd0cd80b0..64a66388f7 100644 --- a/src/viam/gen/service/worldstatestore/v1/world_state_store_pb2.pyi +++ b/src/viam/gen/service/worldstatestore/v1/world_state_store_pb2.pyi @@ -2,29 +2,29 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -from .... import common -import google.protobuf.descriptor -import google.protobuf.field_mask_pb2 -import google.protobuf.internal.containers -import google.protobuf.internal.enum_type_wrapper -import google.protobuf.message -import google.protobuf.struct_pb2 +from collections import abc as _abc +from common.v1 import common_pb2 as _common_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import field_mask_pb2 as _field_mask_pb2 +from google.protobuf import message as _message +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +import builtins as _builtins import sys -import typing +import typing as _typing if sys.version_info >= (3, 10): - import typing as typing_extensions + from typing import TypeAlias as _TypeAlias else: - import typing_extensions -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor class _TransformChangeType: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + ValueType = _typing.NewType('ValueType', _builtins.int) + V: _TypeAlias = ValueType -class _TransformChangeTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TransformChangeType.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor +class _TransformChangeTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[_TransformChangeType.ValueType], _builtins.type): + DESCRIPTOR: _descriptor.EnumDescriptor TRANSFORM_CHANGE_TYPE_UNSPECIFIED: _TransformChangeType.ValueType TRANSFORM_CHANGE_TYPE_ADDED: _TransformChangeType.ValueType TRANSFORM_CHANGE_TYPE_REMOVED: _TransformChangeType.ValueType @@ -36,136 +36,147 @@ TRANSFORM_CHANGE_TYPE_UNSPECIFIED: TransformChangeType.ValueType TRANSFORM_CHANGE_TYPE_ADDED: TransformChangeType.ValueType TRANSFORM_CHANGE_TYPE_REMOVED: TransformChangeType.ValueType TRANSFORM_CHANGE_TYPE_UPDATED: TransformChangeType.ValueType -global___TransformChangeType = TransformChangeType - -@typing.final -class ListUUIDsRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +Global___TransformChangeType: _TypeAlias = TransformChangeType + +@_typing.final +class ListUUIDsRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the world object store service' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListUUIDsRequest = ListUUIDsRequest +Global___ListUUIDsRequest: _TypeAlias = ListUUIDsRequest -@typing.final -class ListUUIDsResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - UUIDS_FIELD_NUMBER: builtins.int +@_typing.final +class ListUUIDsResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + UUIDS_FIELD_NUMBER: _builtins.int - @property - def uuids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: + @_builtins.property + def uuids(self) -> _containers.RepeatedScalarFieldContainer[_builtins.bytes]: ... - def __init__(self, *, uuids: collections.abc.Iterable[builtins.bytes] | None=...) -> None: + def __init__(self, *, uuids: _abc.Iterable[_builtins.bytes] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['uuids', b'uuids'] - def ClearField(self, field_name: typing.Literal['uuids', b'uuids']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListUUIDsResponse = ListUUIDsResponse +Global___ListUUIDsResponse: _TypeAlias = ListUUIDsResponse -@typing.final -class GetTransformRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - UUID_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class GetTransformRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + UUID_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the world object store service' - uuid: builtins.bytes + uuid: _builtins.bytes - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., uuid: builtins.bytes=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., uuid: _builtins.bytes=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name', 'uuid', b'uuid'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'uuid', b'uuid']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetTransformRequest = GetTransformRequest +Global___GetTransformRequest: _TypeAlias = GetTransformRequest -@typing.final -class GetTransformResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TRANSFORM_FIELD_NUMBER: builtins.int +@_typing.final +class GetTransformResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + TRANSFORM_FIELD_NUMBER: _builtins.int - @property - def transform(self) -> common.v1.common_pb2.Transform: + @_builtins.property + def transform(self) -> _common_pb2.Transform: ... - def __init__(self, *, transform: common.v1.common_pb2.Transform | None=...) -> None: + def __init__(self, *, transform: _common_pb2.Transform | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['transform', b'transform'] - def HasField(self, field_name: typing.Literal['transform', b'transform']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['transform', b'transform'] - def ClearField(self, field_name: typing.Literal['transform', b'transform']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetTransformResponse = GetTransformResponse +Global___GetTransformResponse: _TypeAlias = GetTransformResponse -@typing.final -class StreamTransformChangesRequest(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - EXTRA_FIELD_NUMBER: builtins.int - name: builtins.str +@_typing.final +class StreamTransformChangesRequest(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + EXTRA_FIELD_NUMBER: _builtins.int + name: _builtins.str 'Name of the world object store service' - @property - def extra(self) -> google.protobuf.struct_pb2.Struct: + @_builtins.property + def extra(self) -> _struct_pb2.Struct: """Additional arguments to the method""" - def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., extra: _struct_pb2.Struct | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra'] - def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['extra', b'extra', 'name', b'name'] - def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StreamTransformChangesRequest = StreamTransformChangesRequest +Global___StreamTransformChangesRequest: _TypeAlias = StreamTransformChangesRequest -@typing.final -class StreamTransformChangesResponse(google.protobuf.message.Message): - DESCRIPTOR: google.protobuf.descriptor.Descriptor - CHANGE_TYPE_FIELD_NUMBER: builtins.int - TRANSFORM_FIELD_NUMBER: builtins.int - UPDATED_FIELDS_FIELD_NUMBER: builtins.int - change_type: global___TransformChangeType.ValueType +@_typing.final +class StreamTransformChangesResponse(_message.Message): + DESCRIPTOR: _descriptor.Descriptor + CHANGE_TYPE_FIELD_NUMBER: _builtins.int + TRANSFORM_FIELD_NUMBER: _builtins.int + UPDATED_FIELDS_FIELD_NUMBER: _builtins.int + change_type: Global___TransformChangeType.ValueType - @property - def transform(self) -> common.v1.common_pb2.Transform: + @_builtins.property + def transform(self) -> _common_pb2.Transform: ... - @property - def updated_fields(self) -> google.protobuf.field_mask_pb2.FieldMask: + @_builtins.property + def updated_fields(self) -> _field_mask_pb2.FieldMask: """The field mask of the transform that has changed, if any. For added transforms, this will be empty. For updated transforms, this will be the fields that have changed. For removed transforms, this will be the transform's UUID path. """ - def __init__(self, *, change_type: global___TransformChangeType.ValueType=..., transform: common.v1.common_pb2.Transform | None=..., updated_fields: google.protobuf.field_mask_pb2.FieldMask | None=...) -> None: + def __init__(self, *, change_type: Global___TransformChangeType.ValueType=..., transform: _common_pb2.Transform | None=..., updated_fields: _field_mask_pb2.FieldMask | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['transform', b'transform', 'updated_fields', b'updated_fields'] - def HasField(self, field_name: typing.Literal['transform', b'transform', 'updated_fields', b'updated_fields']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['change_type', b'change_type', 'transform', b'transform', 'updated_fields', b'updated_fields'] - def ClearField(self, field_name: typing.Literal['change_type', b'change_type', 'transform', b'transform', 'updated_fields', b'updated_fields']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___StreamTransformChangesResponse = StreamTransformChangesResponse \ No newline at end of file +Global___StreamTransformChangesResponse: _TypeAlias = StreamTransformChangesResponse \ No newline at end of file diff --git a/src/viam/gen/stream/v1/stream_pb2.py b/src/viam/gen/stream/v1/stream_pb2.py index de74da9d41..e23734ff35 100644 --- a/src/viam/gen/stream/v1/stream_pb2.py +++ b/src/viam/gen/stream/v1/stream_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'stream/v1/stream.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'stream/v1/stream.proto') _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16stream/v1/stream.proto\x12\x0fproto.stream.v1"\x14\n\x12ListStreamsRequest"+\n\x13ListStreamsResponse\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names"&\n\x10AddStreamRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name"\x13\n\x11AddStreamResponse")\n\x13RemoveStreamRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name"\x16\n\x14RemoveStreamResponse":\n\nResolution\x12\x14\n\x05width\x18\x01 \x01(\x05R\x05width\x12\x16\n\x06height\x18\x02 \x01(\x05R\x06height"-\n\x17GetStreamOptionsRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name"Y\n\x18GetStreamOptionsResponse\x12=\n\x0bresolutions\x18\x01 \x03(\x0b2\x1b.proto.stream.v1.ResolutionR\x0bresolutions"j\n\x17SetStreamOptionsRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12;\n\nresolution\x18\x02 \x01(\x0b2\x1b.proto.stream.v1.ResolutionR\nresolution"\x1a\n\x18SetStreamOptionsResponse2\xec\x03\n\rStreamService\x12X\n\x0bListStreams\x12#.proto.stream.v1.ListStreamsRequest\x1a$.proto.stream.v1.ListStreamsResponse\x12R\n\tAddStream\x12!.proto.stream.v1.AddStreamRequest\x1a".proto.stream.v1.AddStreamResponse\x12g\n\x10GetStreamOptions\x12(.proto.stream.v1.GetStreamOptionsRequest\x1a).proto.stream.v1.GetStreamOptionsResponse\x12g\n\x10SetStreamOptions\x12(.proto.stream.v1.SetStreamOptionsRequest\x1a).proto.stream.v1.SetStreamOptionsResponse\x12[\n\x0cRemoveStream\x12$.proto.stream.v1.RemoveStreamRequest\x1a%.proto.stream.v1.RemoveStreamResponseB.Z,github.com/edaniels/gostream/proto/stream/v1b\x06proto3') _globals = globals() diff --git a/src/viam/gen/stream/v1/stream_pb2.pyi b/src/viam/gen/stream/v1/stream_pb2.pyi index bae532ce76..0464d48a26 100644 --- a/src/viam/gen/stream/v1/stream_pb2.pyi +++ b/src/viam/gen/stream/v1/stream_pb2.pyi @@ -2,160 +2,173 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import collections.abc -import google.protobuf.descriptor -import google.protobuf.internal.containers -import google.protobuf.message -import typing -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor - -@typing.final -class ListStreamsRequest(google.protobuf.message.Message): +from collections import abc as _abc +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf.internal import containers as _containers +import builtins as _builtins +import sys +import typing as _typing +if sys.version_info >= (3, 10): + from typing import TypeAlias as _TypeAlias +else: + from typing_extensions import TypeAlias as _TypeAlias +DESCRIPTOR: _descriptor.FileDescriptor + +@_typing.final +class ListStreamsRequest(_message.Message): """ListStreamsRequest requests all streams registered.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___ListStreamsRequest = ListStreamsRequest +Global___ListStreamsRequest: _TypeAlias = ListStreamsRequest -@typing.final -class ListStreamsResponse(google.protobuf.message.Message): +@_typing.final +class ListStreamsResponse(_message.Message): """A ListStreamsResponse details streams registered.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAMES_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + NAMES_FIELD_NUMBER: _builtins.int - @property - def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + @_builtins.property + def names(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ... - def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, names: _abc.Iterable[_builtins.str] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['names', b'names'] - def ClearField(self, field_name: typing.Literal['names', b'names']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___ListStreamsResponse = ListStreamsResponse +Global___ListStreamsResponse: _TypeAlias = ListStreamsResponse -@typing.final -class AddStreamRequest(google.protobuf.message.Message): +@_typing.final +class AddStreamRequest(_message.Message): """A AddStreamRequest requests the given stream be added to the connection.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___AddStreamRequest = AddStreamRequest +Global___AddStreamRequest: _TypeAlias = AddStreamRequest -@typing.final -class AddStreamResponse(google.protobuf.message.Message): +@_typing.final +class AddStreamResponse(_message.Message): """AddStreamResponse is returned after a successful AddStreamRequest.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___AddStreamResponse = AddStreamResponse +Global___AddStreamResponse: _TypeAlias = AddStreamResponse -@typing.final -class RemoveStreamRequest(google.protobuf.message.Message): +@_typing.final +class RemoveStreamRequest(_message.Message): """A RemoveStreamRequest requests the given stream be removed from the connection.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___RemoveStreamRequest = RemoveStreamRequest +Global___RemoveStreamRequest: _TypeAlias = RemoveStreamRequest -@typing.final -class RemoveStreamResponse(google.protobuf.message.Message): +@_typing.final +class RemoveStreamResponse(_message.Message): """RemoveStreamResponse is returned after a successful RemoveStreamRequest.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___RemoveStreamResponse = RemoveStreamResponse +Global___RemoveStreamResponse: _TypeAlias = RemoveStreamResponse -@typing.final -class Resolution(google.protobuf.message.Message): +@_typing.final +class Resolution(_message.Message): """Resolution details the width and height of a stream.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - WIDTH_FIELD_NUMBER: builtins.int - HEIGHT_FIELD_NUMBER: builtins.int - width: builtins.int - height: builtins.int + DESCRIPTOR: _descriptor.Descriptor + WIDTH_FIELD_NUMBER: _builtins.int + HEIGHT_FIELD_NUMBER: _builtins.int + width: _builtins.int + height: _builtins.int - def __init__(self, *, width: builtins.int=..., height: builtins.int=...) -> None: + def __init__(self, *, width: _builtins.int=..., height: _builtins.int=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['height', b'height', 'width', b'width'] - def ClearField(self, field_name: typing.Literal['height', b'height', 'width', b'width']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___Resolution = Resolution +Global___Resolution: _TypeAlias = Resolution -@typing.final -class GetStreamOptionsRequest(google.protobuf.message.Message): +@_typing.final +class GetStreamOptionsRequest(_message.Message): """GetStreamOptionsRequest requests the options for a particular stream.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + name: _builtins.str - def __init__(self, *, name: builtins.str=...) -> None: + def __init__(self, *, name: _builtins.str=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name'] - def ClearField(self, field_name: typing.Literal['name', b'name']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetStreamOptionsRequest = GetStreamOptionsRequest +Global___GetStreamOptionsRequest: _TypeAlias = GetStreamOptionsRequest -@typing.final -class GetStreamOptionsResponse(google.protobuf.message.Message): +@_typing.final +class GetStreamOptionsResponse(_message.Message): """GetStreamOptionsResponse details the options for a particular stream.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - RESOLUTIONS_FIELD_NUMBER: builtins.int + DESCRIPTOR: _descriptor.Descriptor + RESOLUTIONS_FIELD_NUMBER: _builtins.int - @property - def resolutions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Resolution]: + @_builtins.property + def resolutions(self) -> _containers.RepeatedCompositeFieldContainer[Global___Resolution]: ... - def __init__(self, *, resolutions: collections.abc.Iterable[global___Resolution] | None=...) -> None: + def __init__(self, *, resolutions: _abc.Iterable[Global___Resolution] | None=...) -> None: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['resolutions', b'resolutions'] - def ClearField(self, field_name: typing.Literal['resolutions', b'resolutions']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___GetStreamOptionsResponse = GetStreamOptionsResponse +Global___GetStreamOptionsResponse: _TypeAlias = GetStreamOptionsResponse -@typing.final -class SetStreamOptionsRequest(google.protobuf.message.Message): +@_typing.final +class SetStreamOptionsRequest(_message.Message): """SetStreamOptionsRequest sets the options for a particular stream.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int - RESOLUTION_FIELD_NUMBER: builtins.int - name: builtins.str + DESCRIPTOR: _descriptor.Descriptor + NAME_FIELD_NUMBER: _builtins.int + RESOLUTION_FIELD_NUMBER: _builtins.int + name: _builtins.str - @property - def resolution(self) -> global___Resolution: + @_builtins.property + def resolution(self) -> Global___Resolution: ... - def __init__(self, *, name: builtins.str=..., resolution: global___Resolution | None=...) -> None: + def __init__(self, *, name: _builtins.str=..., resolution: Global___Resolution | None=...) -> None: ... + _HasFieldArgType: _TypeAlias = _typing.Literal['resolution', b'resolution'] - def HasField(self, field_name: typing.Literal['resolution', b'resolution']) -> builtins.bool: + def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ... + _ClearFieldArgType: _TypeAlias = _typing.Literal['name', b'name', 'resolution', b'resolution'] - def ClearField(self, field_name: typing.Literal['name', b'name', 'resolution', b'resolution']) -> None: + def ClearField(self, field_name: _ClearFieldArgType) -> None: ... -global___SetStreamOptionsRequest = SetStreamOptionsRequest +Global___SetStreamOptionsRequest: _TypeAlias = SetStreamOptionsRequest -@typing.final -class SetStreamOptionsResponse(google.protobuf.message.Message): +@_typing.final +class SetStreamOptionsResponse(_message.Message): """SetStreamOptionsResponse is returned after a successful SetStreamOptionsRequest.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor + DESCRIPTOR: _descriptor.Descriptor def __init__(self) -> None: ... -global___SetStreamOptionsResponse = SetStreamOptionsResponse \ No newline at end of file +Global___SetStreamOptionsResponse: _TypeAlias = SetStreamOptionsResponse \ No newline at end of file diff --git a/src/viam/gen/tagger/v1/tagger_pb2.py b/src/viam/gen/tagger/v1/tagger_pb2.py index c8be831dfe..e911a56f79 100644 --- a/src/viam/gen/tagger/v1/tagger_pb2.py +++ b/src/viam/gen/tagger/v1/tagger_pb2.py @@ -4,7 +4,7 @@ from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'tagger/v1/tagger.proto') +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 6, 33, 5, '', 'tagger/v1/tagger.proto') _sym_db = _symbol_database.Default() from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16tagger/v1/tagger.proto\x12\ttagger.v1\x1a google/protobuf/descriptor.proto:3\n\x04tags\x12\x1d.google.protobuf.FieldOptions\x18\xc3\xe03 \x01(\tR\x04tags:>\n\noneof_tags\x12\x1d.google.protobuf.OneofOptions\x18\xc3\xe03 \x01(\tR\toneofTagsB4Z2github.com/srikrsna/protoc-gen-gotag/tagger;taggerb\x06proto3') diff --git a/src/viam/gen/tagger/v1/tagger_pb2.pyi b/src/viam/gen/tagger/v1/tagger_pb2.pyi index fb3f00a250..d8b6b52fe5 100644 --- a/src/viam/gen/tagger/v1/tagger_pb2.pyi +++ b/src/viam/gen/tagger/v1/tagger_pb2.pyi @@ -2,14 +2,14 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file """ -import builtins -import google.protobuf.descriptor -import google.protobuf.descriptor_pb2 -import google.protobuf.internal.extension_dict -DESCRIPTOR: google.protobuf.descriptor.FileDescriptor -TAGS_FIELD_NUMBER: builtins.int -ONEOF_TAGS_FIELD_NUMBER: builtins.int -tags: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str] +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pb2 as _descriptor_pb2 +from google.protobuf.internal import extension_dict as _extension_dict +import builtins as _builtins +DESCRIPTOR: _descriptor.FileDescriptor +TAGS_FIELD_NUMBER: _builtins.int +ONEOF_TAGS_FIELD_NUMBER: _builtins.int +tags: _extension_dict._ExtensionFieldDescriptor[_descriptor_pb2.FieldOptions, _builtins.str] 'Multiple Tags can be spcified.' -oneof_tags: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.OneofOptions, builtins.str] +oneof_tags: _extension_dict._ExtensionFieldDescriptor[_descriptor_pb2.OneofOptions, _builtins.str] 'Multiple Tags can be spcified.' \ No newline at end of file diff --git a/src/viam/logging.py b/src/viam/logging.py index 39df32c9a4..64fa595645 100644 --- a/src/viam/logging.py +++ b/src/viam/logging.py @@ -170,7 +170,7 @@ def _addHandlers(loggers: Iterable[logging.Logger], use_default_handlers=False): std_handler.setFormatter(format) # filter out logs at error level or above std_handler.setLevel(LOG_LEVEL) - std_handler.addFilter(filter=lambda record: (record.levelno < ERROR)) + std_handler.addFilter(filter=lambda record: record.levelno < ERROR) err_handler = logging.StreamHandler(stream=sys.stderr) err_handler.setFormatter(format) diff --git a/src/viam/media/utils/pil/viam_rgba_plugin.py b/src/viam/media/utils/pil/viam_rgba_plugin.py index 75d1711d05..445f25c1b1 100644 --- a/src/viam/media/utils/pil/viam_rgba_plugin.py +++ b/src/viam/media/utils/pil/viam_rgba_plugin.py @@ -1,13 +1,13 @@ -from typing import ClassVar, Tuple +from typing import IO, ClassVar from PIL import Image -from PIL.ImageFile import ImageFile, PyDecoder, PyEncoder, _safe_read # type: ignore -- (njooma) this exists, manually checked -from PIL.ImageFile import _save as image_save # type: ignore -- (njooma) this exists, manually checked +from PIL.ImageFile import ImageFile, PyDecoder, PyEncoder, _safe_read, _Tile +from PIL.ImageFile import _save as image_save from ...viam_rgba import RGBA_FORMAT_LABEL, RGBA_HEADER_LENGTH, RGBA_MAGIC_NUMBER -def _accept(prefix: str): +def _accept(prefix: bytes): return prefix[:4] == RGBA_MAGIC_NUMBER @@ -16,8 +16,9 @@ class RGBAEncoder(PyEncoder): _pushes_fd = True - def encode(self, bufsize): # pyright: ignore [reportIncompatibleMethodOverride] + def encode(self, bufsize: int) -> tuple[int, int, bytes]: data_arr = bytearray() + assert self.im is not None width, height = self.im.size for y in range(height): for x in range(width): @@ -27,13 +28,14 @@ def encode(self, bufsize): # pyright: ignore [reportIncompatibleMethodOverride] return len(data), 0, data -def _save_rgba(img, fp, filename): +def _save_rgba(img: Image.Image, fp: IO[bytes], filename: str | bytes): width, height = img.size fp.write(RGBA_MAGIC_NUMBER) fp.write(width.to_bytes(4, byteorder="big")) fp.write(height.to_bytes(4, byteorder="big")) - image_save(img, fp, [(RGBAEncoder.ENCODER_NAME, (0, 0, width, height), 0, ("RGBA", 0, 1))]) + tile = _Tile(codec_name=RGBAEncoder.ENCODER_NAME, extents=(0, 0, width, height), offset=0, args=("RGBA", 0, 1)) + image_save(img, fp, [tile]) class RGBAImage(ImageFile): @@ -41,6 +43,7 @@ class RGBAImage(ImageFile): format_description = "Viam's Raw RGBA Format" def _open(self): + assert self.fp is not None header = self.fp.read(RGBA_HEADER_LENGTH) width = int.from_bytes(header[4:8], "big") @@ -52,13 +55,16 @@ def _open(self): self.mode = "RGBA" # type: ignore -- (njooma) newer versions of PIL hide this behind _mode, which is why we check # data descriptor - self.tile = [(RGBAEncoder.ENCODER_NAME, (0, 0, width, height), RGBA_HEADER_LENGTH, (self.mode, 0, 1))] + tile = _Tile(codec_name=RGBAEncoder.ENCODER_NAME, extents=(0, 0, width, height), offset=RGBA_HEADER_LENGTH, args=(self.mode, 0, 1)) + self.tile = [tile] class RGBADecoder(PyDecoder): _pulls_fd = True - def decode(self, buffer) -> Tuple[int, int]: + def decode(self, buffer: bytes | Image.SupportsArrayInterface) -> tuple[int, int]: + assert self.im is not None + assert self.fd is not None width, height = self.im.size self.set_as_raw(_safe_read(self.fd, width * height * 4)) return -1, 0 diff --git a/src/viam/operations.py b/src/viam/operations.py index bb016cf130..927bf48d48 100644 --- a/src/viam/operations.py +++ b/src/viam/operations.py @@ -1,17 +1,11 @@ import asyncio import functools -import sys import time -from typing import Any, Callable, Coroutine, Mapping, Optional, TypeVar, cast +from typing import Any, Callable, Coroutine, Mapping, Optional, ParamSpec, TypeVar, cast from uuid import UUID, uuid4 from typing_extensions import Self -if sys.version_info >= (3, 10): - from typing import ParamSpec -else: - from typing_extensions import ParamSpec - class Operation: """An Operation represents a running operation. diff --git a/src/viam/resource/types.py b/src/viam/resource/types.py index cc1c4618e2..9c91ff5bf9 100644 --- a/src/viam/resource/types.py +++ b/src/viam/resource/types.py @@ -1,11 +1,5 @@ import re -import sys -from typing import TYPE_CHECKING, Callable, ClassVar, Mapping, Optional, Protocol, Sequence, Tuple, runtime_checkable - -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias +from typing import TYPE_CHECKING, Callable, ClassVar, Mapping, Optional, Protocol, Sequence, Tuple, TypeAlias, runtime_checkable from typing_extensions import Self diff --git a/src/viam/robot/service.py b/src/viam/robot/service.py index 151fe7e9ff..11ac4cc372 100644 --- a/src/viam/robot/service.py +++ b/src/viam/robot/service.py @@ -65,5 +65,5 @@ async def StopAll(self, stream: Stream[StopAllRequest, StopAllResponse]) -> None errors.append(component.name) if errors: - raise ViamGRPCError(f'Failed to stop components named {", ".join(errors)}') + raise ViamGRPCError(f"Failed to stop components named {', '.join(errors)}") await stream.send_message(StopAllResponse()) diff --git a/src/viam/rpc/dial.py b/src/viam/rpc/dial.py index a2483d9a9c..80016f617e 100644 --- a/src/viam/rpc/dial.py +++ b/src/viam/rpc/dial.py @@ -6,6 +6,7 @@ import sys import uuid import warnings +from asyncio import to_thread from dataclasses import dataclass from typing import Callable, Literal, Optional, Tuple, Type, Union @@ -21,7 +22,6 @@ from viam.errors import InsecureConnectionError, ViamError from viam.proto.rpc.auth import AuthenticateRequest, AuthServiceStub from viam.proto.rpc.auth import Credentials as PBCredentials -from viam.utils import to_thread from viam.version_metadata import API_VERSION, SDK_VERSION LOGGER = logging.getLogger(__name__) diff --git a/src/viam/services/motion/motion.py b/src/viam/services/motion/motion.py index 4ea5fc4651..8de9d28fce 100644 --- a/src/viam/services/motion/motion.py +++ b/src/viam/services/motion/motion.py @@ -1,11 +1,5 @@ import abc -import sys -from typing import Any, Final, Mapping, Optional, Sequence - -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias +from typing import Any, Final, Mapping, Optional, Sequence, TypeAlias from viam.proto.common import GeoGeometry, Geometry, GeoPoint, Pose, PoseInFrame, Transform, WorldState from viam.proto.service.motion import Constraints, GetPlanResponse, MotionConfiguration, PlanStatusWithID diff --git a/src/viam/services/slam/slam.py b/src/viam/services/slam/slam.py index 759c59f8c9..d51b9ece34 100644 --- a/src/viam/services/slam/slam.py +++ b/src/viam/services/slam/slam.py @@ -1,6 +1,5 @@ import abc -import sys -from typing import Final, List, Optional +from typing import Final, List, Optional, TypeAlias from viam.proto.service.slam import GetPropertiesResponse from viam.resource.types import API, RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_SERVICE @@ -8,11 +7,6 @@ from ..service_base import ServiceBase from . import Pose -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - class SLAM(ServiceBase): """ diff --git a/src/viam/services/vision/vision.py b/src/viam/services/vision/vision.py index 01b489fa7e..047a6a206e 100644 --- a/src/viam/services/vision/vision.py +++ b/src/viam/services/vision/vision.py @@ -1,6 +1,5 @@ import abc -import sys -from typing import Final, List, Mapping, Optional +from typing import Final, List, Mapping, Optional, TypeAlias from viam.media.video import ViamImage from viam.proto.common import PointCloudObject @@ -10,11 +9,6 @@ from ..service_base import ServiceBase -if sys.version_info >= (3, 10): - from typing import TypeAlias -else: - from typing_extensions import TypeAlias - class CaptureAllResult: """ diff --git a/src/viam/services/worldstatestore/client.py b/src/viam/services/worldstatestore/client.py index b51fc69788..24af91e9b2 100644 --- a/src/viam/services/worldstatestore/client.py +++ b/src/viam/services/worldstatestore/client.py @@ -62,7 +62,7 @@ async def get_transform( response: GetTransformResponse = await self.client.GetTransform(request, timeout=timeout, metadata=md) return response.transform - async def stream_transform_changes( + async def stream_transform_changes( # type: ignore self, *, extra: Optional[Mapping[str, Any]] = None, @@ -74,9 +74,10 @@ async def stream_transform_changes( name=self.name, extra=dict_to_struct(extra), ) - responses = await self.client.StreamTransformChanges(request, timeout=timeout, metadata=md) - for response in responses: - yield response + async with self.client.StreamTransformChanges.open(timeout=timeout, metadata=md) as stream: + await stream.send_message(request, end=True) + async for response in stream: + yield response async def do_command( self, diff --git a/src/viam/services/worldstatestore/service.py b/src/viam/services/worldstatestore/service.py index 30457f9962..edd4fa1539 100644 --- a/src/viam/services/worldstatestore/service.py +++ b/src/viam/services/worldstatestore/service.py @@ -43,7 +43,7 @@ async def StreamTransformChanges( assert request is not None service = self.get_resource(request.name) timeout = stream.deadline.time_remaining() if stream.deadline else None - async for change in service.stream_transform_changes(extra=struct_to_dict(request.extra), timeout=timeout): + async for change in service.stream_transform_changes(extra=struct_to_dict(request.extra), timeout=timeout): # pyright: ignore [reportGeneralTypeIssues] await stream.send_message(change) async def DoCommand(self, stream: Stream[DoCommandRequest, DoCommandResponse]) -> None: diff --git a/src/viam/streams.py b/src/viam/streams.py index 2daae42e12..c52f81779e 100644 --- a/src/viam/streams.py +++ b/src/viam/streams.py @@ -1,10 +1,4 @@ -import sys - -if sys.version_info >= (3, 9): - from collections.abc import AsyncIterator -else: - from typing import AsyncIterator - +from collections.abc import AsyncIterator from typing import Protocol, TypeVar StreamType = TypeVar("StreamType", covariant=True) diff --git a/src/viam/utils.py b/src/viam/utils.py index e8fa4e1b88..8e3da3cfb7 100644 --- a/src/viam/utils.py +++ b/src/viam/utils.py @@ -1,10 +1,9 @@ import asyncio -import contextvars import functools -import sys import threading +from collections.abc import Callable from datetime import datetime -from typing import Any, Callable, Dict, List, Mapping, Optional, SupportsBytes, SupportsFloat, Type, TypeVar, Union +from typing import Any, Dict, List, Mapping, Optional, ParamSpec, SupportsBytes, SupportsFloat, Type, TypeVar, Union from google.protobuf.json_format import MessageToDict, ParseDict from google.protobuf.message import Message @@ -18,17 +17,6 @@ from viam.resource.rpc_client_base import ResourceRPCClientBase from viam.resource.types import API, SupportsGetGeometries -if sys.version_info >= (3, 9): - from collections.abc import Callable -else: - from typing import Callable - -if sys.version_info >= (3, 10): - from typing import ParamSpec -else: - from typing_extensions import ParamSpec - - ValueTypes = Union[bool, SupportsBytes, SupportsFloat, List, Mapping, str, None] """Types that can be encoded into a protobuf `Value`""" @@ -247,22 +235,6 @@ def count(self) -> int: _R = TypeVar("_R") -async def to_thread(func: Callable[_P, _R], *args: _P.args, **kwargs: _P.kwargs) -> _R: - """Asynchronously run a function in a separate thread. - - This is a copy of the function defined in the python source, - which is only available in python >= 3.9. - - See: https://github.com/python/cpython/blob/main/Lib/asyncio/threads.py - """ - if sys.version_info >= (3, 9): - return await asyncio.to_thread(func, *args, **kwargs) - loop = asyncio.events.get_running_loop() - ctx = contextvars.copy_context() - func_call = functools.partial(ctx.run, func, *args, **kwargs) - return await loop.run_in_executor(None, func_call) # type: ignore - - def from_dm_from_extra(extra: Optional[Dict[str, Any]]) -> bool: """Used in modular filter components to get the 'fromDataManagement' value from an extra map.""" if extra is None: diff --git a/tests/mocks/services.py b/tests/mocks/services.py index 50dd5afcfe..31d3c19c37 100644 --- a/tests/mocks/services.py +++ b/tests/mocks/services.py @@ -560,7 +560,7 @@ class MockMLModel(MLModel): SQUARE_INT_UINT_NDARRAYS = {"0": SQUARE_INT16_NDARRAY, "1": UINT64_NDARRAY} SQUARE_INT_UINT_TENSORS = { - "0": FlatTensor(shape=(3, 3), int16_tensor=FlatTensorDataInt16(data=SQUARE_INT16_NDARRAY)), + "0": FlatTensor(shape=(3, 3), int16_tensor=FlatTensorDataInt16(data=SQUARE_INT16_NDARRAY.flatten().astype(np.uint32))), "1": FlatTensor(shape=(3,), int64_tensor=FlatTensorDataInt64(data=INT64_NDARRAY)), } @@ -1978,7 +1978,7 @@ async def get_transform( uuid=uuid, ) - async def stream_transform_changes( + async def stream_transform_changes( # type: ignore self, *, extra: Optional[Mapping[str, Any]] = None, timeout: Optional[float] = None ) -> AsyncGenerator[StreamTransformChangesResponse, None]: self.extra = extra diff --git a/tests/test_data_client.py b/tests/test_data_client.py index 3e9a83ed2b..c91e02d0d2 100644 --- a/tests/test_data_client.py +++ b/tests/test_data_client.py @@ -342,17 +342,13 @@ async def test_delete_tabular_data_with_filter(self, service: MockData): method=METHOD, ) # Test with filter parameter - deleted_count = await client.delete_tabular_data( - organization_id=ORG_ID, delete_older_than_days=0, filter=delete_filter - ) + deleted_count = await client.delete_tabular_data(organization_id=ORG_ID, delete_older_than_days=0, filter=delete_filter) assert deleted_count == DELETE_REMOVE_RESPONSE assert service.organization_id == ORG_ID assert service.delete_older_than_days == 0 assert service.delete_tabular_filter == delete_filter # Test with None filter (default behavior) - deleted_count = await client.delete_tabular_data( - organization_id=ORG_ID, delete_older_than_days=0, filter=None - ) + deleted_count = await client.delete_tabular_data(organization_id=ORG_ID, delete_older_than_days=0, filter=None) assert deleted_count == DELETE_REMOVE_RESPONSE assert service.delete_tabular_filter is None diff --git a/tests/test_examples.py b/tests/test_examples.py index 1bd26c83d7..933c3179ae 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -22,6 +22,7 @@ def _is_local(address: str) -> bool: parsed = urlparse(address if "://" in address else f"http://{address}") return parsed.hostname in LOCAL_HOSTS + # If any new examples are added, add them to this list. EXAMPLES = [ {"dir": "complex_module", "entry": "src/main.py", "client": "client.py"}, @@ -126,9 +127,7 @@ def test_example(example): stdout=server_log_fh, stderr=subprocess.STDOUT, ) - assert _wait_for_server_ready(server_log), ( - f"viam-server did not start.\nlog:\n{open(server_log).read()}" - ) + assert _wait_for_server_ready(server_log), f"viam-server did not start.\nlog:\n{open(server_log).read()}" if client_file: local = str(_is_local(address)) @@ -142,9 +141,7 @@ def test_example(example): capture_output=True, timeout=30, ) - assert result.returncode == 0, ( - f"Client failed.\nstdout:\n{result.stdout.decode()}\nstderr:\n{result.stderr.decode()}" - ) + assert result.returncode == 0, f"Client failed.\nstdout:\n{result.stdout.decode()}\nstderr:\n{result.stderr.decode()}" finally: if server_proc: _terminate(server_proc) @@ -159,6 +156,5 @@ def test_check_example_coverage(): actual = {d.name for d in EXAMPLES_DIR.iterdir() if d.is_dir()} unknown = actual - known assert not unknown, ( - f"New example directories without test coverage: {unknown}. " - f"Add new examples to the EXAMPLES list in tests/test_examples.py." + f"New example directories without test coverage: {unknown}. Add new examples to the EXAMPLES list in tests/test_examples.py." ) diff --git a/tests/test_mlmodel_utils.py b/tests/test_mlmodel_utils.py index b24d8d37b3..5456d7292a 100644 --- a/tests/test_mlmodel_utils.py +++ b/tests/test_mlmodel_utils.py @@ -53,6 +53,6 @@ def test_ndarrays_to_flat_tensors(): assert type(output.tensors["0"].int8_tensor.data) is builtins.bytes bytes_buffer = output.tensors["0"].int8_tensor.data assert np.array_equal(np.frombuffer(bytes_buffer, dtype=np.int8).reshape(output.tensors["0"].shape), MockMLModel.INT8_NDARRAY) - assert np.array_equal(np.array(output.tensors["1"].int16_tensor.data, dtype=np.int16), MockMLModel.INT16_NDARRAY) + assert np.array_equal(np.array(output.tensors["1"].int16_tensor.data, dtype=np.uint32).astype(np.int16), MockMLModel.INT16_NDARRAY) assert np.array_equal(np.array(output.tensors["2"].int32_tensor.data, dtype=np.int32), MockMLModel.INT32_NDARRAY) assert np.array_equal(np.array(output.tensors["3"].int64_tensor.data, dtype=np.int64), MockMLModel.INT64_NDARRAY) diff --git a/uv.lock b/uv.lock index 012dc4fc27..48f5179c13 100644 --- a/uv.lock +++ b/uv.lock @@ -1,29 +1,19 @@ version = 1 revision = 3 -requires-python = ">=3.8.1" +requires-python = ">=3.10" resolution-markers = [ - "python_full_version < '3.9'", - "python_full_version >= '3.9' and python_full_version < '3.12'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", + "python_full_version < '3.11'", ] [[package]] name = "alabaster" -version = "0.7.13" +version = "1.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/71/a8ee96d1fd95ca04a0d2e2d9c4081dac4c2d2b12f7ddb899c8cb9bfd1532/alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2", size = 11454, upload-time = "2023-01-13T06:42:53.797Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/f8/d9c74d0daf3f742840fd818d69cfae176fa332022fd44e3469487d5a9420/alabaster-1.0.0.tar.gz", hash = "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", size = 24210, upload-time = "2024-07-26T18:15:03.762Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/64/88/c7083fc61120ab661c5d0b82cb77079fc1429d3f913a456c1c82cf4658f7/alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3", size = 13857, upload-time = "2023-01-13T06:42:52.336Z" }, -] - -[[package]] -name = "anyascii" -version = "0.3.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9f/52/93b9ea99063f7cf37fb67f5e3f49480686cbe7f228c48b9d713326223b6e/anyascii-0.3.2.tar.gz", hash = "sha256:9d5d32ef844fe225b8bc7cba7f950534fae4da27a9bf3a6bea2cb0ea46ce4730", size = 214052, upload-time = "2023-03-16T00:24:42.431Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/4f/7b/a9a747e0632271d855da379532b05a62c58e979813814a57fa3b3afeb3a4/anyascii-0.3.2-py3-none-any.whl", hash = "sha256:3b3beef6fc43d9036d3b0529050b0c48bfad8bc960e9e562d7223cfb94fe45d4", size = 289923, upload-time = "2023-03-16T00:24:39.649Z" }, + { url = "https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl", hash = "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b", size = 13929, upload-time = "2024-07-26T18:15:02.05Z" }, ] [[package]] @@ -37,238 +27,242 @@ wheels = [ [[package]] name = "astroid" -version = "3.2.4" +version = "4.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9e/53/1067e1113ecaf58312357f2cd93063674924119d80d173adc3f6f2387aa2/astroid-3.2.4.tar.gz", hash = "sha256:0e14202810b30da1b735827f78f5157be2bbd4a7a59b7707ca0bfc2fb4c0063a", size = 397576, upload-time = "2024-07-20T12:57:43.26Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/4c/569eefb533ce71bc9f4f12a4a0d7f0ba27e500681dec1312d4657e849d20/astroid-4.1.1.tar.gz", hash = "sha256:445d831fe785df8c670bbb46b900b8424b82f85b4af187103f71a63a63ebed43", size = 412522, upload-time = "2026-02-23T02:36:30.315Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/80/96/b32bbbb46170a1c8b8b1f28c794202e25cfe743565e9d3469b8eb1e0cc05/astroid-3.2.4-py3-none-any.whl", hash = "sha256:413658a61eeca6202a59231abb473f932038fbcbf1666587f66d482083413a25", size = 276348, upload-time = "2024-07-20T12:57:40.886Z" }, + { url = "https://files.pythonhosted.org/packages/32/53/bac4724684064bfee95ece0bb6caf3887e509006845e25388a12cac26d0c/astroid-4.1.1-py3-none-any.whl", hash = "sha256:6b28522096f7e7a36ffcf3be60e77de15e2411ab3a713184beac33fb8f20c0c9", size = 279273, upload-time = "2026-02-23T02:36:28.676Z" }, ] [[package]] name = "asttokens" -version = "2.4.1" +version = "3.0.1" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/45/1d/f03bcb60c4a3212e15f99a56085d93093a497718adf828d050b9d675da81/asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0", size = 62284, upload-time = "2023-10-26T10:03:05.06Z" } +sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/45/86/4736ac618d82a20d87d2f92ae19441ebc7ac9e7a581d7e58bbe79233b24a/asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24", size = 27764, upload-time = "2023-10-26T10:03:01.789Z" }, + { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" }, ] [[package]] name = "attrs" -version = "24.2.0" +version = "25.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", size = 792678, upload-time = "2024-08-06T14:37:38.364Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2", size = 63001, upload-time = "2024-08-06T14:37:36.958Z" }, + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, ] [[package]] name = "babel" -version = "2.16.0" +version = "2.18.0" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pytz", marker = "python_full_version < '3.9'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2a/74/f1bc80f23eeba13393b7222b11d95ca3af2c1e28edca18af487137eefed9/babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316", size = 9348104, upload-time = "2024-08-08T14:25:45.459Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/20/bc79bc575ba2e2a7f70e8a1155618bb1301eaa5132a8271373a6903f73f8/babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b", size = 9587599, upload-time = "2024-08-08T14:25:42.686Z" }, + { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" }, ] [[package]] -name = "backcall" -version = "0.2.0" +name = "backports-asyncio-runner" +version = "1.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/40/764a663805d84deee23043e1426a9175567db89c8b3287b5c2ad9f71aa93/backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e", size = 18041, upload-time = "2020-06-09T15:11:32.931Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/ff/70dca7d7cb1cbc0edb2c6cc0c38b65cba36cccc491eca64cabd5fe7f8670/backports_asyncio_runner-1.2.0.tar.gz", hash = "sha256:a5aa7b2b7d8f8bfcaa2b57313f70792df84e32a2a746f585213373f900b42162", size = 69893, upload-time = "2025-07-02T02:27:15.685Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4c/1c/ff6546b6c12603d8dd1070aa3c3d273ad4c07f5771689a7b69a550e8c951/backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255", size = 11157, upload-time = "2020-06-09T15:11:30.87Z" }, + { url = "https://files.pythonhosted.org/packages/a0/59/76ab57e3fe74484f48a53f8e337171b4a2349e506eabe136d7e01d059086/backports_asyncio_runner-1.2.0-py3-none-any.whl", hash = "sha256:0da0a936a8aeb554eccb426dc55af3ba63bcdc69fa1a600b5bb305413a4477b5", size = 12313, upload-time = "2025-07-02T02:27:14.263Z" }, ] [[package]] name = "certifi" -version = "2024.8.30" +version = "2026.2.25" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/ee/9b19140fe824b367c04c5e1b369942dd754c4c5462d5674002f75c4dedc1/certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9", size = 168507, upload-time = "2024-08-30T01:55:04.365Z" } +sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/12/90/3c9ff0512038035f59d279fddeb79f5f1eccd8859f06d6163c58798b9487/certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8", size = 167321, upload-time = "2024-08-30T01:55:02.591Z" }, + { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, ] [[package]] name = "cffi" -version = "1.17.1" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "pycparser" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621, upload-time = "2024-09-04T20:45:21.852Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/90/07/f44ca684db4e4f08a3fdc6eeb9a0d15dc6883efc7b8c90357fdbf74e186c/cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14", size = 182191, upload-time = "2024-09-04T20:43:30.027Z" }, - { url = "https://files.pythonhosted.org/packages/08/fd/cc2fedbd887223f9f5d170c96e57cbf655df9831a6546c1727ae13fa977a/cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67", size = 178592, upload-time = "2024-09-04T20:43:32.108Z" }, - { url = "https://files.pythonhosted.org/packages/de/cc/4635c320081c78d6ffc2cab0a76025b691a91204f4aa317d568ff9280a2d/cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382", size = 426024, upload-time = "2024-09-04T20:43:34.186Z" }, - { url = "https://files.pythonhosted.org/packages/b6/7b/3b2b250f3aab91abe5f8a51ada1b717935fdaec53f790ad4100fe2ec64d1/cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702", size = 448188, upload-time = "2024-09-04T20:43:36.286Z" }, - { url = "https://files.pythonhosted.org/packages/d3/48/1b9283ebbf0ec065148d8de05d647a986c5f22586b18120020452fff8f5d/cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3", size = 455571, upload-time = "2024-09-04T20:43:38.586Z" }, - { url = "https://files.pythonhosted.org/packages/40/87/3b8452525437b40f39ca7ff70276679772ee7e8b394934ff60e63b7b090c/cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6", size = 436687, upload-time = "2024-09-04T20:43:40.084Z" }, - { url = "https://files.pythonhosted.org/packages/8d/fb/4da72871d177d63649ac449aec2e8a29efe0274035880c7af59101ca2232/cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17", size = 446211, upload-time = "2024-09-04T20:43:41.526Z" }, - { url = "https://files.pythonhosted.org/packages/ab/a0/62f00bcb411332106c02b663b26f3545a9ef136f80d5df746c05878f8c4b/cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8", size = 461325, upload-time = "2024-09-04T20:43:43.117Z" }, - { url = "https://files.pythonhosted.org/packages/36/83/76127035ed2e7e27b0787604d99da630ac3123bfb02d8e80c633f218a11d/cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e", size = 438784, upload-time = "2024-09-04T20:43:45.256Z" }, - { url = "https://files.pythonhosted.org/packages/21/81/a6cd025db2f08ac88b901b745c163d884641909641f9b826e8cb87645942/cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be", size = 461564, upload-time = "2024-09-04T20:43:46.779Z" }, - { url = "https://files.pythonhosted.org/packages/f8/fe/4d41c2f200c4a457933dbd98d3cf4e911870877bd94d9656cc0fcb390681/cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c", size = 171804, upload-time = "2024-09-04T20:43:48.186Z" }, - { url = "https://files.pythonhosted.org/packages/d1/b6/0b0f5ab93b0df4acc49cae758c81fe4e5ef26c3ae2e10cc69249dfd8b3ab/cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15", size = 181299, upload-time = "2024-09-04T20:43:49.812Z" }, - { url = "https://files.pythonhosted.org/packages/6b/f4/927e3a8899e52a27fa57a48607ff7dc91a9ebe97399b357b85a0c7892e00/cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", size = 182264, upload-time = "2024-09-04T20:43:51.124Z" }, - { url = "https://files.pythonhosted.org/packages/6c/f5/6c3a8efe5f503175aaddcbea6ad0d2c96dad6f5abb205750d1b3df44ef29/cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", size = 178651, upload-time = "2024-09-04T20:43:52.872Z" }, - { url = "https://files.pythonhosted.org/packages/94/dd/a3f0118e688d1b1a57553da23b16bdade96d2f9bcda4d32e7d2838047ff7/cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", size = 445259, upload-time = "2024-09-04T20:43:56.123Z" }, - { url = "https://files.pythonhosted.org/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", size = 469200, upload-time = "2024-09-04T20:43:57.891Z" }, - { url = "https://files.pythonhosted.org/packages/1c/a0/a4fa9f4f781bda074c3ddd57a572b060fa0df7655d2a4247bbe277200146/cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", size = 477235, upload-time = "2024-09-04T20:44:00.18Z" }, - { url = "https://files.pythonhosted.org/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", size = 459721, upload-time = "2024-09-04T20:44:01.585Z" }, - { url = "https://files.pythonhosted.org/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", size = 467242, upload-time = "2024-09-04T20:44:03.467Z" }, - { url = "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", size = 477999, upload-time = "2024-09-04T20:44:05.023Z" }, - { url = "https://files.pythonhosted.org/packages/44/74/f2a2460684a1a2d00ca799ad880d54652841a780c4c97b87754f660c7603/cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", size = 454242, upload-time = "2024-09-04T20:44:06.444Z" }, - { url = "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", size = 478604, upload-time = "2024-09-04T20:44:08.206Z" }, - { url = "https://files.pythonhosted.org/packages/34/33/e1b8a1ba29025adbdcda5fb3a36f94c03d771c1b7b12f726ff7fef2ebe36/cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", size = 171727, upload-time = "2024-09-04T20:44:09.481Z" }, - { url = "https://files.pythonhosted.org/packages/3d/97/50228be003bb2802627d28ec0627837ac0bf35c90cf769812056f235b2d1/cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", size = 181400, upload-time = "2024-09-04T20:44:10.873Z" }, - { url = "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178, upload-time = "2024-09-04T20:44:12.232Z" }, - { url = "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840, upload-time = "2024-09-04T20:44:13.739Z" }, - { url = "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803, upload-time = "2024-09-04T20:44:15.231Z" }, - { url = "https://files.pythonhosted.org/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", size = 478850, upload-time = "2024-09-04T20:44:17.188Z" }, - { url = "https://files.pythonhosted.org/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", size = 485729, upload-time = "2024-09-04T20:44:18.688Z" }, - { url = "https://files.pythonhosted.org/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", size = 471256, upload-time = "2024-09-04T20:44:20.248Z" }, - { url = "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424, upload-time = "2024-09-04T20:44:21.673Z" }, - { url = "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568, upload-time = "2024-09-04T20:44:23.245Z" }, - { url = "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736, upload-time = "2024-09-04T20:44:24.757Z" }, - { url = "https://files.pythonhosted.org/packages/86/c5/28b2d6f799ec0bdecf44dced2ec5ed43e0eb63097b0f58c293583b406582/cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", size = 172448, upload-time = "2024-09-04T20:44:26.208Z" }, - { url = "https://files.pythonhosted.org/packages/50/b9/db34c4755a7bd1cb2d1603ac3863f22bcecbd1ba29e5ee841a4bc510b294/cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", size = 181976, upload-time = "2024-09-04T20:44:27.578Z" }, - { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989, upload-time = "2024-09-04T20:44:28.956Z" }, - { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802, upload-time = "2024-09-04T20:44:30.289Z" }, - { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792, upload-time = "2024-09-04T20:44:32.01Z" }, - { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893, upload-time = "2024-09-04T20:44:33.606Z" }, - { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810, upload-time = "2024-09-04T20:44:35.191Z" }, - { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200, upload-time = "2024-09-04T20:44:36.743Z" }, - { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447, upload-time = "2024-09-04T20:44:38.492Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358, upload-time = "2024-09-04T20:44:40.046Z" }, - { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469, upload-time = "2024-09-04T20:44:41.616Z" }, - { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475, upload-time = "2024-09-04T20:44:43.733Z" }, - { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009, upload-time = "2024-09-04T20:44:45.309Z" }, - { url = "https://files.pythonhosted.org/packages/48/08/15bf6b43ae9bd06f6b00ad8a91f5a8fe1069d4c9fab550a866755402724e/cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b", size = 182457, upload-time = "2024-09-04T20:44:47.892Z" }, - { url = "https://files.pythonhosted.org/packages/c2/5b/f1523dd545f92f7df468e5f653ffa4df30ac222f3c884e51e139878f1cb5/cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964", size = 425932, upload-time = "2024-09-04T20:44:49.491Z" }, - { url = "https://files.pythonhosted.org/packages/53/93/7e547ab4105969cc8c93b38a667b82a835dd2cc78f3a7dad6130cfd41e1d/cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9", size = 448585, upload-time = "2024-09-04T20:44:51.671Z" }, - { url = "https://files.pythonhosted.org/packages/56/c4/a308f2c332006206bb511de219efeff090e9d63529ba0a77aae72e82248b/cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc", size = 456268, upload-time = "2024-09-04T20:44:53.51Z" }, - { url = "https://files.pythonhosted.org/packages/ca/5b/b63681518265f2f4060d2b60755c1c77ec89e5e045fc3773b72735ddaad5/cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c", size = 436592, upload-time = "2024-09-04T20:44:55.085Z" }, - { url = "https://files.pythonhosted.org/packages/bb/19/b51af9f4a4faa4a8ac5a0e5d5c2522dcd9703d07fac69da34a36c4d960d3/cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1", size = 446512, upload-time = "2024-09-04T20:44:57.135Z" }, - { url = "https://files.pythonhosted.org/packages/e2/63/2bed8323890cb613bbecda807688a31ed11a7fe7afe31f8faaae0206a9a3/cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8", size = 171576, upload-time = "2024-09-04T20:44:58.535Z" }, - { url = "https://files.pythonhosted.org/packages/2f/70/80c33b044ebc79527447fd4fbc5455d514c3bb840dede4455de97da39b4d/cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1", size = 181229, upload-time = "2024-09-04T20:44:59.963Z" }, - { url = "https://files.pythonhosted.org/packages/b9/ea/8bb50596b8ffbc49ddd7a1ad305035daa770202a6b782fc164647c2673ad/cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16", size = 182220, upload-time = "2024-09-04T20:45:01.577Z" }, - { url = "https://files.pythonhosted.org/packages/ae/11/e77c8cd24f58285a82c23af484cf5b124a376b32644e445960d1a4654c3a/cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36", size = 178605, upload-time = "2024-09-04T20:45:03.837Z" }, - { url = "https://files.pythonhosted.org/packages/ed/65/25a8dc32c53bf5b7b6c2686b42ae2ad58743f7ff644844af7cdb29b49361/cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8", size = 424910, upload-time = "2024-09-04T20:45:05.315Z" }, - { url = "https://files.pythonhosted.org/packages/42/7a/9d086fab7c66bd7c4d0f27c57a1b6b068ced810afc498cc8c49e0088661c/cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576", size = 447200, upload-time = "2024-09-04T20:45:06.903Z" }, - { url = "https://files.pythonhosted.org/packages/da/63/1785ced118ce92a993b0ec9e0d0ac8dc3e5dbfbcaa81135be56c69cabbb6/cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87", size = 454565, upload-time = "2024-09-04T20:45:08.975Z" }, - { url = "https://files.pythonhosted.org/packages/74/06/90b8a44abf3556599cdec107f7290277ae8901a58f75e6fe8f970cd72418/cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0", size = 435635, upload-time = "2024-09-04T20:45:10.64Z" }, - { url = "https://files.pythonhosted.org/packages/bd/62/a1f468e5708a70b1d86ead5bab5520861d9c7eacce4a885ded9faa7729c3/cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3", size = 445218, upload-time = "2024-09-04T20:45:12.366Z" }, - { url = "https://files.pythonhosted.org/packages/5b/95/b34462f3ccb09c2594aa782d90a90b045de4ff1f70148ee79c69d37a0a5a/cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595", size = 460486, upload-time = "2024-09-04T20:45:13.935Z" }, - { url = "https://files.pythonhosted.org/packages/fc/fc/a1e4bebd8d680febd29cf6c8a40067182b64f00c7d105f8f26b5bc54317b/cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a", size = 437911, upload-time = "2024-09-04T20:45:15.696Z" }, - { url = "https://files.pythonhosted.org/packages/e6/c3/21cab7a6154b6a5ea330ae80de386e7665254835b9e98ecc1340b3a7de9a/cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e", size = 460632, upload-time = "2024-09-04T20:45:17.284Z" }, - { url = "https://files.pythonhosted.org/packages/cb/b5/fd9f8b5a84010ca169ee49f4e4ad6f8c05f4e3545b72ee041dbbcb159882/cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7", size = 171820, upload-time = "2024-09-04T20:45:18.762Z" }, - { url = "https://files.pythonhosted.org/packages/8c/52/b08750ce0bce45c143e1b5d7357ee8c55341b52bdef4b0f081af1eb248c2/cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662", size = 181290, upload-time = "2024-09-04T20:45:20.226Z" }, + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44", size = 184283, upload-time = "2025-09-08T23:22:08.01Z" }, + { url = "https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49", size = 180504, upload-time = "2025-09-08T23:22:10.637Z" }, + { url = "https://files.pythonhosted.org/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c", size = 208811, upload-time = "2025-09-08T23:22:12.267Z" }, + { url = "https://files.pythonhosted.org/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb", size = 216402, upload-time = "2025-09-08T23:22:13.455Z" }, + { url = "https://files.pythonhosted.org/packages/05/eb/b86f2a2645b62adcfff53b0dd97e8dfafb5c8aa864bd0d9a2c2049a0d551/cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0", size = 203217, upload-time = "2025-09-08T23:22:14.596Z" }, + { url = "https://files.pythonhosted.org/packages/9f/e0/6cbe77a53acf5acc7c08cc186c9928864bd7c005f9efd0d126884858a5fe/cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4", size = 203079, upload-time = "2025-09-08T23:22:15.769Z" }, + { url = "https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453", size = 216475, upload-time = "2025-09-08T23:22:17.427Z" }, + { url = "https://files.pythonhosted.org/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495", size = 218829, upload-time = "2025-09-08T23:22:19.069Z" }, + { url = "https://files.pythonhosted.org/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5", size = 211211, upload-time = "2025-09-08T23:22:20.588Z" }, + { url = "https://files.pythonhosted.org/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb", size = 218036, upload-time = "2025-09-08T23:22:22.143Z" }, + { url = "https://files.pythonhosted.org/packages/e2/cc/027d7fb82e58c48ea717149b03bcadcbdc293553edb283af792bd4bcbb3f/cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a", size = 172184, upload-time = "2025-09-08T23:22:23.328Z" }, + { url = "https://files.pythonhosted.org/packages/33/fa/072dd15ae27fbb4e06b437eb6e944e75b068deb09e2a2826039e49ee2045/cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739", size = 182790, upload-time = "2025-09-08T23:22:24.752Z" }, + { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344, upload-time = "2025-09-08T23:22:26.456Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560, upload-time = "2025-09-08T23:22:28.197Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613, upload-time = "2025-09-08T23:22:29.475Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476, upload-time = "2025-09-08T23:22:31.063Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374, upload-time = "2025-09-08T23:22:32.507Z" }, + { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597, upload-time = "2025-09-08T23:22:34.132Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574, upload-time = "2025-09-08T23:22:35.443Z" }, + { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971, upload-time = "2025-09-08T23:22:36.805Z" }, + { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972, upload-time = "2025-09-08T23:22:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078, upload-time = "2025-09-08T23:22:39.776Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload-time = "2025-09-08T23:22:40.95Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload-time = "2025-09-08T23:22:42.463Z" }, + { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload-time = "2025-09-08T23:22:43.623Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, ] [[package]] name = "charset-normalizer" -version = "3.3.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", size = 104809, upload-time = "2023-11-01T04:04:59.997Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/61/095a0aa1a84d1481998b534177c8566fdc50bb1233ea9a0478cd3cc075bd/charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", size = 194219, upload-time = "2023-11-01T04:02:29.048Z" }, - { url = "https://files.pythonhosted.org/packages/cc/94/f7cf5e5134175de79ad2059edf2adce18e0685ebdb9227ff0139975d0e93/charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", size = 122521, upload-time = "2023-11-01T04:02:32.452Z" }, - { url = "https://files.pythonhosted.org/packages/46/6a/d5c26c41c49b546860cc1acabdddf48b0b3fb2685f4f5617ac59261b44ae/charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", size = 120383, upload-time = "2023-11-01T04:02:34.11Z" }, - { url = "https://files.pythonhosted.org/packages/b8/60/e2f67915a51be59d4539ed189eb0a2b0d292bf79270410746becb32bc2c3/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", size = 138223, upload-time = "2023-11-01T04:02:36.213Z" }, - { url = "https://files.pythonhosted.org/packages/05/8c/eb854996d5fef5e4f33ad56927ad053d04dc820e4a3d39023f35cad72617/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", size = 148101, upload-time = "2023-11-01T04:02:38.067Z" }, - { url = "https://files.pythonhosted.org/packages/f6/93/bb6cbeec3bf9da9b2eba458c15966658d1daa8b982c642f81c93ad9b40e1/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", size = 140699, upload-time = "2023-11-01T04:02:39.436Z" }, - { url = "https://files.pythonhosted.org/packages/da/f1/3702ba2a7470666a62fd81c58a4c40be00670e5006a67f4d626e57f013ae/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", size = 142065, upload-time = "2023-11-01T04:02:41.357Z" }, - { url = "https://files.pythonhosted.org/packages/3f/ba/3f5e7be00b215fa10e13d64b1f6237eb6ebea66676a41b2bcdd09fe74323/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", size = 144505, upload-time = "2023-11-01T04:02:43.108Z" }, - { url = "https://files.pythonhosted.org/packages/33/c3/3b96a435c5109dd5b6adc8a59ba1d678b302a97938f032e3770cc84cd354/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", size = 139425, upload-time = "2023-11-01T04:02:45.427Z" }, - { url = "https://files.pythonhosted.org/packages/43/05/3bf613e719efe68fb3a77f9c536a389f35b95d75424b96b426a47a45ef1d/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", size = 145287, upload-time = "2023-11-01T04:02:46.705Z" }, - { url = "https://files.pythonhosted.org/packages/58/78/a0bc646900994df12e07b4ae5c713f2b3e5998f58b9d3720cce2aa45652f/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", size = 149929, upload-time = "2023-11-01T04:02:48.098Z" }, - { url = "https://files.pythonhosted.org/packages/eb/5c/97d97248af4920bc68687d9c3b3c0f47c910e21a8ff80af4565a576bd2f0/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", size = 141605, upload-time = "2023-11-01T04:02:49.605Z" }, - { url = "https://files.pythonhosted.org/packages/a8/31/47d018ef89f95b8aded95c589a77c072c55e94b50a41aa99c0a2008a45a4/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", size = 142646, upload-time = "2023-11-01T04:02:51.35Z" }, - { url = "https://files.pythonhosted.org/packages/ae/d5/4fecf1d58bedb1340a50f165ba1c7ddc0400252d6832ff619c4568b36cc0/charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", size = 92846, upload-time = "2023-11-01T04:02:52.679Z" }, - { url = "https://files.pythonhosted.org/packages/a2/a0/4af29e22cb5942488cf45630cbdd7cefd908768e69bdd90280842e4e8529/charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", size = 100343, upload-time = "2023-11-01T04:02:53.915Z" }, - { url = "https://files.pythonhosted.org/packages/68/77/02839016f6fbbf808e8b38601df6e0e66c17bbab76dff4613f7511413597/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", size = 191647, upload-time = "2023-11-01T04:02:55.329Z" }, - { url = "https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", size = 121434, upload-time = "2023-11-01T04:02:57.173Z" }, - { url = "https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", size = 118979, upload-time = "2023-11-01T04:02:58.442Z" }, - { url = "https://files.pythonhosted.org/packages/e4/a6/7ee57823d46331ddc37dd00749c95b0edec2c79b15fc0d6e6efb532e89ac/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", size = 136582, upload-time = "2023-11-01T04:02:59.776Z" }, - { url = "https://files.pythonhosted.org/packages/74/f1/0d9fe69ac441467b737ba7f48c68241487df2f4522dd7246d9426e7c690e/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", size = 146645, upload-time = "2023-11-01T04:03:02.186Z" }, - { url = "https://files.pythonhosted.org/packages/05/31/e1f51c76db7be1d4aef220d29fbfa5dbb4a99165d9833dcbf166753b6dc0/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", size = 139398, upload-time = "2023-11-01T04:03:04.255Z" }, - { url = "https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", size = 140273, upload-time = "2023-11-01T04:03:05.983Z" }, - { url = "https://files.pythonhosted.org/packages/07/07/7e554f2bbce3295e191f7e653ff15d55309a9ca40d0362fcdab36f01063c/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", size = 142577, upload-time = "2023-11-01T04:03:07.567Z" }, - { url = "https://files.pythonhosted.org/packages/d8/b5/eb705c313100defa57da79277d9207dc8d8e45931035862fa64b625bfead/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", size = 137747, upload-time = "2023-11-01T04:03:08.886Z" }, - { url = "https://files.pythonhosted.org/packages/19/28/573147271fd041d351b438a5665be8223f1dd92f273713cb882ddafe214c/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", size = 143375, upload-time = "2023-11-01T04:03:10.613Z" }, - { url = "https://files.pythonhosted.org/packages/cf/7c/f3b682fa053cc21373c9a839e6beba7705857075686a05c72e0f8c4980ca/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", size = 148474, upload-time = "2023-11-01T04:03:11.973Z" }, - { url = "https://files.pythonhosted.org/packages/1e/49/7ab74d4ac537ece3bc3334ee08645e231f39f7d6df6347b29a74b0537103/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", size = 140232, upload-time = "2023-11-01T04:03:13.505Z" }, - { url = "https://files.pythonhosted.org/packages/2d/dc/9dacba68c9ac0ae781d40e1a0c0058e26302ea0660e574ddf6797a0347f7/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", size = 140859, upload-time = "2023-11-01T04:03:17.362Z" }, - { url = "https://files.pythonhosted.org/packages/6c/c2/4a583f800c0708dd22096298e49f887b49d9746d0e78bfc1d7e29816614c/charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", size = 92509, upload-time = "2023-11-01T04:03:21.453Z" }, - { url = "https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", size = 99870, upload-time = "2023-11-01T04:03:22.723Z" }, - { url = "https://files.pythonhosted.org/packages/d1/b2/fcedc8255ec42afee97f9e6f0145c734bbe104aac28300214593eb326f1d/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", size = 192892, upload-time = "2023-11-01T04:03:24.135Z" }, - { url = "https://files.pythonhosted.org/packages/2e/7d/2259318c202f3d17f3fe6438149b3b9e706d1070fe3fcbb28049730bb25c/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", size = 122213, upload-time = "2023-11-01T04:03:25.66Z" }, - { url = "https://files.pythonhosted.org/packages/3a/52/9f9d17c3b54dc238de384c4cb5a2ef0e27985b42a0e5cc8e8a31d918d48d/charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", size = 119404, upload-time = "2023-11-01T04:03:27.04Z" }, - { url = "https://files.pythonhosted.org/packages/99/b0/9c365f6d79a9f0f3c379ddb40a256a67aa69c59609608fe7feb6235896e1/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", size = 137275, upload-time = "2023-11-01T04:03:28.466Z" }, - { url = "https://files.pythonhosted.org/packages/91/33/749df346e93d7a30cdcb90cbfdd41a06026317bfbfb62cd68307c1a3c543/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", size = 147518, upload-time = "2023-11-01T04:03:29.82Z" }, - { url = "https://files.pythonhosted.org/packages/72/1a/641d5c9f59e6af4c7b53da463d07600a695b9824e20849cb6eea8a627761/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", size = 140182, upload-time = "2023-11-01T04:03:31.511Z" }, - { url = "https://files.pythonhosted.org/packages/ee/fb/14d30eb4956408ee3ae09ad34299131fb383c47df355ddb428a7331cfa1e/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", size = 141869, upload-time = "2023-11-01T04:03:32.887Z" }, - { url = "https://files.pythonhosted.org/packages/df/3e/a06b18788ca2eb6695c9b22325b6fde7dde0f1d1838b1792a0076f58fe9d/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", size = 144042, upload-time = "2023-11-01T04:03:34.412Z" }, - { url = "https://files.pythonhosted.org/packages/45/59/3d27019d3b447a88fe7e7d004a1e04be220227760264cc41b405e863891b/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", size = 138275, upload-time = "2023-11-01T04:03:35.759Z" }, - { url = "https://files.pythonhosted.org/packages/7b/ef/5eb105530b4da8ae37d506ccfa25057961b7b63d581def6f99165ea89c7e/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", size = 144819, upload-time = "2023-11-01T04:03:37.216Z" }, - { url = "https://files.pythonhosted.org/packages/a2/51/e5023f937d7f307c948ed3e5c29c4b7a3e42ed2ee0b8cdf8f3a706089bf0/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", size = 149415, upload-time = "2023-11-01T04:03:38.694Z" }, - { url = "https://files.pythonhosted.org/packages/24/9d/2e3ef673dfd5be0154b20363c5cdcc5606f35666544381bee15af3778239/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", size = 141212, upload-time = "2023-11-01T04:03:40.07Z" }, - { url = "https://files.pythonhosted.org/packages/5b/ae/ce2c12fcac59cb3860b2e2d76dc405253a4475436b1861d95fe75bdea520/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", size = 142167, upload-time = "2023-11-01T04:03:41.491Z" }, - { url = "https://files.pythonhosted.org/packages/ed/3a/a448bf035dce5da359daf9ae8a16b8a39623cc395a2ffb1620aa1bce62b0/charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", size = 93041, upload-time = "2023-11-01T04:03:42.836Z" }, - { url = "https://files.pythonhosted.org/packages/b6/7c/8debebb4f90174074b827c63242c23851bdf00a532489fba57fef3416e40/charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", size = 100397, upload-time = "2023-11-01T04:03:44.467Z" }, - { url = "https://files.pythonhosted.org/packages/ef/d4/a1d72a8f6aa754fdebe91b848912025d30ab7dced61e9ed8aabbf791ed65/charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", size = 191415, upload-time = "2023-11-01T04:04:07.592Z" }, - { url = "https://files.pythonhosted.org/packages/13/82/83c188028b6f38d39538442dd127dc794c602ae6d45d66c469f4063a4c30/charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", size = 121051, upload-time = "2023-11-01T04:04:09.231Z" }, - { url = "https://files.pythonhosted.org/packages/16/ea/a9e284aa38cccea06b7056d4cbc7adf37670b1f8a668a312864abf1ff7c6/charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", size = 119143, upload-time = "2023-11-01T04:04:10.897Z" }, - { url = "https://files.pythonhosted.org/packages/34/2a/f392457d45e24a0c9bfc012887ed4f3c54bf5d4d05a5deb970ffec4b7fc0/charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", size = 137506, upload-time = "2023-11-01T04:04:12.612Z" }, - { url = "https://files.pythonhosted.org/packages/be/4d/9e370f8281cec2fcc9452c4d1ac513324c32957c5f70c73dd2fa8442a21a/charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", size = 147272, upload-time = "2023-11-01T04:04:13.978Z" }, - { url = "https://files.pythonhosted.org/packages/33/95/ef68482e4a6adf781fae8d183fb48d6f2be8facb414f49c90ba6a5149cd1/charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", size = 139734, upload-time = "2023-11-01T04:04:15.626Z" }, - { url = "https://files.pythonhosted.org/packages/3d/09/d82fe4a34c5f0585f9ea1df090e2a71eb9bb1e469723053e1ee9f57c16f3/charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", size = 141094, upload-time = "2023-11-01T04:04:17.286Z" }, - { url = "https://files.pythonhosted.org/packages/81/b2/160893421adfa3c45554fb418e321ed342bb10c0a4549e855b2b2a3699cb/charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", size = 144113, upload-time = "2023-11-01T04:04:18.739Z" }, - { url = "https://files.pythonhosted.org/packages/9e/ef/cd47a63d3200b232792e361cd67530173a09eb011813478b1c0fb8aa7226/charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", size = 138555, upload-time = "2023-11-01T04:04:20.482Z" }, - { url = "https://files.pythonhosted.org/packages/a8/6f/4ff299b97da2ed6358154b6eb3a2db67da2ae204e53d205aacb18a7e4f34/charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", size = 144944, upload-time = "2023-11-01T04:04:21.973Z" }, - { url = "https://files.pythonhosted.org/packages/d1/2f/0d1efd07c74c52b6886c32a3b906fb8afd2fecf448650e73ecb90a5a27f1/charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", size = 148925, upload-time = "2023-11-01T04:04:23.472Z" }, - { url = "https://files.pythonhosted.org/packages/bd/28/7ea29e73eea52c7e15b4b9108d0743fc9e4cc2cdb00d275af1df3d46d360/charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", size = 140732, upload-time = "2023-11-01T04:04:25.156Z" }, - { url = "https://files.pythonhosted.org/packages/b3/c1/ebca8e87c714a6a561cfee063f0655f742e54b8ae6e78151f60ba8708b3a/charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", size = 141288, upload-time = "2023-11-01T04:04:26.567Z" }, - { url = "https://files.pythonhosted.org/packages/74/20/8923a06f15eb3d7f6a306729360bd58f9ead1dc39bc7ea8831f4b407e4ae/charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", size = 92373, upload-time = "2023-11-01T04:04:29.116Z" }, - { url = "https://files.pythonhosted.org/packages/db/fb/d29e343e7c57bbf1231275939f6e75eb740cd47a9d7cb2c52ffeb62ef869/charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", size = 99577, upload-time = "2023-11-01T04:04:30.833Z" }, - { url = "https://files.pythonhosted.org/packages/f7/9d/bcf4a449a438ed6f19790eee543a86a740c77508fbc5ddab210ab3ba3a9a/charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", size = 194198, upload-time = "2023-11-01T04:04:32.328Z" }, - { url = "https://files.pythonhosted.org/packages/66/fe/c7d3da40a66a6bf2920cce0f436fa1f62ee28aaf92f412f0bf3b84c8ad6c/charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", size = 122494, upload-time = "2023-11-01T04:04:33.993Z" }, - { url = "https://files.pythonhosted.org/packages/2a/9d/a6d15bd1e3e2914af5955c8eb15f4071997e7078419328fee93dfd497eb7/charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", size = 120393, upload-time = "2023-11-01T04:04:35.533Z" }, - { url = "https://files.pythonhosted.org/packages/3d/85/5b7416b349609d20611a64718bed383b9251b5a601044550f0c8983b8900/charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", size = 138331, upload-time = "2023-11-01T04:04:37.199Z" }, - { url = "https://files.pythonhosted.org/packages/79/66/8946baa705c588521afe10b2d7967300e49380ded089a62d38537264aece/charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", size = 148097, upload-time = "2023-11-01T04:04:39.217Z" }, - { url = "https://files.pythonhosted.org/packages/44/80/b339237b4ce635b4af1c73742459eee5f97201bd92b2371c53e11958392e/charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", size = 140711, upload-time = "2023-11-01T04:04:40.964Z" }, - { url = "https://files.pythonhosted.org/packages/98/69/5d8751b4b670d623aa7a47bef061d69c279e9f922f6705147983aa76c3ce/charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", size = 142251, upload-time = "2023-11-01T04:04:42.893Z" }, - { url = "https://files.pythonhosted.org/packages/1f/8d/33c860a7032da5b93382cbe2873261f81467e7b37f4ed91e25fed62fd49b/charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", size = 144636, upload-time = "2023-11-01T04:04:44.693Z" }, - { url = "https://files.pythonhosted.org/packages/c2/65/52aaf47b3dd616c11a19b1052ce7fa6321250a7a0b975f48d8c366733b9f/charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", size = 139514, upload-time = "2023-11-01T04:04:46.388Z" }, - { url = "https://files.pythonhosted.org/packages/51/fd/0ee5b1c2860bb3c60236d05b6e4ac240cf702b67471138571dad91bcfed8/charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", size = 145528, upload-time = "2023-11-01T04:04:47.893Z" }, - { url = "https://files.pythonhosted.org/packages/e1/9c/60729bf15dc82e3aaf5f71e81686e42e50715a1399770bcde1a9e43d09db/charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", size = 149804, upload-time = "2023-11-01T04:04:49.979Z" }, - { url = "https://files.pythonhosted.org/packages/53/cd/aa4b8a4d82eeceb872f83237b2d27e43e637cac9ffaef19a1321c3bafb67/charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", size = 141708, upload-time = "2023-11-01T04:04:51.846Z" }, - { url = "https://files.pythonhosted.org/packages/54/7f/cad0b328759630814fcf9d804bfabaf47776816ad4ef2e9938b7e1123d04/charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561", size = 142708, upload-time = "2023-11-01T04:04:53.252Z" }, - { url = "https://files.pythonhosted.org/packages/c1/9d/254a2f1bcb0ce9acad838e94ed05ba71a7cb1e27affaa4d9e1ca3958cdb6/charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", size = 92830, upload-time = "2023-11-01T04:04:54.827Z" }, - { url = "https://files.pythonhosted.org/packages/2f/0e/d7303ccae9735ff8ff01e36705ad6233ad2002962e8668a970fc000c5e1b/charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", size = 100376, upload-time = "2023-11-01T04:04:56.588Z" }, - { url = "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", size = 48543, upload-time = "2023-11-01T04:04:58.622Z" }, +version = "3.4.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/35/02daf95b9cd686320bb622eb148792655c9412dbb9b67abb5694e5910a24/charset_normalizer-3.4.5.tar.gz", hash = "sha256:95adae7b6c42a6c5b5b559b1a99149f090a57128155daeea91732c8d970d8644", size = 134804, upload-time = "2026-03-06T06:03:19.46Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/21/a2b1505639008ba2e6ef03733a81fc6cfd6a07ea6139a2b76421230b8dad/charset_normalizer-3.4.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4167a621a9a1a986c73777dbc15d4b5eac8ac5c10393374109a343d4013ec765", size = 283319, upload-time = "2026-03-06T06:00:26.433Z" }, + { url = "https://files.pythonhosted.org/packages/70/67/df234c29b68f4e1e095885c9db1cb4b69b8aba49cf94fac041db4aaf1267/charset_normalizer-3.4.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3f64c6bf8f32f9133b668c7f7a7cbdbc453412bc95ecdbd157f3b1e377a92990", size = 189974, upload-time = "2026-03-06T06:00:28.222Z" }, + { url = "https://files.pythonhosted.org/packages/df/7f/fc66af802961c6be42e2c7b69c58f95cbd1f39b0e81b3365d8efe2a02a04/charset_normalizer-3.4.5-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:568e3c34b58422075a1b49575a6abc616d9751b4d61b23f712e12ebb78fe47b2", size = 207866, upload-time = "2026-03-06T06:00:29.769Z" }, + { url = "https://files.pythonhosted.org/packages/c9/23/404eb36fac4e95b833c50e305bba9a241086d427bb2167a42eac7c4f7da4/charset_normalizer-3.4.5-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:036c079aa08a6a592b82487f97c60b439428320ed1b2ea0b3912e99d30c77765", size = 203239, upload-time = "2026-03-06T06:00:31.086Z" }, + { url = "https://files.pythonhosted.org/packages/4b/2f/8a1d989bfadd120c90114ab33e0d2a0cbde05278c1fc15e83e62d570f50a/charset_normalizer-3.4.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:340810d34ef83af92148e96e3e44cb2d3f910d2bf95e5618a5c467d9f102231d", size = 196529, upload-time = "2026-03-06T06:00:32.608Z" }, + { url = "https://files.pythonhosted.org/packages/a5/0c/c75f85ff7ca1f051958bb518cd43922d86f576c03947a050fbedfdfb4f15/charset_normalizer-3.4.5-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:cd2d0f0ec9aa977a27731a3209ebbcacebebaf41f902bd453a928bfd281cf7f8", size = 184152, upload-time = "2026-03-06T06:00:33.93Z" }, + { url = "https://files.pythonhosted.org/packages/f9/20/4ed37f6199af5dde94d4aeaf577f3813a5ec6635834cda1d957013a09c76/charset_normalizer-3.4.5-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0b362bcd27819f9c07cbf23db4e0e8cd4b44c5ecd900c2ff907b2b92274a7412", size = 195226, upload-time = "2026-03-06T06:00:35.469Z" }, + { url = "https://files.pythonhosted.org/packages/28/31/7ba1102178cba7c34dcc050f43d427172f389729e356038f0726253dd914/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:77be992288f720306ab4108fe5c74797de327f3248368dfc7e1a916d6ed9e5a2", size = 192933, upload-time = "2026-03-06T06:00:36.83Z" }, + { url = "https://files.pythonhosted.org/packages/4b/23/f86443ab3921e6a60b33b93f4a1161222231f6c69bc24fb18f3bee7b8518/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:8b78d8a609a4b82c273257ee9d631ded7fac0d875bdcdccc109f3ee8328cfcb1", size = 185647, upload-time = "2026-03-06T06:00:38.367Z" }, + { url = "https://files.pythonhosted.org/packages/82/44/08b8be891760f1f5a6d23ce11d6d50c92981603e6eb740b4f72eea9424e2/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ba20bdf69bd127f66d0174d6f2a93e69045e0b4036dc1ca78e091bcc765830c4", size = 209533, upload-time = "2026-03-06T06:00:41.931Z" }, + { url = "https://files.pythonhosted.org/packages/3b/5f/df114f23406199f8af711ddccfbf409ffbc5b7cdc18fa19644997ff0c9bb/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:76a9d0de4d0eab387822e7b35d8f89367dd237c72e82ab42b9f7bf5e15ada00f", size = 195901, upload-time = "2026-03-06T06:00:43.978Z" }, + { url = "https://files.pythonhosted.org/packages/07/83/71ef34a76fe8aa05ff8f840244bda2d61e043c2ef6f30d200450b9f6a1be/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8fff79bf5978c693c9b1a4d71e4a94fddfb5fe744eb062a318e15f4a2f63a550", size = 204950, upload-time = "2026-03-06T06:00:45.202Z" }, + { url = "https://files.pythonhosted.org/packages/58/40/0253be623995365137d7dc68e45245036207ab2227251e69a3d93ce43183/charset_normalizer-3.4.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c7e84e0c0005e3bdc1a9211cd4e62c78ba80bc37b2365ef4410cd2007a9047f2", size = 198546, upload-time = "2026-03-06T06:00:46.481Z" }, + { url = "https://files.pythonhosted.org/packages/ed/5c/5f3cb5b259a130895ef5ae16b38eaf141430fa3f7af50cd06c5d67e4f7b2/charset_normalizer-3.4.5-cp310-cp310-win32.whl", hash = "sha256:58ad8270cfa5d4bef1bc85bd387217e14ff154d6630e976c6f56f9a040757475", size = 132516, upload-time = "2026-03-06T06:00:47.924Z" }, + { url = "https://files.pythonhosted.org/packages/a5/c3/84fb174e7770f2df2e1a2115090771bfbc2227fb39a765c6d00568d1aab4/charset_normalizer-3.4.5-cp310-cp310-win_amd64.whl", hash = "sha256:02a9d1b01c1e12c27883b0c9349e0bcd9ae92e727ff1a277207e1a262b1cbf05", size = 142906, upload-time = "2026-03-06T06:00:49.389Z" }, + { url = "https://files.pythonhosted.org/packages/d7/b2/6f852f8b969f2cbd0d4092d2e60139ab1af95af9bb651337cae89ec0f684/charset_normalizer-3.4.5-cp310-cp310-win_arm64.whl", hash = "sha256:039215608ac7b358c4da0191d10fc76868567fbf276d54c14721bdedeb6de064", size = 133258, upload-time = "2026-03-06T06:00:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/8f/9e/bcec3b22c64ecec47d39bf5167c2613efd41898c019dccd4183f6aa5d6a7/charset_normalizer-3.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:610f72c0ee565dfb8ae1241b666119582fdbfe7c0975c175be719f940e110694", size = 279531, upload-time = "2026-03-06T06:00:52.252Z" }, + { url = "https://files.pythonhosted.org/packages/58/12/81fd25f7e7078ab5d1eedbb0fac44be4904ae3370a3bf4533c8f2d159acd/charset_normalizer-3.4.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60d68e820af339df4ae8358c7a2e7596badeb61e544438e489035f9fbf3246a5", size = 188006, upload-time = "2026-03-06T06:00:53.8Z" }, + { url = "https://files.pythonhosted.org/packages/ae/6e/f2d30e8c27c1b0736a6520311982cf5286cfc7f6cac77d7bc1325e3a23f2/charset_normalizer-3.4.5-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:10b473fc8dca1c3ad8559985794815f06ca3fc71942c969129070f2c3cdf7281", size = 205085, upload-time = "2026-03-06T06:00:55.311Z" }, + { url = "https://files.pythonhosted.org/packages/d0/90/d12cefcb53b5931e2cf792a33718d7126efb116a320eaa0742c7059a95e4/charset_normalizer-3.4.5-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d4eb8ac7469b2a5d64b5b8c04f84d8bf3ad340f4514b98523805cbf46e3b3923", size = 200545, upload-time = "2026-03-06T06:00:56.532Z" }, + { url = "https://files.pythonhosted.org/packages/03/f4/44d3b830a20e89ff82a3134912d9a1cf6084d64f3b95dcad40f74449a654/charset_normalizer-3.4.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bcb3227c3d9aaf73eaaab1db7ccd80a8995c509ee9941e2aae060ca6e4e5d81", size = 193863, upload-time = "2026-03-06T06:00:57.823Z" }, + { url = "https://files.pythonhosted.org/packages/25/4b/f212119c18a6320a9d4a730d1b4057875cdeabf21b3614f76549042ef8a8/charset_normalizer-3.4.5-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:75ee9c1cce2911581a70a3c0919d8bccf5b1cbc9b0e5171400ec736b4b569497", size = 181827, upload-time = "2026-03-06T06:00:59.323Z" }, + { url = "https://files.pythonhosted.org/packages/74/00/b26158e48b425a202a92965f8069e8a63d9af1481dfa206825d7f74d2a3c/charset_normalizer-3.4.5-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d1401945cb77787dbd3af2446ff2d75912327c4c3a1526ab7955ecf8600687c", size = 191085, upload-time = "2026-03-06T06:01:00.546Z" }, + { url = "https://files.pythonhosted.org/packages/c4/c2/1c1737bf6fd40335fe53d28fe49afd99ee4143cc57a845e99635ce0b9b6d/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a45e504f5e1be0bd385935a8e1507c442349ca36f511a47057a71c9d1d6ea9e", size = 190688, upload-time = "2026-03-06T06:01:02.479Z" }, + { url = "https://files.pythonhosted.org/packages/5a/3d/abb5c22dc2ef493cd56522f811246a63c5427c08f3e3e50ab663de27fcf4/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:e09f671a54ce70b79a1fc1dc6da3072b7ef7251fadb894ed92d9aa8218465a5f", size = 183077, upload-time = "2026-03-06T06:01:04.231Z" }, + { url = "https://files.pythonhosted.org/packages/44/33/5298ad4d419a58e25b3508e87f2758d1442ff00c2471f8e0403dab8edad5/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d01de5e768328646e6a3fa9e562706f8f6641708c115c62588aef2b941a4f88e", size = 206706, upload-time = "2026-03-06T06:01:05.773Z" }, + { url = "https://files.pythonhosted.org/packages/7b/17/51e7895ac0f87c3b91d276a449ef09f5532a7529818f59646d7a55089432/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:131716d6786ad5e3dc542f5cc6f397ba3339dc0fb87f87ac30e550e8987756af", size = 191665, upload-time = "2026-03-06T06:01:07.473Z" }, + { url = "https://files.pythonhosted.org/packages/90/8f/cce9adf1883e98906dbae380d769b4852bb0fa0004bc7d7a2243418d3ea8/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a374cc0b88aa710e8865dc1bd6edb3743c59f27830f0293ab101e4cf3ce9f85", size = 201950, upload-time = "2026-03-06T06:01:08.973Z" }, + { url = "https://files.pythonhosted.org/packages/08/ca/bce99cd5c397a52919e2769d126723f27a4c037130374c051c00470bcd38/charset_normalizer-3.4.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d31f0d1671e1534e395f9eb84a68e0fb670e1edb1fe819a9d7f564ae3bc4e53f", size = 195830, upload-time = "2026-03-06T06:01:10.155Z" }, + { url = "https://files.pythonhosted.org/packages/87/4f/2e3d023a06911f1281f97b8f036edc9872167036ca6f55cc874a0be6c12c/charset_normalizer-3.4.5-cp311-cp311-win32.whl", hash = "sha256:cace89841c0599d736d3d74a27bc5821288bb47c5441923277afc6059d7fbcb4", size = 132029, upload-time = "2026-03-06T06:01:11.706Z" }, + { url = "https://files.pythonhosted.org/packages/fe/1f/a853b73d386521fd44b7f67ded6b17b7b2367067d9106a5c4b44f9a34274/charset_normalizer-3.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:f8102ae93c0bc863b1d41ea0f4499c20a83229f52ed870850892df555187154a", size = 142404, upload-time = "2026-03-06T06:01:12.865Z" }, + { url = "https://files.pythonhosted.org/packages/b4/10/dba36f76b71c38e9d391abe0fd8a5b818790e053c431adecfc98c35cd2a9/charset_normalizer-3.4.5-cp311-cp311-win_arm64.whl", hash = "sha256:ed98364e1c262cf5f9363c3eca8c2df37024f52a8fa1180a3610014f26eac51c", size = 132796, upload-time = "2026-03-06T06:01:14.106Z" }, + { url = "https://files.pythonhosted.org/packages/9c/b6/9ee9c1a608916ca5feae81a344dffbaa53b26b90be58cc2159e3332d44ec/charset_normalizer-3.4.5-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed97c282ee4f994ef814042423a529df9497e3c666dca19be1d4cd1129dc7ade", size = 280976, upload-time = "2026-03-06T06:01:15.276Z" }, + { url = "https://files.pythonhosted.org/packages/f8/d8/a54f7c0b96f1df3563e9190f04daf981e365a9b397eedfdfb5dbef7e5c6c/charset_normalizer-3.4.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0294916d6ccf2d069727d65973c3a1ca477d68708db25fd758dd28b0827cff54", size = 189356, upload-time = "2026-03-06T06:01:16.511Z" }, + { url = "https://files.pythonhosted.org/packages/42/69/2bf7f76ce1446759a5787cb87d38f6a61eb47dbbdf035cfebf6347292a65/charset_normalizer-3.4.5-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dc57a0baa3eeedd99fafaef7511b5a6ef4581494e8168ee086031744e2679467", size = 206369, upload-time = "2026-03-06T06:01:17.853Z" }, + { url = "https://files.pythonhosted.org/packages/10/9c/949d1a46dab56b959d9a87272482195f1840b515a3380e39986989a893ae/charset_normalizer-3.4.5-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ed1a9a204f317ef879b32f9af507d47e49cd5e7f8e8d5d96358c98373314fc60", size = 203285, upload-time = "2026-03-06T06:01:19.473Z" }, + { url = "https://files.pythonhosted.org/packages/67/5c/ae30362a88b4da237d71ea214a8c7eb915db3eec941adda511729ac25fa2/charset_normalizer-3.4.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ad83b8f9379176c841f8865884f3514d905bcd2a9a3b210eaa446e7d2223e4d", size = 196274, upload-time = "2026-03-06T06:01:20.728Z" }, + { url = "https://files.pythonhosted.org/packages/b2/07/c9f2cb0e46cb6d64fdcc4f95953747b843bb2181bda678dc4e699b8f0f9a/charset_normalizer-3.4.5-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:a118e2e0b5ae6b0120d5efa5f866e58f2bb826067a646431da4d6a2bdae7950e", size = 184715, upload-time = "2026-03-06T06:01:22.194Z" }, + { url = "https://files.pythonhosted.org/packages/36/64/6b0ca95c44fddf692cd06d642b28f63009d0ce325fad6e9b2b4d0ef86a52/charset_normalizer-3.4.5-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:754f96058e61a5e22e91483f823e07df16416ce76afa4ebf306f8e1d1296d43f", size = 193426, upload-time = "2026-03-06T06:01:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/50/bc/a730690d726403743795ca3f5bb2baf67838c5fea78236098f324b965e40/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0c300cefd9b0970381a46394902cd18eaf2aa00163f999590ace991989dcd0fc", size = 191780, upload-time = "2026-03-06T06:01:25.053Z" }, + { url = "https://files.pythonhosted.org/packages/97/4f/6c0bc9af68222b22951552d73df4532b5be6447cee32d58e7e8c74ecbb7b/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c108f8619e504140569ee7de3f97d234f0fbae338a7f9f360455071ef9855a95", size = 185805, upload-time = "2026-03-06T06:01:26.294Z" }, + { url = "https://files.pythonhosted.org/packages/dd/b9/a523fb9b0ee90814b503452b2600e4cbc118cd68714d57041564886e7325/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d1028de43596a315e2720a9849ee79007ab742c06ad8b45a50db8cdb7ed4a82a", size = 208342, upload-time = "2026-03-06T06:01:27.55Z" }, + { url = "https://files.pythonhosted.org/packages/4d/61/c59e761dee4464050713e50e27b58266cc8e209e518c0b378c1580c959ba/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:19092dde50335accf365cce21998a1c6dd8eafd42c7b226eb54b2747cdce2fac", size = 193661, upload-time = "2026-03-06T06:01:29.051Z" }, + { url = "https://files.pythonhosted.org/packages/1c/43/729fa30aad69783f755c5ad8649da17ee095311ca42024742701e202dc59/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4354e401eb6dab9aed3c7b4030514328a6c748d05e1c3e19175008ca7de84fb1", size = 204819, upload-time = "2026-03-06T06:01:30.298Z" }, + { url = "https://files.pythonhosted.org/packages/87/33/d9b442ce5a91b96fc0840455a9e49a611bbadae6122778d0a6a79683dd31/charset_normalizer-3.4.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a68766a3c58fde7f9aaa22b3786276f62ab2f594efb02d0a1421b6282e852e98", size = 198080, upload-time = "2026-03-06T06:01:31.478Z" }, + { url = "https://files.pythonhosted.org/packages/56/5a/b8b5a23134978ee9885cee2d6995f4c27cc41f9baded0a9685eabc5338f0/charset_normalizer-3.4.5-cp312-cp312-win32.whl", hash = "sha256:1827734a5b308b65ac54e86a618de66f935a4f63a8a462ff1e19a6788d6c2262", size = 132630, upload-time = "2026-03-06T06:01:33.056Z" }, + { url = "https://files.pythonhosted.org/packages/70/53/e44a4c07e8904500aec95865dc3f6464dc3586a039ef0df606eb3ac38e35/charset_normalizer-3.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:728c6a963dfab66ef865f49286e45239384249672cd598576765acc2a640a636", size = 142856, upload-time = "2026-03-06T06:01:34.489Z" }, + { url = "https://files.pythonhosted.org/packages/ea/aa/c5628f7cad591b1cf45790b7a61483c3e36cf41349c98af7813c483fd6e8/charset_normalizer-3.4.5-cp312-cp312-win_arm64.whl", hash = "sha256:75dfd1afe0b1647449e852f4fb428195a7ed0588947218f7ba929f6538487f02", size = 132982, upload-time = "2026-03-06T06:01:35.641Z" }, + { url = "https://files.pythonhosted.org/packages/f5/48/9f34ec4bb24aa3fdba1890c1bddb97c8a4be1bd84ef5c42ac2352563ad05/charset_normalizer-3.4.5-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ac59c15e3f1465f722607800c68713f9fbc2f672b9eb649fe831da4019ae9b23", size = 280788, upload-time = "2026-03-06T06:01:37.126Z" }, + { url = "https://files.pythonhosted.org/packages/0e/09/6003e7ffeb90cc0560da893e3208396a44c210c5ee42efff539639def59b/charset_normalizer-3.4.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:165c7b21d19365464e8f70e5ce5e12524c58b48c78c1f5a57524603c1ab003f8", size = 188890, upload-time = "2026-03-06T06:01:38.73Z" }, + { url = "https://files.pythonhosted.org/packages/42/1e/02706edf19e390680daa694d17e2b8eab4b5f7ac285e2a51168b4b22ee6b/charset_normalizer-3.4.5-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:28269983f25a4da0425743d0d257a2d6921ea7d9b83599d4039486ec5b9f911d", size = 206136, upload-time = "2026-03-06T06:01:40.016Z" }, + { url = "https://files.pythonhosted.org/packages/c7/87/942c3def1b37baf3cf786bad01249190f3ca3d5e63a84f831e704977de1f/charset_normalizer-3.4.5-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d27ce22ec453564770d29d03a9506d449efbb9fa13c00842262b2f6801c48cce", size = 202551, upload-time = "2026-03-06T06:01:41.522Z" }, + { url = "https://files.pythonhosted.org/packages/94/0a/af49691938dfe175d71b8a929bd7e4ace2809c0c5134e28bc535660d5262/charset_normalizer-3.4.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0625665e4ebdddb553ab185de5db7054393af8879fb0c87bd5690d14379d6819", size = 195572, upload-time = "2026-03-06T06:01:43.208Z" }, + { url = "https://files.pythonhosted.org/packages/20/ea/dfb1792a8050a8e694cfbde1570ff97ff74e48afd874152d38163d1df9ae/charset_normalizer-3.4.5-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:c23eb3263356d94858655b3e63f85ac5d50970c6e8febcdde7830209139cc37d", size = 184438, upload-time = "2026-03-06T06:01:44.755Z" }, + { url = "https://files.pythonhosted.org/packages/72/12/c281e2067466e3ddd0595bfaea58a6946765ace5c72dfa3edc2f5f118026/charset_normalizer-3.4.5-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e6302ca4ae283deb0af68d2fbf467474b8b6aedcd3dab4db187e07f94c109763", size = 193035, upload-time = "2026-03-06T06:01:46.051Z" }, + { url = "https://files.pythonhosted.org/packages/ba/4f/3792c056e7708e10464bad0438a44708886fb8f92e3c3d29ec5e2d964d42/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e51ae7d81c825761d941962450f50d041db028b7278e7b08930b4541b3e45cb9", size = 191340, upload-time = "2026-03-06T06:01:47.547Z" }, + { url = "https://files.pythonhosted.org/packages/e7/86/80ddba897127b5c7a9bccc481b0cd36c8fefa485d113262f0fe4332f0bf4/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:597d10dec876923e5c59e48dbd366e852eacb2b806029491d307daea6b917d7c", size = 185464, upload-time = "2026-03-06T06:01:48.764Z" }, + { url = "https://files.pythonhosted.org/packages/4d/00/b5eff85ba198faacab83e0e4b6f0648155f072278e3b392a82478f8b988b/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5cffde4032a197bd3b42fd0b9509ec60fb70918d6970e4cc773f20fc9180ca67", size = 208014, upload-time = "2026-03-06T06:01:50.371Z" }, + { url = "https://files.pythonhosted.org/packages/c8/11/d36f70be01597fd30850dde8a1269ebc8efadd23ba5785808454f2389bde/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2da4eedcb6338e2321e831a0165759c0c620e37f8cd044a263ff67493be8ffb3", size = 193297, upload-time = "2026-03-06T06:01:51.933Z" }, + { url = "https://files.pythonhosted.org/packages/1a/1d/259eb0a53d4910536c7c2abb9cb25f4153548efb42800c6a9456764649c0/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:65a126fb4b070d05340a84fc709dd9e7c75d9b063b610ece8a60197a291d0adf", size = 204321, upload-time = "2026-03-06T06:01:53.887Z" }, + { url = "https://files.pythonhosted.org/packages/84/31/faa6c5b9d3688715e1ed1bb9d124c384fe2fc1633a409e503ffe1c6398c1/charset_normalizer-3.4.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c7a80a9242963416bd81f99349d5f3fce1843c303bd404f204918b6d75a75fd6", size = 197509, upload-time = "2026-03-06T06:01:56.439Z" }, + { url = "https://files.pythonhosted.org/packages/fd/a5/c7d9dd1503ffc08950b3260f5d39ec2366dd08254f0900ecbcf3a6197c7c/charset_normalizer-3.4.5-cp313-cp313-win32.whl", hash = "sha256:f1d725b754e967e648046f00c4facc42d414840f5ccc670c5670f59f83693e4f", size = 132284, upload-time = "2026-03-06T06:01:57.812Z" }, + { url = "https://files.pythonhosted.org/packages/b9/0f/57072b253af40c8aa6636e6de7d75985624c1eb392815b2f934199340a89/charset_normalizer-3.4.5-cp313-cp313-win_amd64.whl", hash = "sha256:e37bd100d2c5d3ba35db9c7c5ba5a9228cbcffe5c4778dc824b164e5257813d7", size = 142630, upload-time = "2026-03-06T06:01:59.062Z" }, + { url = "https://files.pythonhosted.org/packages/31/41/1c4b7cc9f13bd9d369ce3bc993e13d374ce25fa38a2663644283ecf422c1/charset_normalizer-3.4.5-cp313-cp313-win_arm64.whl", hash = "sha256:93b3b2cc5cf1b8743660ce77a4f45f3f6d1172068207c1defc779a36eea6bb36", size = 133254, upload-time = "2026-03-06T06:02:00.281Z" }, + { url = "https://files.pythonhosted.org/packages/43/be/0f0fd9bb4a7fa4fb5067fb7d9ac693d4e928d306f80a0d02bde43a7c4aee/charset_normalizer-3.4.5-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8197abe5ca1ffb7d91e78360f915eef5addff270f8a71c1fc5be24a56f3e4873", size = 280232, upload-time = "2026-03-06T06:02:01.508Z" }, + { url = "https://files.pythonhosted.org/packages/28/02/983b5445e4bef49cd8c9da73a8e029f0825f39b74a06d201bfaa2e55142a/charset_normalizer-3.4.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2aecdb364b8a1802afdc7f9327d55dad5366bc97d8502d0f5854e50712dbc5f", size = 189688, upload-time = "2026-03-06T06:02:02.857Z" }, + { url = "https://files.pythonhosted.org/packages/d0/88/152745c5166437687028027dc080e2daed6fe11cfa95a22f4602591c42db/charset_normalizer-3.4.5-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a66aa5022bf81ab4b1bebfb009db4fd68e0c6d4307a1ce5ef6a26e5878dfc9e4", size = 206833, upload-time = "2026-03-06T06:02:05.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0f/ebc15c8b02af2f19be9678d6eed115feeeccc45ce1f4b098d986c13e8769/charset_normalizer-3.4.5-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d77f97e515688bd615c1d1f795d540f32542d514242067adcb8ef532504cb9ee", size = 202879, upload-time = "2026-03-06T06:02:06.446Z" }, + { url = "https://files.pythonhosted.org/packages/38/9c/71336bff6934418dc8d1e8a1644176ac9088068bc571da612767619c97b3/charset_normalizer-3.4.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01a1ed54b953303ca7e310fafe0fe347aab348bd81834a0bcd602eb538f89d66", size = 195764, upload-time = "2026-03-06T06:02:08.763Z" }, + { url = "https://files.pythonhosted.org/packages/b7/95/ce92fde4f98615661871bc282a856cf9b8a15f686ba0af012984660d480b/charset_normalizer-3.4.5-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:b2d37d78297b39a9eb9eb92c0f6df98c706467282055419df141389b23f93362", size = 183728, upload-time = "2026-03-06T06:02:10.137Z" }, + { url = "https://files.pythonhosted.org/packages/1c/e7/f5b4588d94e747ce45ae680f0f242bc2d98dbd4eccfab73e6160b6893893/charset_normalizer-3.4.5-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e71bbb595973622b817c042bd943c3f3667e9c9983ce3d205f973f486fec98a7", size = 192937, upload-time = "2026-03-06T06:02:11.663Z" }, + { url = "https://files.pythonhosted.org/packages/f9/29/9d94ed6b929bf9f48bf6ede6e7474576499f07c4c5e878fb186083622716/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4cd966c2559f501c6fd69294d082c2934c8dd4719deb32c22961a5ac6db0df1d", size = 192040, upload-time = "2026-03-06T06:02:13.489Z" }, + { url = "https://files.pythonhosted.org/packages/15/d2/1a093a1cf827957f9445f2fe7298bcc16f8fc5e05c1ed2ad1af0b239035e/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d5e52d127045d6ae01a1e821acfad2f3a1866c54d0e837828538fabe8d9d1bd6", size = 184107, upload-time = "2026-03-06T06:02:14.83Z" }, + { url = "https://files.pythonhosted.org/packages/0f/7d/82068ce16bd36135df7b97f6333c5d808b94e01d4599a682e2337ed5fd14/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:30a2b1a48478c3428d047ed9690d57c23038dac838a87ad624c85c0a78ebeb39", size = 208310, upload-time = "2026-03-06T06:02:16.165Z" }, + { url = "https://files.pythonhosted.org/packages/84/4e/4dfb52307bb6af4a5c9e73e482d171b81d36f522b21ccd28a49656baa680/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:d8ed79b8f6372ca4254955005830fd61c1ccdd8c0fac6603e2c145c61dd95db6", size = 192918, upload-time = "2026-03-06T06:02:18.144Z" }, + { url = "https://files.pythonhosted.org/packages/08/a4/159ff7da662cf7201502ca89980b8f06acf3e887b278956646a8aeb178ab/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:c5af897b45fa606b12464ccbe0014bbf8c09191e0a66aab6aa9d5cf6e77e0c94", size = 204615, upload-time = "2026-03-06T06:02:19.821Z" }, + { url = "https://files.pythonhosted.org/packages/d6/62/0dd6172203cb6b429ffffc9935001fde42e5250d57f07b0c28c6046deb6b/charset_normalizer-3.4.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1088345bcc93c58d8d8f3d783eca4a6e7a7752bbff26c3eee7e73c597c191c2e", size = 197784, upload-time = "2026-03-06T06:02:21.86Z" }, + { url = "https://files.pythonhosted.org/packages/c7/5e/1aab5cb737039b9c59e63627dc8bbc0d02562a14f831cc450e5f91d84ce1/charset_normalizer-3.4.5-cp314-cp314-win32.whl", hash = "sha256:ee57b926940ba00bca7ba7041e665cc956e55ef482f851b9b65acb20d867e7a2", size = 133009, upload-time = "2026-03-06T06:02:23.289Z" }, + { url = "https://files.pythonhosted.org/packages/40/65/e7c6c77d7aaa4c0d7974f2e403e17f0ed2cb0fc135f77d686b916bf1eead/charset_normalizer-3.4.5-cp314-cp314-win_amd64.whl", hash = "sha256:4481e6da1830c8a1cc0b746b47f603b653dadb690bcd851d039ffaefe70533aa", size = 143511, upload-time = "2026-03-06T06:02:26.195Z" }, + { url = "https://files.pythonhosted.org/packages/ba/91/52b0841c71f152f563b8e072896c14e3d83b195c188b338d3cc2e582d1d4/charset_normalizer-3.4.5-cp314-cp314-win_arm64.whl", hash = "sha256:97ab7787092eb9b50fb47fa04f24c75b768a606af1bcba1957f07f128a7219e4", size = 133775, upload-time = "2026-03-06T06:02:27.473Z" }, + { url = "https://files.pythonhosted.org/packages/c5/60/3a621758945513adfd4db86827a5bafcc615f913dbd0b4c2ed64a65731be/charset_normalizer-3.4.5-py3-none-any.whl", hash = "sha256:9db5e3fcdcee89a78c04dffb3fe33c79f77bd741a624946db2591c81b2fc85b0", size = 55455, upload-time = "2026-03-06T06:03:17.827Z" }, ] [[package]] name = "click" -version = "8.1.7" +version = "8.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121, upload-time = "2023-08-17T17:29:11.868Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941, upload-time = "2023-08-17T17:29:10.08Z" }, + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" }, ] [[package]] @@ -282,355 +276,388 @@ wheels = [ [[package]] name = "comm" -version = "0.2.2" +version = "0.2.3" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "traitlets" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e9/a8/fb783cb0abe2b5fded9f55e5703015cdf1c9c85b3669087c538dd15a6a86/comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e", size = 6210, upload-time = "2024-03-12T16:53:41.133Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/13/7d740c5849255756bc17888787313b61fd38a0a8304fc4f073dfc46122aa/comm-0.2.3.tar.gz", hash = "sha256:2dc8048c10962d55d7ad693be1e7045d891b7ce8d999c97963a5e3e99c055971", size = 6319, upload-time = "2025-07-25T14:02:04.452Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/75/49e5bfe642f71f272236b5b2d2691cf915a7283cc0ceda56357b61daa538/comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3", size = 7180, upload-time = "2024-03-12T16:53:39.226Z" }, + { url = "https://files.pythonhosted.org/packages/60/97/891a0971e1e4a8c5d2b20bbe0e524dc04548d2307fee33cdeba148fd4fc7/comm-0.2.3-py3-none-any.whl", hash = "sha256:c615d91d75f7f04f095b30d1c1711babd43bdc6419c1be9886a85f2f4e489417", size = 7294, upload-time = "2025-07-25T14:02:02.896Z" }, ] [[package]] name = "coverage" -version = "7.6.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f7/08/7e37f82e4d1aead42a7443ff06a1e406aabf7302c4f00a546e4b320b994c/coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d", size = 798791, upload-time = "2024-08-04T19:45:30.9Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/61/eb7ce5ed62bacf21beca4937a90fe32545c91a3c8a42a30c6616d48fc70d/coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16", size = 206690, upload-time = "2024-08-04T19:43:07.695Z" }, - { url = "https://files.pythonhosted.org/packages/7d/73/041928e434442bd3afde5584bdc3f932fb4562b1597629f537387cec6f3d/coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36", size = 207127, upload-time = "2024-08-04T19:43:10.15Z" }, - { url = "https://files.pythonhosted.org/packages/c7/c8/6ca52b5147828e45ad0242388477fdb90df2c6cbb9a441701a12b3c71bc8/coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02", size = 235654, upload-time = "2024-08-04T19:43:12.405Z" }, - { url = "https://files.pythonhosted.org/packages/d5/da/9ac2b62557f4340270942011d6efeab9833648380109e897d48ab7c1035d/coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc", size = 233598, upload-time = "2024-08-04T19:43:14.078Z" }, - { url = "https://files.pythonhosted.org/packages/53/23/9e2c114d0178abc42b6d8d5281f651a8e6519abfa0ef460a00a91f80879d/coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23", size = 234732, upload-time = "2024-08-04T19:43:16.632Z" }, - { url = "https://files.pythonhosted.org/packages/0f/7e/a0230756fb133343a52716e8b855045f13342b70e48e8ad41d8a0d60ab98/coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34", size = 233816, upload-time = "2024-08-04T19:43:19.049Z" }, - { url = "https://files.pythonhosted.org/packages/28/7c/3753c8b40d232b1e5eeaed798c875537cf3cb183fb5041017c1fdb7ec14e/coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c", size = 232325, upload-time = "2024-08-04T19:43:21.246Z" }, - { url = "https://files.pythonhosted.org/packages/57/e3/818a2b2af5b7573b4b82cf3e9f137ab158c90ea750a8f053716a32f20f06/coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959", size = 233418, upload-time = "2024-08-04T19:43:22.945Z" }, - { url = "https://files.pythonhosted.org/packages/c8/fb/4532b0b0cefb3f06d201648715e03b0feb822907edab3935112b61b885e2/coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232", size = 209343, upload-time = "2024-08-04T19:43:25.121Z" }, - { url = "https://files.pythonhosted.org/packages/5a/25/af337cc7421eca1c187cc9c315f0a755d48e755d2853715bfe8c418a45fa/coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0", size = 210136, upload-time = "2024-08-04T19:43:26.851Z" }, - { url = "https://files.pythonhosted.org/packages/ad/5f/67af7d60d7e8ce61a4e2ddcd1bd5fb787180c8d0ae0fbd073f903b3dd95d/coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93", size = 206796, upload-time = "2024-08-04T19:43:29.115Z" }, - { url = "https://files.pythonhosted.org/packages/e1/0e/e52332389e057daa2e03be1fbfef25bb4d626b37d12ed42ae6281d0a274c/coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3", size = 207244, upload-time = "2024-08-04T19:43:31.285Z" }, - { url = "https://files.pythonhosted.org/packages/aa/cd/766b45fb6e090f20f8927d9c7cb34237d41c73a939358bc881883fd3a40d/coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff", size = 239279, upload-time = "2024-08-04T19:43:33.581Z" }, - { url = "https://files.pythonhosted.org/packages/70/6c/a9ccd6fe50ddaf13442a1e2dd519ca805cbe0f1fcd377fba6d8339b98ccb/coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d", size = 236859, upload-time = "2024-08-04T19:43:35.301Z" }, - { url = "https://files.pythonhosted.org/packages/14/6f/8351b465febb4dbc1ca9929505202db909c5a635c6fdf33e089bbc3d7d85/coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6", size = 238549, upload-time = "2024-08-04T19:43:37.578Z" }, - { url = "https://files.pythonhosted.org/packages/68/3c/289b81fa18ad72138e6d78c4c11a82b5378a312c0e467e2f6b495c260907/coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56", size = 237477, upload-time = "2024-08-04T19:43:39.92Z" }, - { url = "https://files.pythonhosted.org/packages/ed/1c/aa1efa6459d822bd72c4abc0b9418cf268de3f60eeccd65dc4988553bd8d/coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234", size = 236134, upload-time = "2024-08-04T19:43:41.453Z" }, - { url = "https://files.pythonhosted.org/packages/fb/c8/521c698f2d2796565fe9c789c2ee1ccdae610b3aa20b9b2ef980cc253640/coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133", size = 236910, upload-time = "2024-08-04T19:43:43.037Z" }, - { url = "https://files.pythonhosted.org/packages/7d/30/033e663399ff17dca90d793ee8a2ea2890e7fdf085da58d82468b4220bf7/coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c", size = 209348, upload-time = "2024-08-04T19:43:44.787Z" }, - { url = "https://files.pythonhosted.org/packages/20/05/0d1ccbb52727ccdadaa3ff37e4d2dc1cd4d47f0c3df9eb58d9ec8508ca88/coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6", size = 210230, upload-time = "2024-08-04T19:43:46.707Z" }, - { url = "https://files.pythonhosted.org/packages/7e/d4/300fc921dff243cd518c7db3a4c614b7e4b2431b0d1145c1e274fd99bd70/coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778", size = 206983, upload-time = "2024-08-04T19:43:49.082Z" }, - { url = "https://files.pythonhosted.org/packages/e1/ab/6bf00de5327ecb8db205f9ae596885417a31535eeda6e7b99463108782e1/coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391", size = 207221, upload-time = "2024-08-04T19:43:52.15Z" }, - { url = "https://files.pythonhosted.org/packages/92/8f/2ead05e735022d1a7f3a0a683ac7f737de14850395a826192f0288703472/coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8", size = 240342, upload-time = "2024-08-04T19:43:53.746Z" }, - { url = "https://files.pythonhosted.org/packages/0f/ef/94043e478201ffa85b8ae2d2c79b4081e5a1b73438aafafccf3e9bafb6b5/coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d", size = 237371, upload-time = "2024-08-04T19:43:55.993Z" }, - { url = "https://files.pythonhosted.org/packages/1f/0f/c890339dd605f3ebc269543247bdd43b703cce6825b5ed42ff5f2d6122c7/coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca", size = 239455, upload-time = "2024-08-04T19:43:57.618Z" }, - { url = "https://files.pythonhosted.org/packages/d1/04/7fd7b39ec7372a04efb0f70c70e35857a99b6a9188b5205efb4c77d6a57a/coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163", size = 238924, upload-time = "2024-08-04T19:44:00.012Z" }, - { url = "https://files.pythonhosted.org/packages/ed/bf/73ce346a9d32a09cf369f14d2a06651329c984e106f5992c89579d25b27e/coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a", size = 237252, upload-time = "2024-08-04T19:44:01.713Z" }, - { url = "https://files.pythonhosted.org/packages/86/74/1dc7a20969725e917b1e07fe71a955eb34bc606b938316bcc799f228374b/coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d", size = 238897, upload-time = "2024-08-04T19:44:03.898Z" }, - { url = "https://files.pythonhosted.org/packages/b6/e9/d9cc3deceb361c491b81005c668578b0dfa51eed02cd081620e9a62f24ec/coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5", size = 209606, upload-time = "2024-08-04T19:44:05.532Z" }, - { url = "https://files.pythonhosted.org/packages/47/c8/5a2e41922ea6740f77d555c4d47544acd7dc3f251fe14199c09c0f5958d3/coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb", size = 210373, upload-time = "2024-08-04T19:44:07.079Z" }, - { url = "https://files.pythonhosted.org/packages/8c/f9/9aa4dfb751cb01c949c990d136a0f92027fbcc5781c6e921df1cb1563f20/coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106", size = 207007, upload-time = "2024-08-04T19:44:09.453Z" }, - { url = "https://files.pythonhosted.org/packages/b9/67/e1413d5a8591622a46dd04ff80873b04c849268831ed5c304c16433e7e30/coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9", size = 207269, upload-time = "2024-08-04T19:44:11.045Z" }, - { url = "https://files.pythonhosted.org/packages/14/5b/9dec847b305e44a5634d0fb8498d135ab1d88330482b74065fcec0622224/coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c", size = 239886, upload-time = "2024-08-04T19:44:12.83Z" }, - { url = "https://files.pythonhosted.org/packages/7b/b7/35760a67c168e29f454928f51f970342d23cf75a2bb0323e0f07334c85f3/coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a", size = 237037, upload-time = "2024-08-04T19:44:15.393Z" }, - { url = "https://files.pythonhosted.org/packages/f7/95/d2fd31f1d638df806cae59d7daea5abf2b15b5234016a5ebb502c2f3f7ee/coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060", size = 239038, upload-time = "2024-08-04T19:44:17.466Z" }, - { url = "https://files.pythonhosted.org/packages/6e/bd/110689ff5752b67924efd5e2aedf5190cbbe245fc81b8dec1abaffba619d/coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862", size = 238690, upload-time = "2024-08-04T19:44:19.336Z" }, - { url = "https://files.pythonhosted.org/packages/d3/a8/08d7b38e6ff8df52331c83130d0ab92d9c9a8b5462f9e99c9f051a4ae206/coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388", size = 236765, upload-time = "2024-08-04T19:44:20.994Z" }, - { url = "https://files.pythonhosted.org/packages/d6/6a/9cf96839d3147d55ae713eb2d877f4d777e7dc5ba2bce227167d0118dfe8/coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155", size = 238611, upload-time = "2024-08-04T19:44:22.616Z" }, - { url = "https://files.pythonhosted.org/packages/74/e4/7ff20d6a0b59eeaab40b3140a71e38cf52547ba21dbcf1d79c5a32bba61b/coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a", size = 209671, upload-time = "2024-08-04T19:44:24.418Z" }, - { url = "https://files.pythonhosted.org/packages/35/59/1812f08a85b57c9fdb6d0b383d779e47b6f643bc278ed682859512517e83/coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129", size = 210368, upload-time = "2024-08-04T19:44:26.276Z" }, - { url = "https://files.pythonhosted.org/packages/9c/15/08913be1c59d7562a3e39fce20661a98c0a3f59d5754312899acc6cb8a2d/coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e", size = 207758, upload-time = "2024-08-04T19:44:29.028Z" }, - { url = "https://files.pythonhosted.org/packages/c4/ae/b5d58dff26cade02ada6ca612a76447acd69dccdbb3a478e9e088eb3d4b9/coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962", size = 208035, upload-time = "2024-08-04T19:44:30.673Z" }, - { url = "https://files.pythonhosted.org/packages/b8/d7/62095e355ec0613b08dfb19206ce3033a0eedb6f4a67af5ed267a8800642/coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb", size = 250839, upload-time = "2024-08-04T19:44:32.412Z" }, - { url = "https://files.pythonhosted.org/packages/7c/1e/c2967cb7991b112ba3766df0d9c21de46b476d103e32bb401b1b2adf3380/coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704", size = 246569, upload-time = "2024-08-04T19:44:34.547Z" }, - { url = "https://files.pythonhosted.org/packages/8b/61/a7a6a55dd266007ed3b1df7a3386a0d760d014542d72f7c2c6938483b7bd/coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b", size = 248927, upload-time = "2024-08-04T19:44:36.313Z" }, - { url = "https://files.pythonhosted.org/packages/c8/fa/13a6f56d72b429f56ef612eb3bc5ce1b75b7ee12864b3bd12526ab794847/coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f", size = 248401, upload-time = "2024-08-04T19:44:38.155Z" }, - { url = "https://files.pythonhosted.org/packages/75/06/0429c652aa0fb761fc60e8c6b291338c9173c6aa0f4e40e1902345b42830/coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223", size = 246301, upload-time = "2024-08-04T19:44:39.883Z" }, - { url = "https://files.pythonhosted.org/packages/52/76/1766bb8b803a88f93c3a2d07e30ffa359467810e5cbc68e375ebe6906efb/coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3", size = 247598, upload-time = "2024-08-04T19:44:41.59Z" }, - { url = "https://files.pythonhosted.org/packages/66/8b/f54f8db2ae17188be9566e8166ac6df105c1c611e25da755738025708d54/coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f", size = 210307, upload-time = "2024-08-04T19:44:43.301Z" }, - { url = "https://files.pythonhosted.org/packages/9f/b0/e0dca6da9170aefc07515cce067b97178cefafb512d00a87a1c717d2efd5/coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657", size = 211453, upload-time = "2024-08-04T19:44:45.677Z" }, - { url = "https://files.pythonhosted.org/packages/81/d0/d9e3d554e38beea5a2e22178ddb16587dbcbe9a1ef3211f55733924bf7fa/coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0", size = 206674, upload-time = "2024-08-04T19:44:47.694Z" }, - { url = "https://files.pythonhosted.org/packages/38/ea/cab2dc248d9f45b2b7f9f1f596a4d75a435cb364437c61b51d2eb33ceb0e/coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a", size = 207101, upload-time = "2024-08-04T19:44:49.32Z" }, - { url = "https://files.pythonhosted.org/packages/ca/6f/f82f9a500c7c5722368978a5390c418d2a4d083ef955309a8748ecaa8920/coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b", size = 236554, upload-time = "2024-08-04T19:44:51.631Z" }, - { url = "https://files.pythonhosted.org/packages/a6/94/d3055aa33d4e7e733d8fa309d9adf147b4b06a82c1346366fc15a2b1d5fa/coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3", size = 234440, upload-time = "2024-08-04T19:44:53.464Z" }, - { url = "https://files.pythonhosted.org/packages/e4/6e/885bcd787d9dd674de4a7d8ec83faf729534c63d05d51d45d4fa168f7102/coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de", size = 235889, upload-time = "2024-08-04T19:44:55.165Z" }, - { url = "https://files.pythonhosted.org/packages/f4/63/df50120a7744492710854860783d6819ff23e482dee15462c9a833cc428a/coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6", size = 235142, upload-time = "2024-08-04T19:44:57.269Z" }, - { url = "https://files.pythonhosted.org/packages/3a/5d/9d0acfcded2b3e9ce1c7923ca52ccc00c78a74e112fc2aee661125b7843b/coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569", size = 233805, upload-time = "2024-08-04T19:44:59.033Z" }, - { url = "https://files.pythonhosted.org/packages/c4/56/50abf070cb3cd9b1dd32f2c88f083aab561ecbffbcd783275cb51c17f11d/coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989", size = 234655, upload-time = "2024-08-04T19:45:01.398Z" }, - { url = "https://files.pythonhosted.org/packages/25/ee/b4c246048b8485f85a2426ef4abab88e48c6e80c74e964bea5cd4cd4b115/coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7", size = 209296, upload-time = "2024-08-04T19:45:03.819Z" }, - { url = "https://files.pythonhosted.org/packages/5c/1c/96cf86b70b69ea2b12924cdf7cabb8ad10e6130eab8d767a1099fbd2a44f/coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8", size = 210137, upload-time = "2024-08-04T19:45:06.25Z" }, - { url = "https://files.pythonhosted.org/packages/19/d3/d54c5aa83268779d54c86deb39c1c4566e5d45c155369ca152765f8db413/coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255", size = 206688, upload-time = "2024-08-04T19:45:08.358Z" }, - { url = "https://files.pythonhosted.org/packages/a5/fe/137d5dca72e4a258b1bc17bb04f2e0196898fe495843402ce826a7419fe3/coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8", size = 207120, upload-time = "2024-08-04T19:45:11.526Z" }, - { url = "https://files.pythonhosted.org/packages/78/5b/a0a796983f3201ff5485323b225d7c8b74ce30c11f456017e23d8e8d1945/coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2", size = 235249, upload-time = "2024-08-04T19:45:13.202Z" }, - { url = "https://files.pythonhosted.org/packages/4e/e1/76089d6a5ef9d68f018f65411fcdaaeb0141b504587b901d74e8587606ad/coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a", size = 233237, upload-time = "2024-08-04T19:45:14.961Z" }, - { url = "https://files.pythonhosted.org/packages/9a/6f/eef79b779a540326fee9520e5542a8b428cc3bfa8b7c8f1022c1ee4fc66c/coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc", size = 234311, upload-time = "2024-08-04T19:45:16.924Z" }, - { url = "https://files.pythonhosted.org/packages/75/e1/656d65fb126c29a494ef964005702b012f3498db1a30dd562958e85a4049/coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004", size = 233453, upload-time = "2024-08-04T19:45:18.672Z" }, - { url = "https://files.pythonhosted.org/packages/68/6a/45f108f137941a4a1238c85f28fd9d048cc46b5466d6b8dda3aba1bb9d4f/coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb", size = 231958, upload-time = "2024-08-04T19:45:20.63Z" }, - { url = "https://files.pythonhosted.org/packages/9b/e7/47b809099168b8b8c72ae311efc3e88c8d8a1162b3ba4b8da3cfcdb85743/coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36", size = 232938, upload-time = "2024-08-04T19:45:23.062Z" }, - { url = "https://files.pythonhosted.org/packages/52/80/052222ba7058071f905435bad0ba392cc12006380731c37afaf3fe749b88/coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c", size = 209352, upload-time = "2024-08-04T19:45:25.042Z" }, - { url = "https://files.pythonhosted.org/packages/b8/d8/1b92e0b3adcf384e98770a00ca095da1b5f7b483e6563ae4eb5e935d24a1/coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca", size = 210153, upload-time = "2024-08-04T19:45:27.079Z" }, - { url = "https://files.pythonhosted.org/packages/a5/2b/0354ed096bca64dc8e32a7cbcae28b34cb5ad0b1fe2125d6d99583313ac0/coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df", size = 198926, upload-time = "2024-08-04T19:45:28.875Z" }, +version = "7.13.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65/coverage-7.13.4.tar.gz", hash = "sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91", size = 827239, upload-time = "2026-02-09T12:59:03.86Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/d4/7827d9ffa34d5d4d752eec907022aa417120936282fc488306f5da08c292/coverage-7.13.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0fc31c787a84f8cd6027eba44010517020e0d18487064cd3d8968941856d1415", size = 219152, upload-time = "2026-02-09T12:56:11.974Z" }, + { url = "https://files.pythonhosted.org/packages/35/b0/d69df26607c64043292644dbb9dc54b0856fabaa2cbb1eeee3331cc9e280/coverage-7.13.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a32ebc02a1805adf637fc8dec324b5cdacd2e493515424f70ee33799573d661b", size = 219667, upload-time = "2026-02-09T12:56:13.33Z" }, + { url = "https://files.pythonhosted.org/packages/82/a4/c1523f7c9e47b2271dbf8c2a097e7a1f89ef0d66f5840bb59b7e8814157b/coverage-7.13.4-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e24f9156097ff9dc286f2f913df3a7f63c0e333dcafa3c196f2c18b4175ca09a", size = 246425, upload-time = "2026-02-09T12:56:14.552Z" }, + { url = "https://files.pythonhosted.org/packages/f8/02/aa7ec01d1a5023c4b680ab7257f9bfde9defe8fdddfe40be096ac19e8177/coverage-7.13.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8041b6c5bfdc03257666e9881d33b1abc88daccaf73f7b6340fb7946655cd10f", size = 248229, upload-time = "2026-02-09T12:56:16.31Z" }, + { url = "https://files.pythonhosted.org/packages/35/98/85aba0aed5126d896162087ef3f0e789a225697245256fc6181b95f47207/coverage-7.13.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a09cfa6a5862bc2fc6ca7c3def5b2926194a56b8ab78ffcf617d28911123012", size = 250106, upload-time = "2026-02-09T12:56:18.024Z" }, + { url = "https://files.pythonhosted.org/packages/96/72/1db59bd67494bc162e3e4cd5fbc7edba2c7026b22f7c8ef1496d58c2b94c/coverage-7.13.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:296f8b0af861d3970c2a4d8c91d48eb4dd4771bcef9baedec6a9b515d7de3def", size = 252021, upload-time = "2026-02-09T12:56:19.272Z" }, + { url = "https://files.pythonhosted.org/packages/9d/97/72899c59c7066961de6e3daa142d459d47d104956db43e057e034f015c8a/coverage-7.13.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e101609bcbbfb04605ea1027b10dc3735c094d12d40826a60f897b98b1c30256", size = 247114, upload-time = "2026-02-09T12:56:21.051Z" }, + { url = "https://files.pythonhosted.org/packages/39/1f/f1885573b5970235e908da4389176936c8933e86cb316b9620aab1585fa2/coverage-7.13.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:aa3feb8db2e87ff5e6d00d7e1480ae241876286691265657b500886c98f38bda", size = 248143, upload-time = "2026-02-09T12:56:22.585Z" }, + { url = "https://files.pythonhosted.org/packages/a8/cf/e80390c5b7480b722fa3e994f8202807799b85bc562aa4f1dde209fbb7be/coverage-7.13.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4fc7fa81bbaf5a02801b65346c8b3e657f1d93763e58c0abdf7c992addd81a92", size = 246152, upload-time = "2026-02-09T12:56:23.748Z" }, + { url = "https://files.pythonhosted.org/packages/44/bf/f89a8350d85572f95412debb0fb9bb4795b1d5b5232bd652923c759e787b/coverage-7.13.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:33901f604424145c6e9c2398684b92e176c0b12df77d52db81c20abd48c3794c", size = 249959, upload-time = "2026-02-09T12:56:25.209Z" }, + { url = "https://files.pythonhosted.org/packages/f7/6e/612a02aece8178c818df273e8d1642190c4875402ca2ba74514394b27aba/coverage-7.13.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:bb28c0f2cf2782508a40cec377935829d5fcc3ad9a3681375af4e84eb34b6b58", size = 246416, upload-time = "2026-02-09T12:56:26.475Z" }, + { url = "https://files.pythonhosted.org/packages/cb/98/b5afc39af67c2fa6786b03c3a7091fc300947387ce8914b096db8a73d67a/coverage-7.13.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9d107aff57a83222ddbd8d9ee705ede2af2cc926608b57abed8ef96b50b7e8f9", size = 247025, upload-time = "2026-02-09T12:56:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/51/30/2bba8ef0682d5bd210c38fe497e12a06c9f8d663f7025e9f5c2c31ce847d/coverage-7.13.4-cp310-cp310-win32.whl", hash = "sha256:a6f94a7d00eb18f1b6d403c91a88fd58cfc92d4b16080dfdb774afc8294469bf", size = 221758, upload-time = "2026-02-09T12:56:29.051Z" }, + { url = "https://files.pythonhosted.org/packages/78/13/331f94934cf6c092b8ea59ff868eb587bc8fe0893f02c55bc6c0183a192e/coverage-7.13.4-cp310-cp310-win_amd64.whl", hash = "sha256:2cb0f1e000ebc419632bbe04366a8990b6e32c4e0b51543a6484ffe15eaeda95", size = 222693, upload-time = "2026-02-09T12:56:30.366Z" }, + { url = "https://files.pythonhosted.org/packages/b4/ad/b59e5b451cf7172b8d1043dc0fa718f23aab379bc1521ee13d4bd9bfa960/coverage-7.13.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d490ba50c3f35dd7c17953c68f3270e7ccd1c6642e2d2afe2d8e720b98f5a053", size = 219278, upload-time = "2026-02-09T12:56:31.673Z" }, + { url = "https://files.pythonhosted.org/packages/f1/17/0cb7ca3de72e5f4ef2ec2fa0089beafbcaaaead1844e8b8a63d35173d77d/coverage-7.13.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:19bc3c88078789f8ef36acb014d7241961dbf883fd2533d18cb1e7a5b4e28b11", size = 219783, upload-time = "2026-02-09T12:56:33.104Z" }, + { url = "https://files.pythonhosted.org/packages/ab/63/325d8e5b11e0eaf6d0f6a44fad444ae58820929a9b0de943fa377fe73e85/coverage-7.13.4-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3998e5a32e62fdf410c0dbd3115df86297995d6e3429af80b8798aad894ca7aa", size = 250200, upload-time = "2026-02-09T12:56:34.474Z" }, + { url = "https://files.pythonhosted.org/packages/76/53/c16972708cbb79f2942922571a687c52bd109a7bd51175aeb7558dff2236/coverage-7.13.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8e264226ec98e01a8e1054314af91ee6cde0eacac4f465cc93b03dbe0bce2fd7", size = 252114, upload-time = "2026-02-09T12:56:35.749Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c2/7ab36d8b8cc412bec9ea2d07c83c48930eb4ba649634ba00cb7e4e0f9017/coverage-7.13.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a3aa4e7b9e416774b21797365b358a6e827ffadaaca81b69ee02946852449f00", size = 254220, upload-time = "2026-02-09T12:56:37.796Z" }, + { url = "https://files.pythonhosted.org/packages/d6/4d/cf52c9a3322c89a0e6febdfbc83bb45c0ed3c64ad14081b9503adee702e7/coverage-7.13.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:71ca20079dd8f27fcf808817e281e90220475cd75115162218d0e27549f95fef", size = 256164, upload-time = "2026-02-09T12:56:39.016Z" }, + { url = "https://files.pythonhosted.org/packages/78/e9/eb1dd17bd6de8289df3580e967e78294f352a5df8a57ff4671ee5fc3dcd0/coverage-7.13.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e2f25215f1a359ab17320b47bcdaca3e6e6356652e8256f2441e4ef972052903", size = 250325, upload-time = "2026-02-09T12:56:40.668Z" }, + { url = "https://files.pythonhosted.org/packages/71/07/8c1542aa873728f72267c07278c5cc0ec91356daf974df21335ccdb46368/coverage-7.13.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d65b2d373032411e86960604dc4edac91fdfb5dca539461cf2cbe78327d1e64f", size = 251913, upload-time = "2026-02-09T12:56:41.97Z" }, + { url = "https://files.pythonhosted.org/packages/74/d7/c62e2c5e4483a748e27868e4c32ad3daa9bdddbba58e1bc7a15e252baa74/coverage-7.13.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94eb63f9b363180aff17de3e7c8760c3ba94664ea2695c52f10111244d16a299", size = 249974, upload-time = "2026-02-09T12:56:43.323Z" }, + { url = "https://files.pythonhosted.org/packages/98/9f/4c5c015a6e98ced54efd0f5cf8d31b88e5504ecb6857585fc0161bb1e600/coverage-7.13.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e856bf6616714c3a9fbc270ab54103f4e685ba236fa98c054e8f87f266c93505", size = 253741, upload-time = "2026-02-09T12:56:45.155Z" }, + { url = "https://files.pythonhosted.org/packages/bd/59/0f4eef89b9f0fcd9633b5d350016f54126ab49426a70ff4c4e87446cabdc/coverage-7.13.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:65dfcbe305c3dfe658492df2d85259e0d79ead4177f9ae724b6fb245198f55d6", size = 249695, upload-time = "2026-02-09T12:56:46.636Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2c/b7476f938deb07166f3eb281a385c262675d688ff4659ad56c6c6b8e2e70/coverage-7.13.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b507778ae8a4c915436ed5c2e05b4a6cecfa70f734e19c22a005152a11c7b6a9", size = 250599, upload-time = "2026-02-09T12:56:48.13Z" }, + { url = "https://files.pythonhosted.org/packages/b8/34/c3420709d9846ee3785b9f2831b4d94f276f38884032dca1457fa83f7476/coverage-7.13.4-cp311-cp311-win32.whl", hash = "sha256:784fc3cf8be001197b652d51d3fd259b1e2262888693a4636e18879f613a62a9", size = 221780, upload-time = "2026-02-09T12:56:50.479Z" }, + { url = "https://files.pythonhosted.org/packages/61/08/3d9c8613079d2b11c185b865de9a4c1a68850cfda2b357fae365cf609f29/coverage-7.13.4-cp311-cp311-win_amd64.whl", hash = "sha256:2421d591f8ca05b308cf0092807308b2facbefe54af7c02ac22548b88b95c98f", size = 222715, upload-time = "2026-02-09T12:56:51.815Z" }, + { url = "https://files.pythonhosted.org/packages/18/1a/54c3c80b2f056164cc0a6cdcb040733760c7c4be9d780fe655f356f433e4/coverage-7.13.4-cp311-cp311-win_arm64.whl", hash = "sha256:79e73a76b854d9c6088fe5d8b2ebe745f8681c55f7397c3c0a016192d681045f", size = 221385, upload-time = "2026-02-09T12:56:53.194Z" }, + { url = "https://files.pythonhosted.org/packages/d1/81/4ce2fdd909c5a0ed1f6dedb88aa57ab79b6d1fbd9b588c1ac7ef45659566/coverage-7.13.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:02231499b08dabbe2b96612993e5fc34217cdae907a51b906ac7fca8027a4459", size = 219449, upload-time = "2026-02-09T12:56:54.889Z" }, + { url = "https://files.pythonhosted.org/packages/5d/96/5238b1efc5922ddbdc9b0db9243152c09777804fb7c02ad1741eb18a11c0/coverage-7.13.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40aa8808140e55dc022b15d8aa7f651b6b3d68b365ea0398f1441e0b04d859c3", size = 219810, upload-time = "2026-02-09T12:56:56.33Z" }, + { url = "https://files.pythonhosted.org/packages/78/72/2f372b726d433c9c35e56377cf1d513b4c16fe51841060d826b95caacec1/coverage-7.13.4-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5b856a8ccf749480024ff3bd7310adaef57bf31fd17e1bfc404b7940b6986634", size = 251308, upload-time = "2026-02-09T12:56:57.858Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a0/2ea570925524ef4e00bb6c82649f5682a77fac5ab910a65c9284de422600/coverage-7.13.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c048ea43875fbf8b45d476ad79f179809c590ec7b79e2035c662e7afa3192e3", size = 254052, upload-time = "2026-02-09T12:56:59.754Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ac/45dc2e19a1939098d783c846e130b8f862fbb50d09e0af663988f2f21973/coverage-7.13.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b7b38448866e83176e28086674fe7368ab8590e4610fb662b44e345b86d63ffa", size = 255165, upload-time = "2026-02-09T12:57:01.287Z" }, + { url = "https://files.pythonhosted.org/packages/2d/4d/26d236ff35abc3b5e63540d3386e4c3b192168c1d96da5cb2f43c640970f/coverage-7.13.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:de6defc1c9badbf8b9e67ae90fd00519186d6ab64e5cc5f3d21359c2a9b2c1d3", size = 257432, upload-time = "2026-02-09T12:57:02.637Z" }, + { url = "https://files.pythonhosted.org/packages/ec/55/14a966c757d1348b2e19caf699415a2a4c4f7feaa4bbc6326a51f5c7dd1b/coverage-7.13.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7eda778067ad7ffccd23ecffce537dface96212576a07924cbf0d8799d2ded5a", size = 251716, upload-time = "2026-02-09T12:57:04.056Z" }, + { url = "https://files.pythonhosted.org/packages/77/33/50116647905837c66d28b2af1321b845d5f5d19be9655cb84d4a0ea806b4/coverage-7.13.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e87f6c587c3f34356c3759f0420693e35e7eb0e2e41e4c011cb6ec6ecbbf1db7", size = 253089, upload-time = "2026-02-09T12:57:05.503Z" }, + { url = "https://files.pythonhosted.org/packages/c2/b4/8efb11a46e3665d92635a56e4f2d4529de6d33f2cb38afd47d779d15fc99/coverage-7.13.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8248977c2e33aecb2ced42fef99f2d319e9904a36e55a8a68b69207fb7e43edc", size = 251232, upload-time = "2026-02-09T12:57:06.879Z" }, + { url = "https://files.pythonhosted.org/packages/51/24/8cd73dd399b812cc76bb0ac260e671c4163093441847ffe058ac9fda1e32/coverage-7.13.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:25381386e80ae727608e662474db537d4df1ecd42379b5ba33c84633a2b36d47", size = 255299, upload-time = "2026-02-09T12:57:08.245Z" }, + { url = "https://files.pythonhosted.org/packages/03/94/0a4b12f1d0e029ce1ccc1c800944a9984cbe7d678e470bb6d3c6bc38a0da/coverage-7.13.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:ee756f00726693e5ba94d6df2bdfd64d4852d23b09bb0bc700e3b30e6f333985", size = 250796, upload-time = "2026-02-09T12:57:10.142Z" }, + { url = "https://files.pythonhosted.org/packages/73/44/6002fbf88f6698ca034360ce474c406be6d5a985b3fdb3401128031eef6b/coverage-7.13.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fdfc1e28e7c7cdce44985b3043bc13bbd9c747520f94a4d7164af8260b3d91f0", size = 252673, upload-time = "2026-02-09T12:57:12.197Z" }, + { url = "https://files.pythonhosted.org/packages/de/c6/a0279f7c00e786be75a749a5674e6fa267bcbd8209cd10c9a450c655dfa7/coverage-7.13.4-cp312-cp312-win32.whl", hash = "sha256:01d4cbc3c283a17fc1e42d614a119f7f438eabb593391283adca8dc86eff1246", size = 221990, upload-time = "2026-02-09T12:57:14.085Z" }, + { url = "https://files.pythonhosted.org/packages/77/4e/c0a25a425fcf5557d9abd18419c95b63922e897bc86c1f327f155ef234a9/coverage-7.13.4-cp312-cp312-win_amd64.whl", hash = "sha256:9401ebc7ef522f01d01d45532c68c5ac40fb27113019b6b7d8b208f6e9baa126", size = 222800, upload-time = "2026-02-09T12:57:15.944Z" }, + { url = "https://files.pythonhosted.org/packages/47/ac/92da44ad9a6f4e3a7debd178949d6f3769bedca33830ce9b1dcdab589a37/coverage-7.13.4-cp312-cp312-win_arm64.whl", hash = "sha256:b1ec7b6b6e93255f952e27ab58fbc68dcc468844b16ecbee881aeb29b6ab4d8d", size = 221415, upload-time = "2026-02-09T12:57:17.497Z" }, + { url = "https://files.pythonhosted.org/packages/db/23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503/coverage-7.13.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9", size = 219474, upload-time = "2026-02-09T12:57:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae/coverage-7.13.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac", size = 219844, upload-time = "2026-02-09T12:57:20.66Z" }, + { url = "https://files.pythonhosted.org/packages/97/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2/coverage-7.13.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea", size = 250832, upload-time = "2026-02-09T12:57:22.007Z" }, + { url = "https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7/coverage-7.13.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b", size = 253434, upload-time = "2026-02-09T12:57:23.339Z" }, + { url = "https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2/coverage-7.13.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525", size = 254676, upload-time = "2026-02-09T12:57:24.774Z" }, + { url = "https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff/coverage-7.13.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242", size = 256807, upload-time = "2026-02-09T12:57:26.125Z" }, + { url = "https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877/coverage-7.13.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148", size = 251058, upload-time = "2026-02-09T12:57:27.614Z" }, + { url = "https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f7/coverage-7.13.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a", size = 252805, upload-time = "2026-02-09T12:57:29.066Z" }, + { url = "https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255/coverage-7.13.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23", size = 250766, upload-time = "2026-02-09T12:57:30.522Z" }, + { url = "https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044/coverage-7.13.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80", size = 254923, upload-time = "2026-02-09T12:57:31.946Z" }, + { url = "https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174/coverage-7.13.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea", size = 250591, upload-time = "2026-02-09T12:57:33.842Z" }, + { url = "https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7/coverage-7.13.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a", size = 252364, upload-time = "2026-02-09T12:57:35.743Z" }, + { url = "https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c80/coverage-7.13.4-cp313-cp313-win32.whl", hash = "sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d", size = 222010, upload-time = "2026-02-09T12:57:37.25Z" }, + { url = "https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc/coverage-7.13.4-cp313-cp313-win_amd64.whl", hash = "sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd", size = 222818, upload-time = "2026-02-09T12:57:38.734Z" }, + { url = "https://files.pythonhosted.org/packages/04/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cdc7/coverage-7.13.4-cp313-cp313-win_arm64.whl", hash = "sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af", size = 221438, upload-time = "2026-02-09T12:57:40.223Z" }, + { url = "https://files.pythonhosted.org/packages/52/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7/coverage-7.13.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d", size = 220165, upload-time = "2026-02-09T12:57:41.639Z" }, + { url = "https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a/coverage-7.13.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12", size = 220516, upload-time = "2026-02-09T12:57:44.215Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c7/coverage-7.13.4-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b", size = 261804, upload-time = "2026-02-09T12:57:45.989Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f27318a7a68fa30ad3806e2a9323e/coverage-7.13.4-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9", size = 263885, upload-time = "2026-02-09T12:57:47.42Z" }, + { url = "https://files.pythonhosted.org/packages/f3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6/coverage-7.13.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092", size = 266308, upload-time = "2026-02-09T12:57:49.345Z" }, + { url = "https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83/coverage-7.13.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9", size = 267452, upload-time = "2026-02-09T12:57:50.811Z" }, + { url = "https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6bf/coverage-7.13.4-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26", size = 261057, upload-time = "2026-02-09T12:57:52.447Z" }, + { url = "https://files.pythonhosted.org/packages/a4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fce/coverage-7.13.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2", size = 263875, upload-time = "2026-02-09T12:57:53.938Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6/coverage-7.13.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940", size = 261500, upload-time = "2026-02-09T12:57:56.012Z" }, + { url = "https://files.pythonhosted.org/packages/70/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c", size = 265212, upload-time = "2026-02-09T12:57:57.5Z" }, + { url = "https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e42f57204243d33bedaaf18fa79c5958f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0", size = 260398, upload-time = "2026-02-09T12:57:59.027Z" }, + { url = "https://files.pythonhosted.org/packages/ef/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66c8c/coverage-7.13.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b", size = 262584, upload-time = "2026-02-09T12:58:01.129Z" }, + { url = "https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f/coverage-7.13.4-cp313-cp313t-win32.whl", hash = "sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9", size = 222688, upload-time = "2026-02-09T12:58:02.736Z" }, + { url = "https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d/coverage-7.13.4-cp313-cp313t-win_amd64.whl", hash = "sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd", size = 223746, upload-time = "2026-02-09T12:58:05.362Z" }, + { url = "https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e/coverage-7.13.4-cp313-cp313t-win_arm64.whl", hash = "sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997", size = 222003, upload-time = "2026-02-09T12:58:06.952Z" }, + { url = "https://files.pythonhosted.org/packages/92/11/a9cf762bb83386467737d32187756a42094927150c3e107df4cb078e8590/coverage-7.13.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:300deaee342f90696ed186e3a00c71b5b3d27bffe9e827677954f4ee56969601", size = 219522, upload-time = "2026-02-09T12:58:08.623Z" }, + { url = "https://files.pythonhosted.org/packages/d3/28/56e6d892b7b052236d67c95f1936b6a7cf7c3e2634bf27610b8cbd7f9c60/coverage-7.13.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:29e3220258d682b6226a9b0925bc563ed9a1ebcff3cad30f043eceea7eaf2689", size = 219855, upload-time = "2026-02-09T12:58:10.176Z" }, + { url = "https://files.pythonhosted.org/packages/e5/69/233459ee9eb0c0d10fcc2fe425a029b3fa5ce0f040c966ebce851d030c70/coverage-7.13.4-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:391ee8f19bef69210978363ca930f7328081c6a0152f1166c91f0b5fdd2a773c", size = 250887, upload-time = "2026-02-09T12:58:12.503Z" }, + { url = "https://files.pythonhosted.org/packages/06/90/2cdab0974b9b5bbc1623f7876b73603aecac11b8d95b85b5b86b32de5eab/coverage-7.13.4-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0dd7ab8278f0d58a0128ba2fca25824321f05d059c1441800e934ff2efa52129", size = 253396, upload-time = "2026-02-09T12:58:14.615Z" }, + { url = "https://files.pythonhosted.org/packages/ac/15/ea4da0f85bf7d7b27635039e649e99deb8173fe551096ea15017f7053537/coverage-7.13.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78cdf0d578b15148b009ccf18c686aa4f719d887e76e6b40c38ffb61d264a552", size = 254745, upload-time = "2026-02-09T12:58:16.162Z" }, + { url = "https://files.pythonhosted.org/packages/99/11/bb356e86920c655ca4d61daee4e2bbc7258f0a37de0be32d233b561134ff/coverage-7.13.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:48685fee12c2eb3b27c62f2658e7ea21e9c3239cba5a8a242801a0a3f6a8c62a", size = 257055, upload-time = "2026-02-09T12:58:17.892Z" }, + { url = "https://files.pythonhosted.org/packages/c9/0f/9ae1f8cb17029e09da06ca4e28c9e1d5c1c0a511c7074592e37e0836c915/coverage-7.13.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4e83efc079eb39480e6346a15a1bcb3e9b04759c5202d157e1dd4303cd619356", size = 250911, upload-time = "2026-02-09T12:58:19.495Z" }, + { url = "https://files.pythonhosted.org/packages/89/3a/adfb68558fa815cbc29747b553bc833d2150228f251b127f1ce97e48547c/coverage-7.13.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ecae9737b72408d6a950f7e525f30aca12d4bd8dd95e37342e5beb3a2a8c4f71", size = 252754, upload-time = "2026-02-09T12:58:21.064Z" }, + { url = "https://files.pythonhosted.org/packages/32/b1/540d0c27c4e748bd3cd0bd001076ee416eda993c2bae47a73b7cc9357931/coverage-7.13.4-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ae4578f8528569d3cf303fef2ea569c7f4c4059a38c8667ccef15c6e1f118aa5", size = 250720, upload-time = "2026-02-09T12:58:22.622Z" }, + { url = "https://files.pythonhosted.org/packages/c7/95/383609462b3ffb1fe133014a7c84fc0dd01ed55ac6140fa1093b5af7ebb1/coverage-7.13.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:6fdef321fdfbb30a197efa02d48fcd9981f0d8ad2ae8903ac318adc653f5df98", size = 254994, upload-time = "2026-02-09T12:58:24.548Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ba/1761138e86c81680bfc3c49579d66312865457f9fe405b033184e5793cb3/coverage-7.13.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b0f6ccf3dbe577170bebfce1318707d0e8c3650003cb4b3a9dd744575daa8b5", size = 250531, upload-time = "2026-02-09T12:58:26.271Z" }, + { url = "https://files.pythonhosted.org/packages/f8/8e/05900df797a9c11837ab59c4d6fe94094e029582aab75c3309a93e6fb4e3/coverage-7.13.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:75fcd519f2a5765db3f0e391eb3b7d150cce1a771bf4c9f861aeab86c767a3c0", size = 252189, upload-time = "2026-02-09T12:58:27.807Z" }, + { url = "https://files.pythonhosted.org/packages/00/bd/29c9f2db9ea4ed2738b8a9508c35626eb205d51af4ab7bf56a21a2e49926/coverage-7.13.4-cp314-cp314-win32.whl", hash = "sha256:8e798c266c378da2bd819b0677df41ab46d78065fb2a399558f3f6cae78b2fbb", size = 222258, upload-time = "2026-02-09T12:58:29.441Z" }, + { url = "https://files.pythonhosted.org/packages/a7/4d/1f8e723f6829977410efeb88f73673d794075091c8c7c18848d273dc9d73/coverage-7.13.4-cp314-cp314-win_amd64.whl", hash = "sha256:245e37f664d89861cf2329c9afa2c1fe9e6d4e1a09d872c947e70718aeeac505", size = 223073, upload-time = "2026-02-09T12:58:31.026Z" }, + { url = "https://files.pythonhosted.org/packages/51/5b/84100025be913b44e082ea32abcf1afbf4e872f5120b7a1cab1d331b1e13/coverage-7.13.4-cp314-cp314-win_arm64.whl", hash = "sha256:ad27098a189e5838900ce4c2a99f2fe42a0bf0c2093c17c69b45a71579e8d4a2", size = 221638, upload-time = "2026-02-09T12:58:32.599Z" }, + { url = "https://files.pythonhosted.org/packages/a7/e4/c884a405d6ead1370433dad1e3720216b4f9fd8ef5b64bfd984a2a60a11a/coverage-7.13.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:85480adfb35ffc32d40918aad81b89c69c9cc5661a9b8a81476d3e645321a056", size = 220246, upload-time = "2026-02-09T12:58:34.181Z" }, + { url = "https://files.pythonhosted.org/packages/81/5c/4d7ed8b23b233b0fffbc9dfec53c232be2e695468523242ea9fd30f97ad2/coverage-7.13.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:79be69cf7f3bf9b0deeeb062eab7ac7f36cd4cc4c4dd694bd28921ba4d8596cc", size = 220514, upload-time = "2026-02-09T12:58:35.704Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6f/3284d4203fd2f28edd73034968398cd2d4cb04ab192abc8cff007ea35679/coverage-7.13.4-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:caa421e2684e382c5d8973ac55e4f36bed6821a9bad5c953494de960c74595c9", size = 261877, upload-time = "2026-02-09T12:58:37.864Z" }, + { url = "https://files.pythonhosted.org/packages/09/aa/b672a647bbe1556a85337dc95bfd40d146e9965ead9cc2fe81bde1e5cbce/coverage-7.13.4-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:14375934243ee05f56c45393fe2ce81fe5cc503c07cee2bdf1725fb8bef3ffaf", size = 264004, upload-time = "2026-02-09T12:58:39.492Z" }, + { url = "https://files.pythonhosted.org/packages/79/a1/aa384dbe9181f98bba87dd23dda436f0c6cf2e148aecbb4e50fc51c1a656/coverage-7.13.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:25a41c3104d08edb094d9db0d905ca54d0cd41c928bb6be3c4c799a54753af55", size = 266408, upload-time = "2026-02-09T12:58:41.852Z" }, + { url = "https://files.pythonhosted.org/packages/53/5e/5150bf17b4019bc600799f376bb9606941e55bd5a775dc1e096b6ffea952/coverage-7.13.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6f01afcff62bf9a08fb32b2c1d6e924236c0383c02c790732b6537269e466a72", size = 267544, upload-time = "2026-02-09T12:58:44.093Z" }, + { url = "https://files.pythonhosted.org/packages/e0/ed/f1de5c675987a4a7a672250d2c5c9d73d289dbf13410f00ed7181d8017dd/coverage-7.13.4-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:eb9078108fbf0bcdde37c3f4779303673c2fa1fe8f7956e68d447d0dd426d38a", size = 260980, upload-time = "2026-02-09T12:58:45.721Z" }, + { url = "https://files.pythonhosted.org/packages/b3/e3/fe758d01850aa172419a6743fe76ba8b92c29d181d4f676ffe2dae2ba631/coverage-7.13.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0e086334e8537ddd17e5f16a344777c1ab8194986ec533711cbe6c41cde841b6", size = 263871, upload-time = "2026-02-09T12:58:47.334Z" }, + { url = "https://files.pythonhosted.org/packages/b6/76/b829869d464115e22499541def9796b25312b8cf235d3bb00b39f1675395/coverage-7.13.4-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:725d985c5ab621268b2edb8e50dfe57633dc69bda071abc470fed55a14935fd3", size = 261472, upload-time = "2026-02-09T12:58:48.995Z" }, + { url = "https://files.pythonhosted.org/packages/14/9e/caedb1679e73e2f6ad240173f55218488bfe043e38da577c4ec977489915/coverage-7.13.4-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:3c06f0f1337c667b971ca2f975523347e63ec5e500b9aa5882d91931cd3ef750", size = 265210, upload-time = "2026-02-09T12:58:51.178Z" }, + { url = "https://files.pythonhosted.org/packages/3a/10/0dd02cb009b16ede425b49ec344aba13a6ae1dc39600840ea6abcb085ac4/coverage-7.13.4-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:590c0ed4bf8e85f745e6b805b2e1c457b2e33d5255dd9729743165253bc9ad39", size = 260319, upload-time = "2026-02-09T12:58:53.081Z" }, + { url = "https://files.pythonhosted.org/packages/92/8e/234d2c927af27c6d7a5ffad5bd2cf31634c46a477b4c7adfbfa66baf7ebb/coverage-7.13.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:eb30bf180de3f632cd043322dad5751390e5385108b2807368997d1a92a509d0", size = 262638, upload-time = "2026-02-09T12:58:55.258Z" }, + { url = "https://files.pythonhosted.org/packages/2f/64/e5547c8ff6964e5965c35a480855911b61509cce544f4d442caa759a0702/coverage-7.13.4-cp314-cp314t-win32.whl", hash = "sha256:c4240e7eded42d131a2d2c4dec70374b781b043ddc79a9de4d55ca71f8e98aea", size = 223040, upload-time = "2026-02-09T12:58:56.936Z" }, + { url = "https://files.pythonhosted.org/packages/c7/96/38086d58a181aac86d503dfa9c47eb20715a79c3e3acbdf786e92e5c09a8/coverage-7.13.4-cp314-cp314t-win_amd64.whl", hash = "sha256:4c7d3cc01e7350f2f0f6f7036caaf5673fb56b6998889ccfe9e1c1fe75a9c932", size = 224148, upload-time = "2026-02-09T12:58:58.645Z" }, + { url = "https://files.pythonhosted.org/packages/ce/72/8d10abd3740a0beb98c305e0c3faf454366221c0f37a8bcf8f60020bb65a/coverage-7.13.4-cp314-cp314t-win_arm64.whl", hash = "sha256:23e3f687cf945070d1c90f85db66d11e3025665d8dafa831301a0e0038f3db9b", size = 222172, upload-time = "2026-02-09T12:59:00.396Z" }, + { url = "https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl", hash = "sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0", size = 211242, upload-time = "2026-02-09T12:59:02.032Z" }, ] [[package]] name = "debugpy" -version = "1.8.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ce/b3/05c94639560cf0eaef33662ee5102d3e2a8b9e8c527c53190bf7187bacdb/debugpy-1.8.6.zip", hash = "sha256:c931a9371a86784cee25dec8d65bc2dc7a21f3f1552e3833d9ef8f919d22280a", size = 4956612, upload-time = "2024-09-24T20:41:47.02Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/ce/5e093945df2da28dbd1bc14c631d71431d1aa08adc629e221c9658841f82/debugpy-1.8.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:30f467c5345d9dfdcc0afdb10e018e47f092e383447500f125b4e013236bf14b", size = 2089048, upload-time = "2024-09-24T20:41:49.274Z" }, - { url = "https://files.pythonhosted.org/packages/d4/7a/a5fe4eaf648016a27a875403735a089ba7cc9a4cc906d37c8fdb2997b50d/debugpy-1.8.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d73d8c52614432f4215d0fe79a7e595d0dd162b5c15233762565be2f014803b", size = 3547450, upload-time = "2024-09-24T20:41:51.338Z" }, - { url = "https://files.pythonhosted.org/packages/bf/fe/53d6d46e4a1cb5fb1a979695a9a26c8a04aed6d6ce4ba808a6d42341beba/debugpy-1.8.6-cp310-cp310-win32.whl", hash = "sha256:e3e182cd98eac20ee23a00653503315085b29ab44ed66269482349d307b08df9", size = 5151732, upload-time = "2024-09-24T20:41:53.458Z" }, - { url = "https://files.pythonhosted.org/packages/ce/68/127cfc6012fbeef126eab1e168ad788ee9832b8b0d572743e5c6fa03ea83/debugpy-1.8.6-cp310-cp310-win_amd64.whl", hash = "sha256:e3a82da039cfe717b6fb1886cbbe5c4a3f15d7df4765af857f4307585121c2dd", size = 5183983, upload-time = "2024-09-24T20:41:55.01Z" }, - { url = "https://files.pythonhosted.org/packages/9f/cc/3158aa2c96c677e324981230dfd33087ef4bfb5afb1d9cd40b7a1b35edb2/debugpy-1.8.6-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:67479a94cf5fd2c2d88f9615e087fcb4fec169ec780464a3f2ba4a9a2bb79955", size = 2203403, upload-time = "2024-09-24T20:41:56.625Z" }, - { url = "https://files.pythonhosted.org/packages/d5/9f/5691af62c556392ee45ed9b5c3fde4aaa7cb3b519cc8bea92fc27eab31fc/debugpy-1.8.6-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fb8653f6cbf1dd0a305ac1aa66ec246002145074ea57933978346ea5afdf70b", size = 3120088, upload-time = "2024-09-24T20:41:58.324Z" }, - { url = "https://files.pythonhosted.org/packages/5e/3e/e32b36f9a391af4f8ff6b9c068ee822b5e4aa2d9cf4dc0937696e9249fa6/debugpy-1.8.6-cp311-cp311-win32.whl", hash = "sha256:cdaf0b9691879da2d13fa39b61c01887c34558d1ff6e5c30e2eb698f5384cd43", size = 5077329, upload-time = "2024-09-24T20:42:00.081Z" }, - { url = "https://files.pythonhosted.org/packages/9d/de/ddad801b7fdbe2f97c744b44bb61169c4e0ab48a90f881c8f43b463f206b/debugpy-1.8.6-cp311-cp311-win_amd64.whl", hash = "sha256:43996632bee7435583952155c06881074b9a742a86cee74e701d87ca532fe833", size = 5101373, upload-time = "2024-09-24T20:42:01.685Z" }, - { url = "https://files.pythonhosted.org/packages/b8/9e/882dae43f281fc4742fd9e5d2e0f5dae77f38d4f345e78bf1ed5e1f6202e/debugpy-1.8.6-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:db891b141fc6ee4b5fc6d1cc8035ec329cabc64bdd2ae672b4550c87d4ecb128", size = 2526807, upload-time = "2024-09-24T20:42:03.313Z" }, - { url = "https://files.pythonhosted.org/packages/77/cf/6c0497f4b092cb4a408dda5ab84750032e5535f994d21eb812086d62094d/debugpy-1.8.6-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:567419081ff67da766c898ccf21e79f1adad0e321381b0dfc7a9c8f7a9347972", size = 4162582, upload-time = "2024-09-24T20:42:04.816Z" }, - { url = "https://files.pythonhosted.org/packages/8e/66/e9c0aef0a5118aeaa6dfccb6d4f388602271cfb37c689da5e7b6168075d2/debugpy-1.8.6-cp312-cp312-win32.whl", hash = "sha256:c9834dfd701a1f6bf0f7f0b8b1573970ae99ebbeee68314116e0ccc5c78eea3c", size = 5193541, upload-time = "2024-09-24T20:42:06.768Z" }, - { url = "https://files.pythonhosted.org/packages/c2/97/2196c4132c29f7cd8e574bb05a4b03ed35f94e3fcd1f56e72ea9f10732f4/debugpy-1.8.6-cp312-cp312-win_amd64.whl", hash = "sha256:e4ce0570aa4aca87137890d23b86faeadf184924ad892d20c54237bcaab75d8f", size = 5233374, upload-time = "2024-09-24T20:42:08.364Z" }, - { url = "https://files.pythonhosted.org/packages/b9/db/1fcb9b0cd12cd417fecaab545df7d3c77793092adbe614c51b8352904e85/debugpy-1.8.6-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:df5dc9eb4ca050273b8e374a4cd967c43be1327eeb42bfe2f58b3cdfe7c68dcb", size = 2090260, upload-time = "2024-09-24T20:42:10.467Z" }, - { url = "https://files.pythonhosted.org/packages/dd/07/301ab6ce54793213eef5f85f86fd0f0c7b3579d204149405ffdb7e5c67db/debugpy-1.8.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a85707c6a84b0c5b3db92a2df685b5230dd8fb8c108298ba4f11dba157a615a", size = 3617517, upload-time = "2024-09-24T20:42:12.942Z" }, - { url = "https://files.pythonhosted.org/packages/73/f9/934930dd49ed8f5660fe0c39fded7a5b180eabc6db03e49d9243ce316f1a/debugpy-1.8.6-cp38-cp38-win32.whl", hash = "sha256:538c6cdcdcdad310bbefd96d7850be1cd46e703079cc9e67d42a9ca776cdc8a8", size = 5156468, upload-time = "2024-09-24T20:42:14.47Z" }, - { url = "https://files.pythonhosted.org/packages/e0/19/fa925b305b4c1766ec20ee1c6301fc16a40fb7affba0a0d3d1d12248ef3d/debugpy-1.8.6-cp38-cp38-win_amd64.whl", hash = "sha256:22140bc02c66cda6053b6eb56dfe01bbe22a4447846581ba1dd6df2c9f97982d", size = 5189752, upload-time = "2024-09-24T20:42:16.444Z" }, - { url = "https://files.pythonhosted.org/packages/e4/61/38fa2e907aae3a293e887b04045e4d30f931aafc462b207f4cb846e78c13/debugpy-1.8.6-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:c1cef65cffbc96e7b392d9178dbfd524ab0750da6c0023c027ddcac968fd1caa", size = 2090326, upload-time = "2024-09-24T20:42:18.293Z" }, - { url = "https://files.pythonhosted.org/packages/39/b0/9790509ffeee155038f9707b74d031ed90a17552fe6a63e9069c9c42e0d9/debugpy-1.8.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1e60bd06bb3cc5c0e957df748d1fab501e01416c43a7bdc756d2a992ea1b881", size = 3544122, upload-time = "2024-09-24T20:42:19.751Z" }, - { url = "https://files.pythonhosted.org/packages/7a/a1/d95a015eadf79997cdd2028a5fe3d1f37fbe2548b51470517d3d425960dc/debugpy-1.8.6-cp39-cp39-win32.whl", hash = "sha256:f7158252803d0752ed5398d291dee4c553bb12d14547c0e1843ab74ee9c31123", size = 5152549, upload-time = "2024-09-24T20:42:21.622Z" }, - { url = "https://files.pythonhosted.org/packages/81/6a/32e2c9e980924f3c4b1b644a5c3d949d05fa7b445673ecf3e3244c883669/debugpy-1.8.6-cp39-cp39-win_amd64.whl", hash = "sha256:3358aa619a073b620cd0d51d8a6176590af24abcc3fe2e479929a154bf591b51", size = 5185080, upload-time = "2024-09-24T20:42:24.016Z" }, - { url = "https://files.pythonhosted.org/packages/05/ce/785925e87ce735cc3da7fb2bd66d8ca83173d8a0b60ce35a59a60b8d636f/debugpy-1.8.6-py2.py3-none-any.whl", hash = "sha256:b48892df4d810eff21d3ef37274f4c60d32cdcafc462ad5647239036b0f0649f", size = 5209208, upload-time = "2024-09-24T20:42:25.652Z" }, +version = "1.8.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/b7/cd8080344452e4874aae67c40d8940e2b4d47b01601a8fd9f44786c757c7/debugpy-1.8.20.tar.gz", hash = "sha256:55bc8701714969f1ab89a6d5f2f3d40c36f91b2cbe2f65d98bf8196f6a6a2c33", size = 1645207, upload-time = "2026-01-29T23:03:28.199Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/be/8bd693a0b9d53d48c8978fa5d889e06f3b5b03e45fd1ea1e78267b4887cb/debugpy-1.8.20-cp310-cp310-macosx_15_0_x86_64.whl", hash = "sha256:157e96ffb7f80b3ad36d808646198c90acb46fdcfd8bb1999838f0b6f2b59c64", size = 2099192, upload-time = "2026-01-29T23:03:29.707Z" }, + { url = "https://files.pythonhosted.org/packages/77/1b/85326d07432086a06361d493d2743edd0c4fc2ef62162be7f8618441ac37/debugpy-1.8.20-cp310-cp310-manylinux_2_34_x86_64.whl", hash = "sha256:c1178ae571aff42e61801a38b007af504ec8e05fde1c5c12e5a7efef21009642", size = 3088568, upload-time = "2026-01-29T23:03:31.467Z" }, + { url = "https://files.pythonhosted.org/packages/e8/60/3e08462ee3eccd10998853eb35947c416e446bfe2bc37dbb886b9044586c/debugpy-1.8.20-cp310-cp310-win32.whl", hash = "sha256:c29dd9d656c0fbd77906a6e6a82ae4881514aa3294b94c903ff99303e789b4a2", size = 5284399, upload-time = "2026-01-29T23:03:33.678Z" }, + { url = "https://files.pythonhosted.org/packages/72/43/09d49106e770fe558ced5e80df2e3c2ebee10e576eda155dcc5670473663/debugpy-1.8.20-cp310-cp310-win_amd64.whl", hash = "sha256:3ca85463f63b5dd0aa7aaa933d97cbc47c174896dcae8431695872969f981893", size = 5316388, upload-time = "2026-01-29T23:03:35.095Z" }, + { url = "https://files.pythonhosted.org/packages/51/56/c3baf5cbe4dd77427fd9aef99fcdade259ad128feeb8a786c246adb838e5/debugpy-1.8.20-cp311-cp311-macosx_15_0_universal2.whl", hash = "sha256:eada6042ad88fa1571b74bd5402ee8b86eded7a8f7b827849761700aff171f1b", size = 2208318, upload-time = "2026-01-29T23:03:36.481Z" }, + { url = "https://files.pythonhosted.org/packages/9a/7d/4fa79a57a8e69fe0d9763e98d1110320f9ecd7f1f362572e3aafd7417c9d/debugpy-1.8.20-cp311-cp311-manylinux_2_34_x86_64.whl", hash = "sha256:7de0b7dfeedc504421032afba845ae2a7bcc32ddfb07dae2c3ca5442f821c344", size = 3171493, upload-time = "2026-01-29T23:03:37.775Z" }, + { url = "https://files.pythonhosted.org/packages/7d/f2/1e8f8affe51e12a26f3a8a8a4277d6e60aa89d0a66512f63b1e799d424a4/debugpy-1.8.20-cp311-cp311-win32.whl", hash = "sha256:773e839380cf459caf73cc533ea45ec2737a5cc184cf1b3b796cd4fd98504fec", size = 5209240, upload-time = "2026-01-29T23:03:39.109Z" }, + { url = "https://files.pythonhosted.org/packages/d5/92/1cb532e88560cbee973396254b21bece8c5d7c2ece958a67afa08c9f10dc/debugpy-1.8.20-cp311-cp311-win_amd64.whl", hash = "sha256:1f7650546e0eded1902d0f6af28f787fa1f1dbdbc97ddabaf1cd963a405930cb", size = 5233481, upload-time = "2026-01-29T23:03:40.659Z" }, + { url = "https://files.pythonhosted.org/packages/14/57/7f34f4736bfb6e00f2e4c96351b07805d83c9a7b33d28580ae01374430f7/debugpy-1.8.20-cp312-cp312-macosx_15_0_universal2.whl", hash = "sha256:4ae3135e2089905a916909ef31922b2d733d756f66d87345b3e5e52b7a55f13d", size = 2550686, upload-time = "2026-01-29T23:03:42.023Z" }, + { url = "https://files.pythonhosted.org/packages/ab/78/b193a3975ca34458f6f0e24aaf5c3e3da72f5401f6054c0dfd004b41726f/debugpy-1.8.20-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:88f47850a4284b88bd2bfee1f26132147d5d504e4e86c22485dfa44b97e19b4b", size = 4310588, upload-time = "2026-01-29T23:03:43.314Z" }, + { url = "https://files.pythonhosted.org/packages/c1/55/f14deb95eaf4f30f07ef4b90a8590fc05d9e04df85ee379712f6fb6736d7/debugpy-1.8.20-cp312-cp312-win32.whl", hash = "sha256:4057ac68f892064e5f98209ab582abfee3b543fb55d2e87610ddc133a954d390", size = 5331372, upload-time = "2026-01-29T23:03:45.526Z" }, + { url = "https://files.pythonhosted.org/packages/a1/39/2bef246368bd42f9bd7cba99844542b74b84dacbdbea0833e610f384fee8/debugpy-1.8.20-cp312-cp312-win_amd64.whl", hash = "sha256:a1a8f851e7cf171330679ef6997e9c579ef6dd33c9098458bd9986a0f4ca52e3", size = 5372835, upload-time = "2026-01-29T23:03:47.245Z" }, + { url = "https://files.pythonhosted.org/packages/15/e2/fc500524cc6f104a9d049abc85a0a8b3f0d14c0a39b9c140511c61e5b40b/debugpy-1.8.20-cp313-cp313-macosx_15_0_universal2.whl", hash = "sha256:5dff4bb27027821fdfcc9e8f87309a28988231165147c31730128b1c983e282a", size = 2539560, upload-time = "2026-01-29T23:03:48.738Z" }, + { url = "https://files.pythonhosted.org/packages/90/83/fb33dcea789ed6018f8da20c5a9bc9d82adc65c0c990faed43f7c955da46/debugpy-1.8.20-cp313-cp313-manylinux_2_34_x86_64.whl", hash = "sha256:84562982dd7cf5ebebfdea667ca20a064e096099997b175fe204e86817f64eaf", size = 4293272, upload-time = "2026-01-29T23:03:50.169Z" }, + { url = "https://files.pythonhosted.org/packages/a6/25/b1e4a01bfb824d79a6af24b99ef291e24189080c93576dfd9b1a2815cd0f/debugpy-1.8.20-cp313-cp313-win32.whl", hash = "sha256:da11dea6447b2cadbf8ce2bec59ecea87cc18d2c574980f643f2d2dfe4862393", size = 5331208, upload-time = "2026-01-29T23:03:51.547Z" }, + { url = "https://files.pythonhosted.org/packages/13/f7/a0b368ce54ffff9e9028c098bd2d28cfc5b54f9f6c186929083d4c60ba58/debugpy-1.8.20-cp313-cp313-win_amd64.whl", hash = "sha256:eb506e45943cab2efb7c6eafdd65b842f3ae779f020c82221f55aca9de135ed7", size = 5372930, upload-time = "2026-01-29T23:03:53.585Z" }, + { url = "https://files.pythonhosted.org/packages/33/2e/f6cb9a8a13f5058f0a20fe09711a7b726232cd5a78c6a7c05b2ec726cff9/debugpy-1.8.20-cp314-cp314-macosx_15_0_universal2.whl", hash = "sha256:9c74df62fc064cd5e5eaca1353a3ef5a5d50da5eb8058fcef63106f7bebe6173", size = 2538066, upload-time = "2026-01-29T23:03:54.999Z" }, + { url = "https://files.pythonhosted.org/packages/c5/56/6ddca50b53624e1ca3ce1d1e49ff22db46c47ea5fb4c0cc5c9b90a616364/debugpy-1.8.20-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:077a7447589ee9bc1ff0cdf443566d0ecf540ac8aa7333b775ebcb8ce9f4ecad", size = 4269425, upload-time = "2026-01-29T23:03:56.518Z" }, + { url = "https://files.pythonhosted.org/packages/c5/d9/d64199c14a0d4c476df46c82470a3ce45c8d183a6796cfb5e66533b3663c/debugpy-1.8.20-cp314-cp314-win32.whl", hash = "sha256:352036a99dd35053b37b7803f748efc456076f929c6a895556932eaf2d23b07f", size = 5331407, upload-time = "2026-01-29T23:03:58.481Z" }, + { url = "https://files.pythonhosted.org/packages/e0/d9/1f07395b54413432624d61524dfd98c1a7c7827d2abfdb8829ac92638205/debugpy-1.8.20-cp314-cp314-win_amd64.whl", hash = "sha256:a98eec61135465b062846112e5ecf2eebb855305acc1dfbae43b72903b8ab5be", size = 5372521, upload-time = "2026-01-29T23:03:59.864Z" }, + { url = "https://files.pythonhosted.org/packages/e0/c3/7f67dea8ccf8fdcb9c99033bbe3e90b9e7395415843accb81428c441be2d/debugpy-1.8.20-py2.py3-none-any.whl", hash = "sha256:5be9bed9ae3be00665a06acaa48f8329d2b9632f15fd09f6a9a8c8d9907e54d7", size = 5337658, upload-time = "2026-01-29T23:04:17.404Z" }, ] [[package]] name = "decorator" -version = "5.1.1" +version = "5.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/66/0c/8d907af351aa16b42caae42f9d6aa37b900c67308052d10fdce809f8d952/decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", size = 35016, upload-time = "2022-01-07T08:20:05.666Z" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711, upload-time = "2025-02-24T04:41:34.073Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186", size = 9073, upload-time = "2022-01-07T08:20:03.734Z" }, + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, ] [[package]] name = "dnspython" -version = "2.6.1" +version = "2.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/37/7d/c871f55054e403fdfd6b8f65fd6d1c4e147ed100d3e9f9ba1fe695403939/dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc", size = 332727, upload-time = "2024-02-18T18:48:48.952Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload-time = "2025-09-07T18:58:00.022Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/a1/8c5287991ddb8d3e4662f71356d9656d91ab3a36618c3dd11b280df0d255/dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50", size = 307696, upload-time = "2024-02-18T18:48:46.786Z" }, + { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload-time = "2025-09-07T18:57:58.071Z" }, ] [[package]] name = "docutils" -version = "0.19" +version = "0.21.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/330ea8d383eb2ce973df34d1239b3b21e91cd8c865d21ff82902d952f91f/docutils-0.19.tar.gz", hash = "sha256:33995a6753c30b7f577febfc2c50411fec6aac7f7ffeb7c4cfe5991072dcf9e6", size = 2056383, upload-time = "2022-07-05T20:17:31.045Z" } +resolution-markers = [ + "python_full_version < '3.11'", +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/ed/aefcc8cd0ba62a0560c3c18c33925362d46c6075480bfa4df87b28e169a9/docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", size = 2204444, upload-time = "2024-04-23T18:57:18.24Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/93/69/e391bd51bc08ed9141ecd899a0ddb61ab6465309f1eb470905c0c8868081/docutils-0.19-py3-none-any.whl", hash = "sha256:5e1de4d849fee02c63b040a4a3fd567f4ab104defd8a5511fbbc24a8a017efbc", size = 570472, upload-time = "2022-07-05T20:17:26.388Z" }, + { url = "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", size = 587408, upload-time = "2024-04-23T18:57:14.835Z" }, +] + +[[package]] +name = "docutils" +version = "0.22.4" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/b6/03bb70946330e88ffec97aefd3ea75ba575cb2e762061e0e62a213befee8/docutils-0.22.4.tar.gz", hash = "sha256:4db53b1fde9abecbb74d91230d32ab626d94f6badfc575d6db9194a49df29968", size = 2291750, upload-time = "2025-12-18T19:00:26.443Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/10/5da547df7a391dcde17f59520a231527b8571e6f46fc8efb02ccb370ab12/docutils-0.22.4-py3-none-any.whl", hash = "sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de", size = 633196, upload-time = "2025-12-18T19:00:18.077Z" }, ] [[package]] name = "exceptiongroup" -version = "1.2.2" +version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/09/35/2495c4ac46b980e4ca1f6ad6db102322ef3ad2410b79fdde159a4b0f3b92/exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc", size = 28883, upload-time = "2024-07-12T22:26:00.161Z" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/02/cc/b7e31358aac6ed1ef2bb790a9746ac2c69bcb3c8588b41616914eb106eaf/exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b", size = 16453, upload-time = "2024-07-12T22:25:58.476Z" }, + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, ] [[package]] name = "executing" -version = "2.1.0" +version = "2.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8c/e3/7d45f492c2c4a0e8e0fad57d081a7c8a0286cdd86372b070cca1ec0caa1e/executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab", size = 977485, upload-time = "2024-09-01T12:37:35.708Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b5/fd/afcd0496feca3276f509df3dbd5dae726fcc756f1a08d9e25abe1733f962/executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf", size = 25805, upload-time = "2024-09-01T12:37:33.007Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, ] [[package]] name = "fastjsonschema" -version = "2.20.0" +version = "2.21.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/03/3f/3ad5e7be13b4b8b55f4477141885ab2364f65d5f6ad5f7a9daffd634d066/fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23", size = 373056, upload-time = "2024-06-15T13:27:49.208Z" } +sdist = { url = "https://files.pythonhosted.org/packages/20/b5/23b216d9d985a956623b6bd12d4086b60f0059b27799f23016af04a74ea1/fastjsonschema-2.21.2.tar.gz", hash = "sha256:b1eb43748041c880796cd077f1a07c3d94e93ae84bba5ed36800a33554ae05de", size = 374130, upload-time = "2025-08-14T18:49:36.666Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/ca/086311cdfc017ec964b2436fe0c98c1f4efcb7e4c328956a22456e497655/fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a", size = 23543, upload-time = "2024-06-15T13:27:46.393Z" }, + { url = "https://files.pythonhosted.org/packages/cb/a8/20d0723294217e47de6d9e2e40fd4a9d2f7c4b6ef974babd482a59743694/fastjsonschema-2.21.2-py3-none-any.whl", hash = "sha256:1c797122d0a86c5cace2e54bf4e819c36223b552017172f32c5c024a6b77e463", size = 24024, upload-time = "2025-08-14T18:49:34.776Z" }, ] [[package]] name = "googleapis-common-protos" -version = "1.65.0" +version = "1.73.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/53/3b/1599ceafa875ffb951480c8c74f4b77646a6b80e80970698f2aa93c216ce/googleapis_common_protos-1.65.0.tar.gz", hash = "sha256:334a29d07cddc3aa01dee4988f9afd9b2916ee2ff49d6b757155dc0d197852c0", size = 113657, upload-time = "2024-08-27T16:16:54.012Z" } +sdist = { url = "https://files.pythonhosted.org/packages/99/96/a0205167fa0154f4a542fd6925bdc63d039d88dab3588b875078107e6f06/googleapis_common_protos-1.73.0.tar.gz", hash = "sha256:778d07cd4fbeff84c6f7c72102f0daf98fa2bfd3fa8bea426edc545588da0b5a", size = 147323, upload-time = "2026-03-06T21:53:09.727Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/08/49bfe7cf737952cc1a9c43e80cc258ed45dad7f183c5b8276fc94cb3862d/googleapis_common_protos-1.65.0-py2.py3-none-any.whl", hash = "sha256:2972e6c496f435b92590fd54045060867f3fe9be2c82ab148fc8885035479a63", size = 220890, upload-time = "2024-08-27T16:16:52.675Z" }, + { url = "https://files.pythonhosted.org/packages/69/28/23eea8acd65972bbfe295ce3666b28ac510dfcb115fac089d3edb0feb00a/googleapis_common_protos-1.73.0-py3-none-any.whl", hash = "sha256:dfdaaa2e860f242046be561e6d6cb5c5f1541ae02cfbcb034371aadb2942b4e8", size = 297578, upload-time = "2026-03-06T21:52:33.933Z" }, ] [[package]] name = "greenlet" -version = "3.1.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2f/ff/df5fede753cc10f6a5be0931204ea30c35fa2f2ea7a35b25bdaf4fe40e46/greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467", size = 186022, upload-time = "2024-09-20T18:21:04.506Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/25/90/5234a78dc0ef6496a6eb97b67a42a8e96742a56f7dc808cb954a85390448/greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563", size = 271235, upload-time = "2024-09-20T17:07:18.761Z" }, - { url = "https://files.pythonhosted.org/packages/7c/16/cd631fa0ab7d06ef06387135b7549fdcc77d8d859ed770a0d28e47b20972/greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83", size = 637168, upload-time = "2024-09-20T17:36:43.774Z" }, - { url = "https://files.pythonhosted.org/packages/2f/b1/aed39043a6fec33c284a2c9abd63ce191f4f1a07319340ffc04d2ed3256f/greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0", size = 648826, upload-time = "2024-09-20T17:39:16.921Z" }, - { url = "https://files.pythonhosted.org/packages/fb/2f/3850b867a9af519794784a7eeed1dd5bc68ffbcc5b28cef703711025fd0a/greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc", size = 643295, upload-time = "2024-09-20T17:08:37.951Z" }, - { url = "https://files.pythonhosted.org/packages/cf/69/79e4d63b9387b48939096e25115b8af7cd8a90397a304f92436bcb21f5b2/greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617", size = 599544, upload-time = "2024-09-20T17:08:27.894Z" }, - { url = "https://files.pythonhosted.org/packages/46/1d/44dbcb0e6c323bd6f71b8c2f4233766a5faf4b8948873225d34a0b7efa71/greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7", size = 1125456, upload-time = "2024-09-20T17:44:11.755Z" }, - { url = "https://files.pythonhosted.org/packages/e0/1d/a305dce121838d0278cee39d5bb268c657f10a5363ae4b726848f833f1bb/greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6", size = 1149111, upload-time = "2024-09-20T17:09:22.104Z" }, - { url = "https://files.pythonhosted.org/packages/96/28/d62835fb33fb5652f2e98d34c44ad1a0feacc8b1d3f1aecab035f51f267d/greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80", size = 298392, upload-time = "2024-09-20T17:28:51.988Z" }, - { url = "https://files.pythonhosted.org/packages/28/62/1c2665558618553c42922ed47a4e6d6527e2fa3516a8256c2f431c5d0441/greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70", size = 272479, upload-time = "2024-09-20T17:07:22.332Z" }, - { url = "https://files.pythonhosted.org/packages/76/9d/421e2d5f07285b6e4e3a676b016ca781f63cfe4a0cd8eaecf3fd6f7a71ae/greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159", size = 640404, upload-time = "2024-09-20T17:36:45.588Z" }, - { url = "https://files.pythonhosted.org/packages/e5/de/6e05f5c59262a584e502dd3d261bbdd2c97ab5416cc9c0b91ea38932a901/greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e", size = 652813, upload-time = "2024-09-20T17:39:19.052Z" }, - { url = "https://files.pythonhosted.org/packages/15/85/72f77fc02d00470c86a5c982b8daafdf65d38aefbbe441cebff3bf7037fc/greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383", size = 647831, upload-time = "2024-09-20T17:08:40.577Z" }, - { url = "https://files.pythonhosted.org/packages/f7/4b/1c9695aa24f808e156c8f4813f685d975ca73c000c2a5056c514c64980f6/greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a", size = 602413, upload-time = "2024-09-20T17:08:31.728Z" }, - { url = "https://files.pythonhosted.org/packages/76/70/ad6e5b31ef330f03b12559d19fda2606a522d3849cde46b24f223d6d1619/greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511", size = 1129619, upload-time = "2024-09-20T17:44:14.222Z" }, - { url = "https://files.pythonhosted.org/packages/f4/fb/201e1b932e584066e0f0658b538e73c459b34d44b4bd4034f682423bc801/greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395", size = 1155198, upload-time = "2024-09-20T17:09:23.903Z" }, - { url = "https://files.pythonhosted.org/packages/12/da/b9ed5e310bb8b89661b80cbcd4db5a067903bbcd7fc854923f5ebb4144f0/greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39", size = 298930, upload-time = "2024-09-20T17:25:18.656Z" }, - { url = "https://files.pythonhosted.org/packages/7d/ec/bad1ac26764d26aa1353216fcbfa4670050f66d445448aafa227f8b16e80/greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d", size = 274260, upload-time = "2024-09-20T17:08:07.301Z" }, - { url = "https://files.pythonhosted.org/packages/66/d4/c8c04958870f482459ab5956c2942c4ec35cac7fe245527f1039837c17a9/greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79", size = 649064, upload-time = "2024-09-20T17:36:47.628Z" }, - { url = "https://files.pythonhosted.org/packages/51/41/467b12a8c7c1303d20abcca145db2be4e6cd50a951fa30af48b6ec607581/greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa", size = 663420, upload-time = "2024-09-20T17:39:21.258Z" }, - { url = "https://files.pythonhosted.org/packages/57/5c/7c6f50cb12be092e1dccb2599be5a942c3416dbcfb76efcf54b3f8be4d8d/greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36", size = 660105, upload-time = "2024-09-20T17:08:42.048Z" }, - { url = "https://files.pythonhosted.org/packages/f1/66/033e58a50fd9ec9df00a8671c74f1f3a320564c6415a4ed82a1c651654ba/greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9", size = 613077, upload-time = "2024-09-20T17:08:33.707Z" }, - { url = "https://files.pythonhosted.org/packages/19/c5/36384a06f748044d06bdd8776e231fadf92fc896bd12cb1c9f5a1bda9578/greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0", size = 1135975, upload-time = "2024-09-20T17:44:15.989Z" }, - { url = "https://files.pythonhosted.org/packages/38/f9/c0a0eb61bdf808d23266ecf1d63309f0e1471f284300ce6dac0ae1231881/greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942", size = 1163955, upload-time = "2024-09-20T17:09:25.539Z" }, - { url = "https://files.pythonhosted.org/packages/43/21/a5d9df1d21514883333fc86584c07c2b49ba7c602e670b174bd73cfc9c7f/greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01", size = 299655, upload-time = "2024-09-20T17:21:22.427Z" }, - { url = "https://files.pythonhosted.org/packages/f3/57/0db4940cd7bb461365ca8d6fd53e68254c9dbbcc2b452e69d0d41f10a85e/greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1", size = 272990, upload-time = "2024-09-20T17:08:26.312Z" }, - { url = "https://files.pythonhosted.org/packages/1c/ec/423d113c9f74e5e402e175b157203e9102feeb7088cee844d735b28ef963/greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff", size = 649175, upload-time = "2024-09-20T17:36:48.983Z" }, - { url = "https://files.pythonhosted.org/packages/a9/46/ddbd2db9ff209186b7b7c621d1432e2f21714adc988703dbdd0e65155c77/greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a", size = 663425, upload-time = "2024-09-20T17:39:22.705Z" }, - { url = "https://files.pythonhosted.org/packages/d9/42/b87bc2a81e3a62c3de2b0d550bf91a86939442b7ff85abb94eec3fc0e6aa/greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4", size = 660347, upload-time = "2024-09-20T17:08:45.56Z" }, - { url = "https://files.pythonhosted.org/packages/37/fa/71599c3fd06336cdc3eac52e6871cfebab4d9d70674a9a9e7a482c318e99/greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e", size = 615583, upload-time = "2024-09-20T17:08:36.85Z" }, - { url = "https://files.pythonhosted.org/packages/4e/96/e9ef85de031703ee7a4483489b40cf307f93c1824a02e903106f2ea315fe/greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1", size = 1133039, upload-time = "2024-09-20T17:44:18.287Z" }, - { url = "https://files.pythonhosted.org/packages/87/76/b2b6362accd69f2d1889db61a18c94bc743e961e3cab344c2effaa4b4a25/greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c", size = 1160716, upload-time = "2024-09-20T17:09:27.112Z" }, - { url = "https://files.pythonhosted.org/packages/1f/1b/54336d876186920e185066d8c3024ad55f21d7cc3683c856127ddb7b13ce/greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761", size = 299490, upload-time = "2024-09-20T17:17:09.501Z" }, - { url = "https://files.pythonhosted.org/packages/5f/17/bea55bf36990e1638a2af5ba10c1640273ef20f627962cf97107f1e5d637/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011", size = 643731, upload-time = "2024-09-20T17:36:50.376Z" }, - { url = "https://files.pythonhosted.org/packages/78/d2/aa3d2157f9ab742a08e0fd8f77d4699f37c22adfbfeb0c610a186b5f75e0/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13", size = 649304, upload-time = "2024-09-20T17:39:24.55Z" }, - { url = "https://files.pythonhosted.org/packages/05/79/e15408220bbb989469c8871062c97c6c9136770657ba779711b90870d867/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b", size = 642506, upload-time = "2024-09-20T17:08:47.852Z" }, - { url = "https://files.pythonhosted.org/packages/18/87/470e01a940307796f1d25f8167b551a968540fbe0551c0ebb853cb527dd6/greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822", size = 602753, upload-time = "2024-09-20T17:08:38.079Z" }, - { url = "https://files.pythonhosted.org/packages/e2/72/576815ba674eddc3c25028238f74d7b8068902b3968cbe456771b166455e/greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01", size = 1122731, upload-time = "2024-09-20T17:44:20.556Z" }, - { url = "https://files.pythonhosted.org/packages/ac/38/08cc303ddddc4b3d7c628c3039a61a3aae36c241ed01393d00c2fd663473/greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6", size = 1142112, upload-time = "2024-09-20T17:09:28.753Z" }, - { url = "https://files.pythonhosted.org/packages/97/83/bdf5f69fcf304065ec7cf8fc7c08248479cfed9bcca02bf0001c07e000aa/greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9", size = 271017, upload-time = "2024-09-20T17:08:54.806Z" }, - { url = "https://files.pythonhosted.org/packages/31/4a/2d4443adcb38e1e90e50c653a26b2be39998ea78ca1a4cf414dfdeb2e98b/greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111", size = 642888, upload-time = "2024-09-20T17:36:53.307Z" }, - { url = "https://files.pythonhosted.org/packages/5a/c9/b5d9ac1b932aa772dd1eb90a8a2b30dbd7ad5569dcb7fdac543810d206b4/greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81", size = 655451, upload-time = "2024-09-20T17:39:28.564Z" }, - { url = "https://files.pythonhosted.org/packages/a7/25/de419a2b22fa6e18ce3b2a5adb01d33ec7b2784530f76fa36ba43d8f0fac/greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8", size = 650661, upload-time = "2024-09-20T17:08:50.932Z" }, - { url = "https://files.pythonhosted.org/packages/d8/88/0ce16c0afb2d71d85562a7bcd9b092fec80a7767ab5b5f7e1bbbca8200f8/greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1", size = 605959, upload-time = "2024-09-20T17:08:43.376Z" }, - { url = "https://files.pythonhosted.org/packages/5a/10/39a417ad0afb0b7e5b150f1582cdeb9416f41f2e1df76018434dfac4a6cc/greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd", size = 1132341, upload-time = "2024-09-20T17:44:25.225Z" }, - { url = "https://files.pythonhosted.org/packages/9f/f5/e9b151ddd2ed0508b7a47bef7857e46218dbc3fd10e564617a3865abfaac/greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7", size = 1159409, upload-time = "2024-09-20T17:09:32.224Z" }, - { url = "https://files.pythonhosted.org/packages/86/97/2c86989ca4e0f089fbcdc9229c972a01ef53abdafd5ae89e0f3dcdcd4adb/greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef", size = 281126, upload-time = "2024-09-20T17:48:09.107Z" }, - { url = "https://files.pythonhosted.org/packages/d3/50/7b7a3e10ed82c760c1fd8d3167a7c95508e9fdfc0b0604f05ed1a9a9efdc/greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d", size = 298285, upload-time = "2024-09-20T17:37:05.007Z" }, - { url = "https://files.pythonhosted.org/packages/8c/82/8051e82af6d6b5150aacb6789a657a8afd48f0a44d8e91cb72aaaf28553a/greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3", size = 270027, upload-time = "2024-09-20T17:08:27.964Z" }, - { url = "https://files.pythonhosted.org/packages/f9/74/f66de2785880293780eebd18a2958aeea7cbe7814af1ccef634f4701f846/greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42", size = 634822, upload-time = "2024-09-20T17:36:54.764Z" }, - { url = "https://files.pythonhosted.org/packages/68/23/acd9ca6bc412b02b8aa755e47b16aafbe642dde0ad2f929f836e57a7949c/greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f", size = 646866, upload-time = "2024-09-20T17:39:30.2Z" }, - { url = "https://files.pythonhosted.org/packages/03/d3/1006543621f16689f6dc75f6bcf06e3c23e044c26fe391c16c253623313e/greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145", size = 641268, upload-time = "2024-09-20T17:08:52.469Z" }, - { url = "https://files.pythonhosted.org/packages/2f/c1/ad71ce1b5f61f900593377b3f77b39408bce5dc96754790311b49869e146/greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c", size = 597376, upload-time = "2024-09-20T17:08:46.096Z" }, - { url = "https://files.pythonhosted.org/packages/f7/ff/183226685b478544d61d74804445589e069d00deb8ddef042699733950c7/greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e", size = 1123359, upload-time = "2024-09-20T17:44:27.559Z" }, - { url = "https://files.pythonhosted.org/packages/c0/8b/9b3b85a89c22f55f315908b94cd75ab5fed5973f7393bbef000ca8b2c5c1/greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e", size = 1147458, upload-time = "2024-09-20T17:09:33.708Z" }, - { url = "https://files.pythonhosted.org/packages/b8/1c/248fadcecd1790b0ba793ff81fa2375c9ad6442f4c748bf2cc2e6563346a/greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c", size = 281131, upload-time = "2024-09-20T17:44:53.141Z" }, - { url = "https://files.pythonhosted.org/packages/ae/02/e7d0aef2354a38709b764df50b2b83608f0621493e47f47694eb80922822/greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22", size = 298306, upload-time = "2024-09-20T17:33:23.059Z" }, +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/51/1664f6b78fc6ebbd98019a1fd730e83fa78f2db7058f72b1463d3612b8db/greenlet-3.3.2.tar.gz", hash = "sha256:2eaf067fc6d886931c7962e8c6bede15d2f01965560f3359b27c80bde2d151f2", size = 188267, upload-time = "2026-02-20T20:54:15.531Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/3f/9859f655d11901e7b2996c6e3d33e0caa9a1d4572c3bc61ed0faa64b2f4c/greenlet-3.3.2-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9bc885b89709d901859cf95179ec9f6bb67a3d2bb1f0e88456461bd4b7f8fd0d", size = 277747, upload-time = "2026-02-20T20:16:21.325Z" }, + { url = "https://files.pythonhosted.org/packages/fb/07/cb284a8b5c6498dbd7cba35d31380bb123d7dceaa7907f606c8ff5993cbf/greenlet-3.3.2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b568183cf65b94919be4438dc28416b234b678c608cafac8874dfeeb2a9bbe13", size = 579202, upload-time = "2026-02-20T20:47:28.955Z" }, + { url = "https://files.pythonhosted.org/packages/ed/45/67922992b3a152f726163b19f890a85129a992f39607a2a53155de3448b8/greenlet-3.3.2-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:527fec58dc9f90efd594b9b700662ed3fb2493c2122067ac9c740d98080a620e", size = 590620, upload-time = "2026-02-20T20:55:55.581Z" }, + { url = "https://files.pythonhosted.org/packages/ad/55/9f1ebb5a825215fadcc0f7d5073f6e79e3007e3282b14b22d6aba7ca6cb8/greenlet-3.3.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ad0c8917dd42a819fe77e6bdfcb84e3379c0de956469301d9fd36427a1ca501f", size = 591729, upload-time = "2026-02-20T20:20:58.395Z" }, + { url = "https://files.pythonhosted.org/packages/24/b4/21f5455773d37f94b866eb3cf5caed88d6cea6dd2c6e1f9c34f463cba3ec/greenlet-3.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:97245cc10e5515dbc8c3104b2928f7f02b6813002770cfaffaf9a6e0fc2b94ef", size = 1551946, upload-time = "2026-02-20T20:49:31.102Z" }, + { url = "https://files.pythonhosted.org/packages/00/68/91f061a926abead128fe1a87f0b453ccf07368666bd59ffa46016627a930/greenlet-3.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8c1fdd7d1b309ff0da81d60a9688a8bd044ac4e18b250320a96fc68d31c209ca", size = 1618494, upload-time = "2026-02-20T20:21:06.541Z" }, + { url = "https://files.pythonhosted.org/packages/ac/78/f93e840cbaef8becaf6adafbaf1319682a6c2d8c1c20224267a5c6c8c891/greenlet-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:5d0e35379f93a6d0222de929a25ab47b5eb35b5ef4721c2b9cbcc4036129ff1f", size = 230092, upload-time = "2026-02-20T20:17:09.379Z" }, + { url = "https://files.pythonhosted.org/packages/f3/47/16400cb42d18d7a6bb46f0626852c1718612e35dcb0dffa16bbaffdf5dd2/greenlet-3.3.2-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:c56692189a7d1c7606cb794be0a8381470d95c57ce5be03fb3d0ef57c7853b86", size = 278890, upload-time = "2026-02-20T20:19:39.263Z" }, + { url = "https://files.pythonhosted.org/packages/a3/90/42762b77a5b6aa96cd8c0e80612663d39211e8ae8a6cd47c7f1249a66262/greenlet-3.3.2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ebd458fa8285960f382841da585e02201b53a5ec2bac6b156fc623b5ce4499f", size = 581120, upload-time = "2026-02-20T20:47:30.161Z" }, + { url = "https://files.pythonhosted.org/packages/bf/6f/f3d64f4fa0a9c7b5c5b3c810ff1df614540d5aa7d519261b53fba55d4df9/greenlet-3.3.2-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a443358b33c4ec7b05b79a7c8b466f5d275025e750298be7340f8fc63dff2a55", size = 594363, upload-time = "2026-02-20T20:55:56.965Z" }, + { url = "https://files.pythonhosted.org/packages/72/83/3e06a52aca8128bdd4dcd67e932b809e76a96ab8c232a8b025b2850264c5/greenlet-3.3.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e2cd90d413acbf5e77ae41e5d3c9b3ac1d011a756d7284d7f3f2b806bbd6358", size = 594156, upload-time = "2026-02-20T20:20:59.955Z" }, + { url = "https://files.pythonhosted.org/packages/70/79/0de5e62b873e08fe3cef7dbe84e5c4bc0e8ed0c7ff131bccb8405cd107c8/greenlet-3.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:442b6057453c8cb29b4fb36a2ac689382fc71112273726e2423f7f17dc73bf99", size = 1554649, upload-time = "2026-02-20T20:49:32.293Z" }, + { url = "https://files.pythonhosted.org/packages/5a/00/32d30dee8389dc36d42170a9c66217757289e2afb0de59a3565260f38373/greenlet-3.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:45abe8eb6339518180d5a7fa47fa01945414d7cca5ecb745346fc6a87d2750be", size = 1619472, upload-time = "2026-02-20T20:21:07.966Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3a/efb2cf697fbccdf75b24e2c18025e7dfa54c4f31fab75c51d0fe79942cef/greenlet-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e692b2dae4cc7077cbb11b47d258533b48c8fde69a33d0d8a82e2fe8d8531d5", size = 230389, upload-time = "2026-02-20T20:17:18.772Z" }, + { url = "https://files.pythonhosted.org/packages/e1/a1/65bbc059a43a7e2143ec4fc1f9e3f673e04f9c7b371a494a101422ac4fd5/greenlet-3.3.2-cp311-cp311-win_arm64.whl", hash = "sha256:02b0a8682aecd4d3c6c18edf52bc8e51eacdd75c8eac52a790a210b06aa295fd", size = 229645, upload-time = "2026-02-20T20:18:18.695Z" }, + { url = "https://files.pythonhosted.org/packages/ea/ab/1608e5a7578e62113506740b88066bf09888322a311cff602105e619bd87/greenlet-3.3.2-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:ac8d61d4343b799d1e526db579833d72f23759c71e07181c2d2944e429eb09cd", size = 280358, upload-time = "2026-02-20T20:17:43.971Z" }, + { url = "https://files.pythonhosted.org/packages/a5/23/0eae412a4ade4e6623ff7626e38998cb9b11e9ff1ebacaa021e4e108ec15/greenlet-3.3.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ceec72030dae6ac0c8ed7591b96b70410a8be370b6a477b1dbc072856ad02bd", size = 601217, upload-time = "2026-02-20T20:47:31.462Z" }, + { url = "https://files.pythonhosted.org/packages/f8/16/5b1678a9c07098ecb9ab2dd159fafaf12e963293e61ee8d10ecb55273e5e/greenlet-3.3.2-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a2a5be83a45ce6188c045bcc44b0ee037d6a518978de9a5d97438548b953a1ac", size = 611792, upload-time = "2026-02-20T20:55:58.423Z" }, + { url = "https://files.pythonhosted.org/packages/50/1f/5155f55bd71cabd03765a4aac9ac446be129895271f73872c36ebd4b04b6/greenlet-3.3.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43e99d1749147ac21dde49b99c9abffcbc1e2d55c67501465ef0930d6e78e070", size = 613875, upload-time = "2026-02-20T20:21:01.102Z" }, + { url = "https://files.pythonhosted.org/packages/fc/dd/845f249c3fcd69e32df80cdab059b4be8b766ef5830a3d0aa9d6cad55beb/greenlet-3.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4c956a19350e2c37f2c48b336a3afb4bff120b36076d9d7fb68cb44e05d95b79", size = 1571467, upload-time = "2026-02-20T20:49:33.495Z" }, + { url = "https://files.pythonhosted.org/packages/2a/50/2649fe21fcc2b56659a452868e695634722a6655ba245d9f77f5656010bf/greenlet-3.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6c6f8ba97d17a1e7d664151284cb3315fc5f8353e75221ed4324f84eb162b395", size = 1640001, upload-time = "2026-02-20T20:21:09.154Z" }, + { url = "https://files.pythonhosted.org/packages/9b/40/cc802e067d02af8b60b6771cea7d57e21ef5e6659912814babb42b864713/greenlet-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:34308836d8370bddadb41f5a7ce96879b72e2fdfb4e87729330c6ab52376409f", size = 231081, upload-time = "2026-02-20T20:17:28.121Z" }, + { url = "https://files.pythonhosted.org/packages/58/2e/fe7f36ff1982d6b10a60d5e0740c759259a7d6d2e1dc41da6d96de32fff6/greenlet-3.3.2-cp312-cp312-win_arm64.whl", hash = "sha256:d3a62fa76a32b462a97198e4c9e99afb9ab375115e74e9a83ce180e7a496f643", size = 230331, upload-time = "2026-02-20T20:17:23.34Z" }, + { url = "https://files.pythonhosted.org/packages/ac/48/f8b875fa7dea7dd9b33245e37f065af59df6a25af2f9561efa8d822fde51/greenlet-3.3.2-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:aa6ac98bdfd716a749b84d4034486863fd81c3abde9aa3cf8eff9127981a4ae4", size = 279120, upload-time = "2026-02-20T20:19:01.9Z" }, + { url = "https://files.pythonhosted.org/packages/49/8d/9771d03e7a8b1ee456511961e1b97a6d77ae1dea4a34a5b98eee706689d3/greenlet-3.3.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab0c7e7901a00bc0a7284907273dc165b32e0d109a6713babd04471327ff7986", size = 603238, upload-time = "2026-02-20T20:47:32.873Z" }, + { url = "https://files.pythonhosted.org/packages/59/0e/4223c2bbb63cd5c97f28ffb2a8aee71bdfb30b323c35d409450f51b91e3e/greenlet-3.3.2-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d248d8c23c67d2291ffd47af766e2a3aa9fa1c6703155c099feb11f526c63a92", size = 614219, upload-time = "2026-02-20T20:55:59.817Z" }, + { url = "https://files.pythonhosted.org/packages/7a/34/259b28ea7a2a0c904b11cd36c79b8cef8019b26ee5dbe24e73b469dea347/greenlet-3.3.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b6997d360a4e6a4e936c0f9625b1c20416b8a0ea18a8e19cabbefc712e7397ab", size = 616774, upload-time = "2026-02-20T20:21:02.454Z" }, + { url = "https://files.pythonhosted.org/packages/0a/03/996c2d1689d486a6e199cb0f1cf9e4aa940c500e01bdf201299d7d61fa69/greenlet-3.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:64970c33a50551c7c50491671265d8954046cb6e8e2999aacdd60e439b70418a", size = 1571277, upload-time = "2026-02-20T20:49:34.795Z" }, + { url = "https://files.pythonhosted.org/packages/d9/c4/2570fc07f34a39f2caf0bf9f24b0a1a0a47bc2e8e465b2c2424821389dfc/greenlet-3.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1a9172f5bf6bd88e6ba5a84e0a68afeac9dc7b6b412b245dd64f52d83c81e55b", size = 1640455, upload-time = "2026-02-20T20:21:10.261Z" }, + { url = "https://files.pythonhosted.org/packages/91/39/5ef5aa23bc545aa0d31e1b9b55822b32c8da93ba657295840b6b34124009/greenlet-3.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:a7945dd0eab63ded0a48e4dcade82939783c172290a7903ebde9e184333ca124", size = 230961, upload-time = "2026-02-20T20:16:58.461Z" }, + { url = "https://files.pythonhosted.org/packages/62/6b/a89f8456dcb06becff288f563618e9f20deed8dd29beea14f9a168aef64b/greenlet-3.3.2-cp313-cp313-win_arm64.whl", hash = "sha256:394ead29063ee3515b4e775216cb756b2e3b4a7e55ae8fd884f17fa579e6b327", size = 230221, upload-time = "2026-02-20T20:17:37.152Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ae/8bffcbd373b57a5992cd077cbe8858fff39110480a9d50697091faea6f39/greenlet-3.3.2-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:8d1658d7291f9859beed69a776c10822a0a799bc4bfe1bd4272bb60e62507dab", size = 279650, upload-time = "2026-02-20T20:18:00.783Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c0/45f93f348fa49abf32ac8439938726c480bd96b2a3c6f4d949ec0124b69f/greenlet-3.3.2-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:18cb1b7337bca281915b3c5d5ae19f4e76d35e1df80f4ad3c1a7be91fadf1082", size = 650295, upload-time = "2026-02-20T20:47:34.036Z" }, + { url = "https://files.pythonhosted.org/packages/b3/de/dd7589b3f2b8372069ab3e4763ea5329940fc7ad9dcd3e272a37516d7c9b/greenlet-3.3.2-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c2e47408e8ce1c6f1ceea0dffcdf6ebb85cc09e55c7af407c99f1112016e45e9", size = 662163, upload-time = "2026-02-20T20:56:01.295Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d8/09bfa816572a4d83bccd6750df1926f79158b1c36c5f73786e26dbe4ee38/greenlet-3.3.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63d10328839d1973e5ba35e98cccbca71b232b14051fd957b6f8b6e8e80d0506", size = 664160, upload-time = "2026-02-20T20:21:04.015Z" }, + { url = "https://files.pythonhosted.org/packages/48/cf/56832f0c8255d27f6c35d41b5ec91168d74ec721d85f01a12131eec6b93c/greenlet-3.3.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8e4ab3cfb02993c8cc248ea73d7dae6cec0253e9afa311c9b37e603ca9fad2ce", size = 1619181, upload-time = "2026-02-20T20:49:36.052Z" }, + { url = "https://files.pythonhosted.org/packages/0a/23/b90b60a4aabb4cec0796e55f25ffbfb579a907c3898cd2905c8918acaa16/greenlet-3.3.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:94ad81f0fd3c0c0681a018a976e5c2bd2ca2d9d94895f23e7bb1af4e8af4e2d5", size = 1687713, upload-time = "2026-02-20T20:21:11.684Z" }, + { url = "https://files.pythonhosted.org/packages/f3/ca/2101ca3d9223a1dc125140dbc063644dca76df6ff356531eb27bc267b446/greenlet-3.3.2-cp314-cp314-win_amd64.whl", hash = "sha256:8c4dd0f3997cf2512f7601563cc90dfb8957c0cff1e3a1b23991d4ea1776c492", size = 232034, upload-time = "2026-02-20T20:20:08.186Z" }, + { url = "https://files.pythonhosted.org/packages/f6/4a/ecf894e962a59dea60f04877eea0fd5724618da89f1867b28ee8b91e811f/greenlet-3.3.2-cp314-cp314-win_arm64.whl", hash = "sha256:cd6f9e2bbd46321ba3bbb4c8a15794d32960e3b0ae2cc4d49a1a53d314805d71", size = 231437, upload-time = "2026-02-20T20:18:59.722Z" }, + { url = "https://files.pythonhosted.org/packages/98/6d/8f2ef704e614bcf58ed43cfb8d87afa1c285e98194ab2cfad351bf04f81e/greenlet-3.3.2-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:e26e72bec7ab387ac80caa7496e0f908ff954f31065b0ffc1f8ecb1338b11b54", size = 286617, upload-time = "2026-02-20T20:19:29.856Z" }, + { url = "https://files.pythonhosted.org/packages/5e/0d/93894161d307c6ea237a43988f27eba0947b360b99ac5239ad3fe09f0b47/greenlet-3.3.2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b466dff7a4ffda6ca975979bab80bdadde979e29fc947ac3be4451428d8b0e4", size = 655189, upload-time = "2026-02-20T20:47:35.742Z" }, + { url = "https://files.pythonhosted.org/packages/f5/2c/d2d506ebd8abcb57386ec4f7ba20f4030cbe56eae541bc6fd6ef399c0b41/greenlet-3.3.2-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b8bddc5b73c9720bea487b3bffdb1840fe4e3656fba3bd40aa1489e9f37877ff", size = 658225, upload-time = "2026-02-20T20:56:02.527Z" }, + { url = "https://files.pythonhosted.org/packages/8e/30/3a09155fbf728673a1dea713572d2d31159f824a37c22da82127056c44e4/greenlet-3.3.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b26b0f4428b871a751968285a1ac9648944cea09807177ac639b030bddebcea4", size = 657907, upload-time = "2026-02-20T20:21:05.259Z" }, + { url = "https://files.pythonhosted.org/packages/f3/fd/d05a4b7acd0154ed758797f0a43b4c0962a843bedfe980115e842c5b2d08/greenlet-3.3.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1fb39a11ee2e4d94be9a76671482be9398560955c9e568550de0224e41104727", size = 1618857, upload-time = "2026-02-20T20:49:37.309Z" }, + { url = "https://files.pythonhosted.org/packages/6f/e1/50ee92a5db521de8f35075b5eff060dd43d39ebd46c2181a2042f7070385/greenlet-3.3.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:20154044d9085151bc309e7689d6f7ba10027f8f5a8c0676ad398b951913d89e", size = 1680010, upload-time = "2026-02-20T20:21:13.427Z" }, + { url = "https://files.pythonhosted.org/packages/29/4b/45d90626aef8e65336bed690106d1382f7a43665e2249017e9527df8823b/greenlet-3.3.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c04c5e06ec3e022cbfe2cd4a846e1d4e50087444f875ff6d2c2ad8445495cf1a", size = 237086, upload-time = "2026-02-20T20:20:45.786Z" }, ] [[package]] name = "grpclib" -version = "0.4.7" +version = "0.4.9" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "h2" }, { name = "multidict" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/79/b9/55936e462a5925190d7427e880b3033601d1effd13809b483d13a926061a/grpclib-0.4.7.tar.gz", hash = "sha256:2988ef57c02b22b7a2e8e961792c41ccf97efc2ace91ae7a5b0de03c363823c3", size = 61254, upload-time = "2023-12-24T17:47:41.572Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5b/28/5a2c299ec82a876a252c5919aa895a6f1d1d35c96417c5ce4a4660dc3a80/grpclib-0.4.9.tar.gz", hash = "sha256:cc589c330fa81004c6400a52a566407574498cb5b055fa927013361e21466c46", size = 84798, upload-time = "2025-12-14T22:23:14.349Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/90/b0cbbd9efcc82816c58f31a34963071aa19fb792a212a5d9caf8e0fc3097/grpclib-0.4.9-py3-none-any.whl", hash = "sha256:7762ec1c8ed94dfad597475152dd35cbd11aecaaca2f243e29702435ca24cf0e", size = 77063, upload-time = "2025-12-14T22:23:13.224Z" }, +] [[package]] name = "h2" -version = "4.1.0" +version = "4.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "hpack" }, { name = "hyperframe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2a/32/fec683ddd10629ea4ea46d206752a95a2d8a48c22521edd70b142488efe1/h2-4.1.0.tar.gz", hash = "sha256:a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb", size = 2145593, upload-time = "2021-10-05T18:27:47.18Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/17/afa56379f94ad0fe8defd37d6eb3f89a25404ffc71d4d848893d270325fc/h2-4.3.0.tar.gz", hash = "sha256:6c59efe4323fa18b47a632221a1888bd7fde6249819beda254aeca909f221bf1", size = 2152026, upload-time = "2025-08-23T18:12:19.778Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/e5/db6d438da759efbb488c4f3fbdab7764492ff3c3f953132efa6b9f0e9e53/h2-4.1.0-py3-none-any.whl", hash = "sha256:03a46bcf682256c95b5fd9e9a99c1323584c3eec6440d379b9903d709476bc6d", size = 57488, upload-time = "2021-10-05T18:27:39.977Z" }, + { url = "https://files.pythonhosted.org/packages/69/b2/119f6e6dcbd96f9069ce9a2665e0146588dc9f88f29549711853645e736a/h2-4.3.0-py3-none-any.whl", hash = "sha256:c438f029a25f7945c69e0ccf0fb951dc3f73a5f6412981daee861431b70e2bdd", size = 61779, upload-time = "2025-08-23T18:12:17.779Z" }, ] [[package]] name = "hpack" -version = "4.0.0" +version = "4.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3e/9b/fda93fb4d957db19b0f6b370e79d586b3e8528b20252c729c476a2c02954/hpack-4.0.0.tar.gz", hash = "sha256:fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095", size = 49117, upload-time = "2020-08-30T10:35:57.868Z" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/48/71de9ed269fdae9c8057e5a4c0aa7402e8bb16f2c6e90b3aa53327b113f8/hpack-4.1.0.tar.gz", hash = "sha256:ec5eca154f7056aa06f196a557655c5b009b382873ac8d1e66e79e87535f1dca", size = 51276, upload-time = "2025-01-22T21:44:58.347Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d5/34/e8b383f35b77c402d28563d2b8f83159319b509bc5f760b15d60b0abf165/hpack-4.0.0-py3-none-any.whl", hash = "sha256:84a076fad3dc9a9f8063ccb8041ef100867b1878b25ef0ee63847a5d53818a6c", size = 32611, upload-time = "2020-08-30T10:35:56.357Z" }, + { url = "https://files.pythonhosted.org/packages/07/c6/80c95b1b2b94682a72cbdbfb85b81ae2daffa4291fbfa1b1464502ede10d/hpack-4.1.0-py3-none-any.whl", hash = "sha256:157ac792668d995c657d93111f46b4535ed114f0c9c8d672271bbec7eae1b496", size = 34357, upload-time = "2025-01-22T21:44:56.92Z" }, ] [[package]] name = "hyperframe" -version = "6.0.1" +version = "6.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5a/2a/4747bff0a17f7281abe73e955d60d80aae537a5d203f417fa1c2e7578ebb/hyperframe-6.0.1.tar.gz", hash = "sha256:ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914", size = 25008, upload-time = "2021-04-17T12:11:22.757Z" } +sdist = { url = "https://files.pythonhosted.org/packages/02/e7/94f8232d4a74cc99514c13a9f995811485a6903d48e5d952771ef6322e30/hyperframe-6.1.0.tar.gz", hash = "sha256:f630908a00854a7adeabd6382b43923a4c4cd4b821fcb527e6ab9e15382a3b08", size = 26566, upload-time = "2025-01-22T21:41:49.302Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d7/de/85a784bcc4a3779d1753a7ec2dee5de90e18c7bcf402e71b51fcf150b129/hyperframe-6.0.1-py3-none-any.whl", hash = "sha256:0ec6bafd80d8ad2195c4f03aacba3a8265e57bc4cff261e802bf39970ed02a15", size = 12389, upload-time = "2021-04-17T12:11:21.045Z" }, + { url = "https://files.pythonhosted.org/packages/48/30/47d0bf6072f7252e6521f3447ccfa40b421b6824517f82854703d0f5a98b/hyperframe-6.1.0-py3-none-any.whl", hash = "sha256:b03380493a519fce58ea5af42e4a42317bf9bd425596f7a0835ffce80f1a42e5", size = 13007, upload-time = "2025-01-22T21:41:47.295Z" }, ] [[package]] name = "idna" -version = "3.10" +version = "3.11" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490, upload-time = "2024-09-15T18:07:39.745Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442, upload-time = "2024-09-15T18:07:37.964Z" }, + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, ] [[package]] name = "imagesize" -version = "1.4.1" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a7/84/62473fb57d61e31fef6e36d64a179c8781605429fd927b5dd608c997be31/imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a", size = 1280026, upload-time = "2022-07-01T12:21:05.687Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/e6/7bf14eeb8f8b7251141944835abd42eb20a658d89084b7e1f3e5fe394090/imagesize-2.0.0.tar.gz", hash = "sha256:8e8358c4a05c304f1fccf7ff96f036e7243a189e9e42e90851993c558cfe9ee3", size = 1773045, upload-time = "2026-03-03T14:18:29.941Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b", size = 8769, upload-time = "2022-07-01T12:21:02.467Z" }, + { url = "https://files.pythonhosted.org/packages/5f/53/fb7122b71361a0d121b669dcf3d31244ef75badbbb724af388948de543e2/imagesize-2.0.0-py2.py3-none-any.whl", hash = "sha256:5667c5bbb57ab3f1fa4bc366f4fbc971db3d5ed011fd2715fd8001f782718d96", size = 9441, upload-time = "2026-03-03T14:18:27.892Z" }, ] [[package]] name = "importlib-metadata" -version = "8.5.0" +version = "8.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "zipp" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cd/12/33e59336dca5be0c398a7482335911a33aa0e20776128f038019f1a95f1b/importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7", size = 55304, upload-time = "2024-09-11T14:56:08.937Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/d9/a1e041c5e7caa9a05c925f4bdbdfb7f006d1f74996af53467bc394c97be7/importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b", size = 26514, upload-time = "2024-09-11T14:56:07.019Z" }, -] - -[[package]] -name = "importlib-resources" -version = "6.4.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "zipp", marker = "python_full_version < '3.9'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/98/be/f3e8c6081b684f176b761e6a2fef02a0be939740ed6f54109a2951d806f3/importlib_resources-6.4.5.tar.gz", hash = "sha256:980862a1d16c9e147a59603677fa2aa5fd82b87f223b6cb870695bcfce830065", size = 43372, upload-time = "2024-09-09T17:03:14.677Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/6a/4604f9ae2fa62ef47b9de2fa5ad599589d28c9fd1d335f32759813dfa91e/importlib_resources-6.4.5-py3-none-any.whl", hash = "sha256:ac29d5f956f01d5e4bb63102a5a19957f1b9175e45649977264a1416783bb717", size = 36115, upload-time = "2024-09-09T17:03:13.39Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5e/f8e9a1d23b9c20a551a8a02ea3637b4642e22c2626e3a13a9a29cdea99eb/importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151", size = 27865, upload-time = "2025-12-21T10:00:18.329Z" }, ] [[package]] name = "iniconfig" -version = "2.0.0" +version = "2.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646, upload-time = "2023-01-07T11:08:11.254Z" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892, upload-time = "2023-01-07T11:08:09.864Z" }, + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, ] [[package]] name = "ipykernel" -version = "6.29.5" +version = "7.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "appnope", marker = "sys_platform == 'darwin'" }, { name = "comm" }, { name = "debugpy" }, - { name = "ipython" }, + { name = "ipython", version = "8.38.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "ipython", version = "9.10.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "ipython", version = "9.11.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "jupyter-client" }, { name = "jupyter-core" }, { name = "matplotlib-inline" }, @@ -641,45 +668,107 @@ dependencies = [ { name = "tornado" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e9/5c/67594cb0c7055dc50814b21731c22a601101ea3b1b50a9a1b090e11f5d0f/ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215", size = 163367, upload-time = "2024-07-01T14:07:22.543Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/8d/b68b728e2d06b9e0051019640a40a9eb7a88fcd82c2e1b5ce70bef5ff044/ipykernel-7.2.0.tar.gz", hash = "sha256:18ed160b6dee2cbb16e5f3575858bc19d8f1fe6046a9a680c708494ce31d909e", size = 176046, upload-time = "2026-02-06T16:43:27.403Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/5c/368ae6c01c7628438358e6d337c19b05425727fbb221d2a3c4303c372f42/ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5", size = 117173, upload-time = "2024-07-01T14:07:19.603Z" }, + { url = "https://files.pythonhosted.org/packages/82/b9/e73d5d9f405cba7706c539aa8b311b49d4c2f3d698d9c12f815231169c71/ipykernel-7.2.0-py3-none-any.whl", hash = "sha256:3bbd4420d2b3cc105cbdf3756bfc04500b1e52f090a90716851f3916c62e1661", size = 118788, upload-time = "2026-02-06T16:43:25.149Z" }, ] [[package]] name = "ipython" -version = "8.12.3" +version = "8.38.0" source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] dependencies = [ - { name = "appnope", marker = "sys_platform == 'darwin'" }, - { name = "backcall" }, - { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "decorator" }, - { name = "jedi" }, - { name = "matplotlib-inline" }, - { name = "pexpect", marker = "sys_platform != 'win32'" }, - { name = "pickleshare" }, - { name = "prompt-toolkit" }, - { name = "pygments" }, - { name = "stack-data" }, - { name = "traitlets" }, - { name = "typing-extensions", marker = "python_full_version < '3.10'" }, + { name = "colorama", marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, + { name = "decorator", marker = "python_full_version < '3.11'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "jedi", marker = "python_full_version < '3.11'" }, + { name = "matplotlib-inline", marker = "python_full_version < '3.11'" }, + { name = "pexpect", marker = "python_full_version < '3.11' and sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit", marker = "python_full_version < '3.11'" }, + { name = "pygments", marker = "python_full_version < '3.11'" }, + { name = "stack-data", marker = "python_full_version < '3.11'" }, + { name = "traitlets", marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e5/61/1810830e8b93c72dcd3c0f150c80a00c3deb229562d9423807ec92c3a539/ipython-8.38.0.tar.gz", hash = "sha256:9cfea8c903ce0867cc2f23199ed8545eb741f3a69420bfcf3743ad1cec856d39", size = 5513996, upload-time = "2026-01-05T10:59:06.901Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/df/db59624f4c71b39717c423409950ac3f2c8b2ce4b0aac843112c7fb3f721/ipython-8.38.0-py3-none-any.whl", hash = "sha256:750162629d800ac65bb3b543a14e7a74b0e88063eac9b92124d4b2aa3f6d8e86", size = 831813, upload-time = "2026-01-05T10:59:04.239Z" }, +] + +[[package]] +name = "ipython" +version = "9.10.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version == '3.11.*'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version == '3.11.*' and sys_platform == 'win32'" }, + { name = "decorator", marker = "python_full_version == '3.11.*'" }, + { name = "ipython-pygments-lexers", marker = "python_full_version == '3.11.*'" }, + { name = "jedi", marker = "python_full_version == '3.11.*'" }, + { name = "matplotlib-inline", marker = "python_full_version == '3.11.*'" }, + { name = "pexpect", marker = "python_full_version == '3.11.*' and sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit", marker = "python_full_version == '3.11.*'" }, + { name = "pygments", marker = "python_full_version == '3.11.*'" }, + { name = "stack-data", marker = "python_full_version == '3.11.*'" }, + { name = "traitlets", marker = "python_full_version == '3.11.*'" }, + { name = "typing-extensions", marker = "python_full_version == '3.11.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a6/60/2111715ea11f39b1535bed6024b7dec7918b71e5e5d30855a5b503056b50/ipython-9.10.0.tar.gz", hash = "sha256:cd9e656be97618a0676d058134cd44e6dc7012c0e5cb36a9ce96a8c904adaf77", size = 4426526, upload-time = "2026-02-02T10:00:33.594Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/aa/898dec789a05731cd5a9f50605b7b44a72bd198fd0d4528e11fc610177cc/ipython-9.10.0-py3-none-any.whl", hash = "sha256:c6ab68cc23bba8c7e18e9b932797014cc61ea7fd6f19de180ab9ba73e65ee58d", size = 622774, upload-time = "2026-02-02T10:00:31.503Z" }, +] + +[[package]] +name = "ipython" +version = "9.11.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version >= '3.12' and sys_platform == 'win32'" }, + { name = "decorator", marker = "python_full_version >= '3.12'" }, + { name = "ipython-pygments-lexers", marker = "python_full_version >= '3.12'" }, + { name = "jedi", marker = "python_full_version >= '3.12'" }, + { name = "matplotlib-inline", marker = "python_full_version >= '3.12'" }, + { name = "pexpect", marker = "python_full_version >= '3.12' and sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit", marker = "python_full_version >= '3.12'" }, + { name = "pygments", marker = "python_full_version >= '3.12'" }, + { name = "stack-data", marker = "python_full_version >= '3.12'" }, + { name = "traitlets", marker = "python_full_version >= '3.12'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9e/6a/44ef299b1762f5a73841e87fae8a73a8cc8aee538d6dc8c77a5afe1fd2ce/ipython-8.12.3.tar.gz", hash = "sha256:3910c4b54543c2ad73d06579aa771041b7d5707b033bd488669b4cf544e3b363", size = 5470171, upload-time = "2023-09-29T09:14:37.468Z" } +sdist = { url = "https://files.pythonhosted.org/packages/86/28/a4698eda5a8928a45d6b693578b135b753e14fa1c2b36ee9441e69a45576/ipython-9.11.0.tar.gz", hash = "sha256:2a94bc4406b22ecc7e4cb95b98450f3ea493a76bec8896cda11b78d7752a6667", size = 4427354, upload-time = "2026-03-05T08:57:30.549Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/97/8fe103906cd81bc42d3b0175b5534a9f67dccae47d6451131cf8d0d70bb2/ipython-8.12.3-py3-none-any.whl", hash = "sha256:b0340d46a933d27c657b211a329d0be23793c36595acf9e6ef4164bc01a1804c", size = 798307, upload-time = "2023-09-29T09:14:34.431Z" }, + { url = "https://files.pythonhosted.org/packages/b2/90/45c72becc57158facc6a6404f663b77bbcea2519ca57f760e2879ae1315d/ipython-9.11.0-py3-none-any.whl", hash = "sha256:6922d5bcf944c6e525a76a0a304451b60a2b6f875e86656d8bc2dfda5d710e19", size = 624222, upload-time = "2026-03-05T08:57:28.94Z" }, +] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074, upload-time = "2025-01-17T11:24:33.271Z" }, ] [[package]] name = "jedi" -version = "0.19.1" +version = "0.19.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "parso" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d6/99/99b493cec4bf43176b678de30f81ed003fd6a647a301b9c927280c600f0a/jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd", size = 1227821, upload-time = "2023-10-02T09:20:39.728Z" } +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/9f/bc63f0f0737ad7a60800bfd472a4836661adae21f9c2535f3957b1e54ceb/jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0", size = 1569361, upload-time = "2023-10-02T09:20:35.754Z" }, + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, ] [[package]] @@ -696,37 +785,34 @@ wheels = [ [[package]] name = "jsonschema" -version = "4.23.0" +version = "4.26.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, - { name = "importlib-resources", marker = "python_full_version < '3.9'" }, { name = "jsonschema-specifications" }, - { name = "pkgutil-resolve-name", marker = "python_full_version < '3.9'" }, { name = "referencing" }, { name = "rpds-py" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/38/2e/03362ee4034a4c917f697890ccd4aec0800ccf9ded7f511971c75451deec/jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", size = 325778, upload-time = "2024-07-08T18:40:05.546Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566", size = 88462, upload-time = "2024-07-08T18:40:00.165Z" }, + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, ] [[package]] name = "jsonschema-specifications" -version = "2023.12.1" +version = "2025.9.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-resources", marker = "python_full_version < '3.9'" }, { name = "referencing" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f8/b9/cc0cc592e7c195fb8a650c1d5990b10175cf13b4c97465c72ec841de9e4b/jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc", size = 13983, upload-time = "2023-12-25T15:16:53.63Z" } +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/07/44bd408781594c4d0a027666ef27fab1e441b109dc3b76b4f836f8fd04fe/jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c", size = 18482, upload-time = "2023-12-25T15:16:51.997Z" }, + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, ] [[package]] name = "jupyter-cache" -version = "0.6.1" +version = "1.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, @@ -738,174 +824,179 @@ dependencies = [ { name = "sqlalchemy" }, { name = "tabulate" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/69/64/08dcc1f6fc54a263525edd23b5d2754793470c1c41a8dd82d52406f8d876/jupyter-cache-0.6.1.tar.gz", hash = "sha256:26f83901143edf4af2f3ff5a91e2d2ad298e46e2cee03c8071d37a23a63ccbfc", size = 31953, upload-time = "2023-04-22T15:38:06.006Z" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/f7/3627358075f183956e8c4974603232b03afd4ddc7baf72c2bc9fff522291/jupyter_cache-1.0.1.tar.gz", hash = "sha256:16e808eb19e3fb67a223db906e131ea6e01f03aa27f49a7214ce6a5fec186fb9", size = 32048, upload-time = "2024-11-15T16:03:55.322Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/da/8e/918b115bb3b4b821e2d43315e1a08b909219723191623ffbae9072fd226a/jupyter_cache-0.6.1-py3-none-any.whl", hash = "sha256:2fce7d4975805c77f75bdfc1bc2e82bc538b8e5b1af27f2f5e06d55b9f996a82", size = 33886, upload-time = "2023-04-22T15:38:04.33Z" }, + { url = "https://files.pythonhosted.org/packages/64/6b/67b87da9d36bff9df7d0efbd1a325fa372a43be7158effaf43ed7b22341d/jupyter_cache-1.0.1-py3-none-any.whl", hash = "sha256:9c3cafd825ba7da8b5830485343091143dff903e4d8c69db9349b728b140abf6", size = 33907, upload-time = "2024-11-15T16:03:54.021Z" }, ] [[package]] name = "jupyter-client" -version = "8.6.3" +version = "8.8.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "jupyter-core" }, { name = "python-dateutil" }, { name = "pyzmq" }, { name = "tornado" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/71/22/bf9f12fdaeae18019a468b68952a60fe6dbab5d67cd2a103cac7659b41ca/jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419", size = 342019, upload-time = "2024-09-17T10:44:17.613Z" } +sdist = { url = "https://files.pythonhosted.org/packages/05/e4/ba649102a3bc3fbca54e7239fb924fd434c766f855693d86de0b1f2bec81/jupyter_client-8.8.0.tar.gz", hash = "sha256:d556811419a4f2d96c869af34e854e3f059b7cc2d6d01a9cd9c85c267691be3e", size = 348020, upload-time = "2026-01-08T13:55:47.938Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/11/85/b0394e0b6fcccd2c1eeefc230978a6f8cb0c5df1e4cd3e7625735a0d7d1e/jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f", size = 106105, upload-time = "2024-09-17T10:44:15.218Z" }, + { url = "https://files.pythonhosted.org/packages/2d/0b/ceb7694d864abc0a047649aec263878acb9f792e1fec3e676f22dc9015e3/jupyter_client-8.8.0-py3-none-any.whl", hash = "sha256:f93a5b99c5e23a507b773d3a1136bd6e16c67883ccdbd9a829b0bbdb98cd7d7a", size = 107371, upload-time = "2026-01-08T13:55:45.562Z" }, ] [[package]] name = "jupyter-core" -version = "5.7.2" +version = "5.9.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "platformdirs" }, - { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/00/11/b56381fa6c3f4cc5d2cf54a7dbf98ad9aa0b339ef7a601d6053538b079a7/jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9", size = 87629, upload-time = "2024-03-12T12:37:35.652Z" } +sdist = { url = "https://files.pythonhosted.org/packages/02/49/9d1284d0dc65e2c757b74c6687b6d319b02f822ad039e5c512df9194d9dd/jupyter_core-5.9.1.tar.gz", hash = "sha256:4d09aaff303b9566c3ce657f580bd089ff5c91f5f89cf7d8846c3cdf465b5508", size = 89814, upload-time = "2025-10-16T19:19:18.444Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/fb/108ecd1fe961941959ad0ee4e12ee7b8b1477247f30b1fdfd83ceaf017f0/jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409", size = 28965, upload-time = "2024-03-12T12:37:32.36Z" }, + { url = "https://files.pythonhosted.org/packages/e7/e7/80988e32bf6f73919a113473a604f5a8f09094de312b9d52b79c2df7612b/jupyter_core-5.9.1-py3-none-any.whl", hash = "sha256:ebf87fdc6073d142e114c72c9e29a9d7ca03fad818c5d300ce2adc1fb0743407", size = 29032, upload-time = "2025-10-16T19:19:16.783Z" }, ] [[package]] name = "markdown-it-py" -version = "2.2.0" +version = "3.0.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.9'", + "python_full_version < '3.11'", ] dependencies = [ - { name = "mdurl", marker = "python_full_version < '3.9'" }, + { name = "mdurl", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e4/c0/59bd6d0571986f72899288a95d9d6178d0eebd70b6650f1bb3f0da90f8f7/markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1", size = 67120, upload-time = "2023-02-22T05:54:30.899Z" } +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload-time = "2023-06-03T06:41:14.443Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/25/2d88e8feee8e055d015343f9b86e370a1ccbec546f2865c98397aaef24af/markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30", size = 84466, upload-time = "2023-02-22T05:54:29.508Z" }, + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" }, ] [[package]] name = "markdown-it-py" -version = "3.0.0" +version = "4.0.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.9' and python_full_version < '3.12'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", ] dependencies = [ - { name = "mdurl", marker = "python_full_version >= '3.9'" }, + { name = "mdurl", marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596, upload-time = "2023-06-03T06:41:14.443Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" }, + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, ] [[package]] name = "markupsafe" -version = "2.1.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/87/5b/aae44c6655f3801e81aa3eef09dbbf012431987ba564d7231722f68df02d/MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b", size = 19384, upload-time = "2024-02-02T16:31:22.863Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e4/54/ad5eb37bf9d51800010a74e4665425831a9db4e7c4e0fde4352e391e808e/MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc", size = 18206, upload-time = "2024-02-02T16:30:04.105Z" }, - { url = "https://files.pythonhosted.org/packages/6a/4a/a4d49415e600bacae038c67f9fecc1d5433b9d3c71a4de6f33537b89654c/MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5", size = 14079, upload-time = "2024-02-02T16:30:06.5Z" }, - { url = "https://files.pythonhosted.org/packages/0a/7b/85681ae3c33c385b10ac0f8dd025c30af83c78cec1c37a6aa3b55e67f5ec/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46", size = 26620, upload-time = "2024-02-02T16:30:08.31Z" }, - { url = "https://files.pythonhosted.org/packages/7c/52/2b1b570f6b8b803cef5ac28fdf78c0da318916c7d2fe9402a84d591b394c/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f", size = 25818, upload-time = "2024-02-02T16:30:09.577Z" }, - { url = "https://files.pythonhosted.org/packages/29/fe/a36ba8c7ca55621620b2d7c585313efd10729e63ef81e4e61f52330da781/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900", size = 25493, upload-time = "2024-02-02T16:30:11.488Z" }, - { url = "https://files.pythonhosted.org/packages/60/ae/9c60231cdfda003434e8bd27282b1f4e197ad5a710c14bee8bea8a9ca4f0/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff", size = 30630, upload-time = "2024-02-02T16:30:13.144Z" }, - { url = "https://files.pythonhosted.org/packages/65/dc/1510be4d179869f5dafe071aecb3f1f41b45d37c02329dfba01ff59e5ac5/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad", size = 29745, upload-time = "2024-02-02T16:30:14.222Z" }, - { url = "https://files.pythonhosted.org/packages/30/39/8d845dd7d0b0613d86e0ef89549bfb5f61ed781f59af45fc96496e897f3a/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd", size = 30021, upload-time = "2024-02-02T16:30:16.032Z" }, - { url = "https://files.pythonhosted.org/packages/c7/5c/356a6f62e4f3c5fbf2602b4771376af22a3b16efa74eb8716fb4e328e01e/MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4", size = 16659, upload-time = "2024-02-02T16:30:17.079Z" }, - { url = "https://files.pythonhosted.org/packages/69/48/acbf292615c65f0604a0c6fc402ce6d8c991276e16c80c46a8f758fbd30c/MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5", size = 17213, upload-time = "2024-02-02T16:30:18.251Z" }, - { url = "https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f", size = 18219, upload-time = "2024-02-02T16:30:19.988Z" }, - { url = "https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2", size = 14098, upload-time = "2024-02-02T16:30:21.063Z" }, - { url = "https://files.pythonhosted.org/packages/1c/cf/35fe557e53709e93feb65575c93927942087e9b97213eabc3fe9d5b25a55/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced", size = 29014, upload-time = "2024-02-02T16:30:22.926Z" }, - { url = "https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5", size = 28220, upload-time = "2024-02-02T16:30:24.76Z" }, - { url = "https://files.pythonhosted.org/packages/0c/40/2e73e7d532d030b1e41180807a80d564eda53babaf04d65e15c1cf897e40/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c", size = 27756, upload-time = "2024-02-02T16:30:25.877Z" }, - { url = "https://files.pythonhosted.org/packages/18/46/5dca760547e8c59c5311b332f70605d24c99d1303dd9a6e1fc3ed0d73561/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f", size = 33988, upload-time = "2024-02-02T16:30:26.935Z" }, - { url = "https://files.pythonhosted.org/packages/6d/c5/27febe918ac36397919cd4a67d5579cbbfa8da027fa1238af6285bb368ea/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a", size = 32718, upload-time = "2024-02-02T16:30:28.111Z" }, - { url = "https://files.pythonhosted.org/packages/f8/81/56e567126a2c2bc2684d6391332e357589a96a76cb9f8e5052d85cb0ead8/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f", size = 33317, upload-time = "2024-02-02T16:30:29.214Z" }, - { url = "https://files.pythonhosted.org/packages/00/0b/23f4b2470accb53285c613a3ab9ec19dc944eaf53592cb6d9e2af8aa24cc/MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906", size = 16670, upload-time = "2024-02-02T16:30:30.915Z" }, - { url = "https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617", size = 17224, upload-time = "2024-02-02T16:30:32.09Z" }, - { url = "https://files.pythonhosted.org/packages/53/bd/583bf3e4c8d6a321938c13f49d44024dbe5ed63e0a7ba127e454a66da974/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1", size = 18215, upload-time = "2024-02-02T16:30:33.081Z" }, - { url = "https://files.pythonhosted.org/packages/48/d6/e7cd795fc710292c3af3a06d80868ce4b02bfbbf370b7cee11d282815a2a/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4", size = 14069, upload-time = "2024-02-02T16:30:34.148Z" }, - { url = "https://files.pythonhosted.org/packages/51/b5/5d8ec796e2a08fc814a2c7d2584b55f889a55cf17dd1a90f2beb70744e5c/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee", size = 29452, upload-time = "2024-02-02T16:30:35.149Z" }, - { url = "https://files.pythonhosted.org/packages/0a/0d/2454f072fae3b5a137c119abf15465d1771319dfe9e4acbb31722a0fff91/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5", size = 28462, upload-time = "2024-02-02T16:30:36.166Z" }, - { url = "https://files.pythonhosted.org/packages/2d/75/fd6cb2e68780f72d47e6671840ca517bda5ef663d30ada7616b0462ad1e3/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b", size = 27869, upload-time = "2024-02-02T16:30:37.834Z" }, - { url = "https://files.pythonhosted.org/packages/b0/81/147c477391c2750e8fc7705829f7351cf1cd3be64406edcf900dc633feb2/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a", size = 33906, upload-time = "2024-02-02T16:30:39.366Z" }, - { url = "https://files.pythonhosted.org/packages/8b/ff/9a52b71839d7a256b563e85d11050e307121000dcebc97df120176b3ad93/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f", size = 32296, upload-time = "2024-02-02T16:30:40.413Z" }, - { url = "https://files.pythonhosted.org/packages/88/07/2dc76aa51b481eb96a4c3198894f38b480490e834479611a4053fbf08623/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169", size = 33038, upload-time = "2024-02-02T16:30:42.243Z" }, - { url = "https://files.pythonhosted.org/packages/96/0c/620c1fb3661858c0e37eb3cbffd8c6f732a67cd97296f725789679801b31/MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad", size = 16572, upload-time = "2024-02-02T16:30:43.326Z" }, - { url = "https://files.pythonhosted.org/packages/3f/14/c3554d512d5f9100a95e737502f4a2323a1959f6d0d01e0d0997b35f7b10/MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb", size = 17127, upload-time = "2024-02-02T16:30:44.418Z" }, - { url = "https://files.pythonhosted.org/packages/f8/ff/2c942a82c35a49df5de3a630ce0a8456ac2969691b230e530ac12314364c/MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a", size = 18192, upload-time = "2024-02-02T16:30:57.715Z" }, - { url = "https://files.pythonhosted.org/packages/4f/14/6f294b9c4f969d0c801a4615e221c1e084722ea6114ab2114189c5b8cbe0/MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46", size = 14072, upload-time = "2024-02-02T16:30:58.844Z" }, - { url = "https://files.pythonhosted.org/packages/81/d4/fd74714ed30a1dedd0b82427c02fa4deec64f173831ec716da11c51a50aa/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532", size = 26928, upload-time = "2024-02-02T16:30:59.922Z" }, - { url = "https://files.pythonhosted.org/packages/c7/bd/50319665ce81bb10e90d1cf76f9e1aa269ea6f7fa30ab4521f14d122a3df/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab", size = 26106, upload-time = "2024-02-02T16:31:01.582Z" }, - { url = "https://files.pythonhosted.org/packages/4c/6f/f2b0f675635b05f6afd5ea03c094557bdb8622fa8e673387444fe8d8e787/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68", size = 25781, upload-time = "2024-02-02T16:31:02.71Z" }, - { url = "https://files.pythonhosted.org/packages/51/e0/393467cf899b34a9d3678e78961c2c8cdf49fb902a959ba54ece01273fb1/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0", size = 30518, upload-time = "2024-02-02T16:31:04.392Z" }, - { url = "https://files.pythonhosted.org/packages/f6/02/5437e2ad33047290dafced9df741d9efc3e716b75583bbd73a9984f1b6f7/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4", size = 29669, upload-time = "2024-02-02T16:31:05.53Z" }, - { url = "https://files.pythonhosted.org/packages/0e/7d/968284145ffd9d726183ed6237c77938c021abacde4e073020f920e060b2/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3", size = 29933, upload-time = "2024-02-02T16:31:06.636Z" }, - { url = "https://files.pythonhosted.org/packages/bf/f3/ecb00fc8ab02b7beae8699f34db9357ae49d9f21d4d3de6f305f34fa949e/MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff", size = 16656, upload-time = "2024-02-02T16:31:07.767Z" }, - { url = "https://files.pythonhosted.org/packages/92/21/357205f03514a49b293e214ac39de01fadd0970a6e05e4bf1ddd0ffd0881/MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029", size = 17206, upload-time = "2024-02-02T16:31:08.843Z" }, - { url = "https://files.pythonhosted.org/packages/0f/31/780bb297db036ba7b7bbede5e1d7f1e14d704ad4beb3ce53fb495d22bc62/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf", size = 18193, upload-time = "2024-02-02T16:31:10.155Z" }, - { url = "https://files.pythonhosted.org/packages/6c/77/d77701bbef72892affe060cdacb7a2ed7fd68dae3b477a8642f15ad3b132/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2", size = 14073, upload-time = "2024-02-02T16:31:11.442Z" }, - { url = "https://files.pythonhosted.org/packages/d9/a7/1e558b4f78454c8a3a0199292d96159eb4d091f983bc35ef258314fe7269/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8", size = 26486, upload-time = "2024-02-02T16:31:12.488Z" }, - { url = "https://files.pythonhosted.org/packages/5f/5a/360da85076688755ea0cceb92472923086993e86b5613bbae9fbc14136b0/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3", size = 25685, upload-time = "2024-02-02T16:31:13.726Z" }, - { url = "https://files.pythonhosted.org/packages/6a/18/ae5a258e3401f9b8312f92b028c54d7026a97ec3ab20bfaddbdfa7d8cce8/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465", size = 25338, upload-time = "2024-02-02T16:31:14.812Z" }, - { url = "https://files.pythonhosted.org/packages/0b/cc/48206bd61c5b9d0129f4d75243b156929b04c94c09041321456fd06a876d/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e", size = 30439, upload-time = "2024-02-02T16:31:15.946Z" }, - { url = "https://files.pythonhosted.org/packages/d1/06/a41c112ab9ffdeeb5f77bc3e331fdadf97fa65e52e44ba31880f4e7f983c/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea", size = 29531, upload-time = "2024-02-02T16:31:17.13Z" }, - { url = "https://files.pythonhosted.org/packages/02/8c/ab9a463301a50dab04d5472e998acbd4080597abc048166ded5c7aa768c8/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6", size = 29823, upload-time = "2024-02-02T16:31:18.247Z" }, - { url = "https://files.pythonhosted.org/packages/bc/29/9bc18da763496b055d8e98ce476c8e718dcfd78157e17f555ce6dd7d0895/MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf", size = 16658, upload-time = "2024-02-02T16:31:19.583Z" }, - { url = "https://files.pythonhosted.org/packages/f6/f8/4da07de16f10551ca1f640c92b5f316f9394088b183c6a57183df6de5ae4/MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5", size = 17211, upload-time = "2024-02-02T16:31:20.96Z" }, +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, + { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, + { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, + { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, + { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, + { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, ] [[package]] name = "matplotlib-inline" -version = "0.1.7" +version = "0.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", size = 8159, upload-time = "2024-04-15T13:44:44.803Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899, upload-time = "2024-04-15T13:44:43.265Z" }, -] - -[[package]] -name = "mdit-py-plugins" -version = "0.3.5" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.9'", -] -dependencies = [ - { name = "markdown-it-py", version = "2.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/49/e7/cc2720da8a32724b36d04c6dba5644154cdf883a1482b3bbb81959a642ed/mdit-py-plugins-0.3.5.tar.gz", hash = "sha256:eee0adc7195e5827e17e02d2a258a2ba159944a0748f59c5099a4a27f78fcf6a", size = 39871, upload-time = "2023-03-02T17:42:50.654Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/74/97e72a36efd4ae2bccb3463284300f8953f199b5ffbc04cbbb0ec78f74b1/matplotlib_inline-0.2.1.tar.gz", hash = "sha256:e1ee949c340d771fc39e241ea75683deb94762c8fa5f2927ec57c83c4dffa9fe", size = 8110, upload-time = "2025-10-23T09:00:22.126Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/4c/a9b222f045f98775034d243198212cbea36d3524c3ee1e8ab8c0346d6953/mdit_py_plugins-0.3.5-py3-none-any.whl", hash = "sha256:ca9a0714ea59a24b2b044a1831f48d817dd0c817e84339f20e7889f392d77c4e", size = 52087, upload-time = "2023-03-02T17:42:48.841Z" }, + { url = "https://files.pythonhosted.org/packages/af/33/ee4519fa02ed11a94aef9559552f3b17bb863f2ecfe1a35dc7f548cde231/matplotlib_inline-0.2.1-py3-none-any.whl", hash = "sha256:d56ce5156ba6085e00a9d54fead6ed29a9c47e215cd1bba2e976ef39f5710a76", size = 9516, upload-time = "2025-10-23T09:00:20.675Z" }, ] [[package]] name = "mdit-py-plugins" -version = "0.4.2" +version = "0.5.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.9' and python_full_version < '3.12'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", -] dependencies = [ - { name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "markdown-it-py", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/19/03/a2ecab526543b152300717cf232bb4bb8605b6edb946c845016fa9c9c9fd/mdit_py_plugins-0.4.2.tar.gz", hash = "sha256:5f2cd1fdb606ddf152d37ec30e46101a60512bc0e5fa1a7002c36647b09e26b5", size = 43542, upload-time = "2024-09-09T20:27:49.564Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/fd/a756d36c0bfba5f6e39a1cdbdbfdd448dc02692467d83816dff4592a1ebc/mdit_py_plugins-0.5.0.tar.gz", hash = "sha256:f4918cb50119f50446560513a8e311d574ff6aaed72606ddae6d35716fe809c6", size = 44655, upload-time = "2025-08-11T07:25:49.083Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/f7/7782a043553ee469c1ff49cfa1cdace2d6bf99a1f333cf38676b3ddf30da/mdit_py_plugins-0.4.2-py3-none-any.whl", hash = "sha256:0c673c3f889399a33b95e88d2f0d111b4447bdfea7f237dab2d488f459835636", size = 55316, upload-time = "2024-09-09T20:27:48.397Z" }, + { url = "https://files.pythonhosted.org/packages/fb/86/dd6e5db36df29e76c7a7699123569a4a18c1623ce68d826ed96c62643cae/mdit_py_plugins-0.5.0-py3-none-any.whl", hash = "sha256:07a08422fc1936a5d26d146759e9155ea466e842f5ab2f7d2266dd084c8dab1f", size = 57205, upload-time = "2025-08-11T07:25:47.597Z" }, ] [[package]] @@ -919,225 +1010,236 @@ wheels = [ [[package]] name = "multidict" -version = "6.1.0" +version = "6.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d6/be/504b89a5e9ca731cd47487e91c469064f8ae5af93b7259758dcfc2b9c848/multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a", size = 64002, upload-time = "2024-09-09T23:49:38.163Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/68/259dee7fd14cf56a17c554125e534f6274c2860159692a414d0b402b9a6d/multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60", size = 48628, upload-time = "2024-09-09T23:47:18.278Z" }, - { url = "https://files.pythonhosted.org/packages/50/79/53ba256069fe5386a4a9e80d4e12857ced9de295baf3e20c68cdda746e04/multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1", size = 29327, upload-time = "2024-09-09T23:47:20.224Z" }, - { url = "https://files.pythonhosted.org/packages/ff/10/71f1379b05b196dae749b5ac062e87273e3f11634f447ebac12a571d90ae/multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53", size = 29689, upload-time = "2024-09-09T23:47:21.667Z" }, - { url = "https://files.pythonhosted.org/packages/71/45/70bac4f87438ded36ad4793793c0095de6572d433d98575a5752629ef549/multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5", size = 126639, upload-time = "2024-09-09T23:47:23.333Z" }, - { url = "https://files.pythonhosted.org/packages/80/cf/17f35b3b9509b4959303c05379c4bfb0d7dd05c3306039fc79cf035bbac0/multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581", size = 134315, upload-time = "2024-09-09T23:47:24.99Z" }, - { url = "https://files.pythonhosted.org/packages/ef/1f/652d70ab5effb33c031510a3503d4d6efc5ec93153562f1ee0acdc895a57/multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56", size = 129471, upload-time = "2024-09-09T23:47:26.305Z" }, - { url = "https://files.pythonhosted.org/packages/a6/64/2dd6c4c681688c0165dea3975a6a4eab4944ea30f35000f8b8af1df3148c/multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429", size = 124585, upload-time = "2024-09-09T23:47:27.958Z" }, - { url = "https://files.pythonhosted.org/packages/87/56/e6ee5459894c7e554b57ba88f7257dc3c3d2d379cb15baaa1e265b8c6165/multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748", size = 116957, upload-time = "2024-09-09T23:47:29.376Z" }, - { url = "https://files.pythonhosted.org/packages/36/9e/616ce5e8d375c24b84f14fc263c7ef1d8d5e8ef529dbc0f1df8ce71bb5b8/multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db", size = 128609, upload-time = "2024-09-09T23:47:31.038Z" }, - { url = "https://files.pythonhosted.org/packages/8c/4f/4783e48a38495d000f2124020dc96bacc806a4340345211b1ab6175a6cb4/multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056", size = 123016, upload-time = "2024-09-09T23:47:32.47Z" }, - { url = "https://files.pythonhosted.org/packages/3e/b3/4950551ab8fc39862ba5e9907dc821f896aa829b4524b4deefd3e12945ab/multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76", size = 133542, upload-time = "2024-09-09T23:47:34.103Z" }, - { url = "https://files.pythonhosted.org/packages/96/4d/f0ce6ac9914168a2a71df117935bb1f1781916acdecbb43285e225b484b8/multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160", size = 130163, upload-time = "2024-09-09T23:47:35.716Z" }, - { url = "https://files.pythonhosted.org/packages/be/72/17c9f67e7542a49dd252c5ae50248607dfb780bcc03035907dafefb067e3/multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7", size = 126832, upload-time = "2024-09-09T23:47:37.116Z" }, - { url = "https://files.pythonhosted.org/packages/71/9f/72d719e248cbd755c8736c6d14780533a1606ffb3fbb0fbd77da9f0372da/multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0", size = 26402, upload-time = "2024-09-09T23:47:38.863Z" }, - { url = "https://files.pythonhosted.org/packages/04/5a/d88cd5d00a184e1ddffc82aa2e6e915164a6d2641ed3606e766b5d2f275a/multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d", size = 28800, upload-time = "2024-09-09T23:47:40.056Z" }, - { url = "https://files.pythonhosted.org/packages/93/13/df3505a46d0cd08428e4c8169a196131d1b0c4b515c3649829258843dde6/multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6", size = 48570, upload-time = "2024-09-09T23:47:41.36Z" }, - { url = "https://files.pythonhosted.org/packages/f0/e1/a215908bfae1343cdb72f805366592bdd60487b4232d039c437fe8f5013d/multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156", size = 29316, upload-time = "2024-09-09T23:47:42.612Z" }, - { url = "https://files.pythonhosted.org/packages/70/0f/6dc70ddf5d442702ed74f298d69977f904960b82368532c88e854b79f72b/multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb", size = 29640, upload-time = "2024-09-09T23:47:44.028Z" }, - { url = "https://files.pythonhosted.org/packages/d8/6d/9c87b73a13d1cdea30b321ef4b3824449866bd7f7127eceed066ccb9b9ff/multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b", size = 131067, upload-time = "2024-09-09T23:47:45.617Z" }, - { url = "https://files.pythonhosted.org/packages/cc/1e/1b34154fef373371fd6c65125b3d42ff5f56c7ccc6bfff91b9b3c60ae9e0/multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72", size = 138507, upload-time = "2024-09-09T23:47:47.429Z" }, - { url = "https://files.pythonhosted.org/packages/fb/e0/0bc6b2bac6e461822b5f575eae85da6aae76d0e2a79b6665d6206b8e2e48/multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304", size = 133905, upload-time = "2024-09-09T23:47:48.878Z" }, - { url = "https://files.pythonhosted.org/packages/ba/af/73d13b918071ff9b2205fcf773d316e0f8fefb4ec65354bbcf0b10908cc6/multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351", size = 129004, upload-time = "2024-09-09T23:47:50.124Z" }, - { url = "https://files.pythonhosted.org/packages/74/21/23960627b00ed39643302d81bcda44c9444ebcdc04ee5bedd0757513f259/multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb", size = 121308, upload-time = "2024-09-09T23:47:51.97Z" }, - { url = "https://files.pythonhosted.org/packages/8b/5c/cf282263ffce4a596ed0bb2aa1a1dddfe1996d6a62d08842a8d4b33dca13/multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3", size = 132608, upload-time = "2024-09-09T23:47:53.201Z" }, - { url = "https://files.pythonhosted.org/packages/d7/3e/97e778c041c72063f42b290888daff008d3ab1427f5b09b714f5a8eff294/multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399", size = 127029, upload-time = "2024-09-09T23:47:54.435Z" }, - { url = "https://files.pythonhosted.org/packages/47/ac/3efb7bfe2f3aefcf8d103e9a7162572f01936155ab2f7ebcc7c255a23212/multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423", size = 137594, upload-time = "2024-09-09T23:47:55.659Z" }, - { url = "https://files.pythonhosted.org/packages/42/9b/6c6e9e8dc4f915fc90a9b7798c44a30773dea2995fdcb619870e705afe2b/multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3", size = 134556, upload-time = "2024-09-09T23:47:56.98Z" }, - { url = "https://files.pythonhosted.org/packages/1d/10/8e881743b26aaf718379a14ac58572a240e8293a1c9d68e1418fb11c0f90/multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753", size = 130993, upload-time = "2024-09-09T23:47:58.163Z" }, - { url = "https://files.pythonhosted.org/packages/45/84/3eb91b4b557442802d058a7579e864b329968c8d0ea57d907e7023c677f2/multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80", size = 26405, upload-time = "2024-09-09T23:47:59.391Z" }, - { url = "https://files.pythonhosted.org/packages/9f/0b/ad879847ecbf6d27e90a6eabb7eff6b62c129eefe617ea45eae7c1f0aead/multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926", size = 28795, upload-time = "2024-09-09T23:48:00.359Z" }, - { url = "https://files.pythonhosted.org/packages/fd/16/92057c74ba3b96d5e211b553895cd6dc7cc4d1e43d9ab8fafc727681ef71/multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa", size = 48713, upload-time = "2024-09-09T23:48:01.893Z" }, - { url = "https://files.pythonhosted.org/packages/94/3d/37d1b8893ae79716179540b89fc6a0ee56b4a65fcc0d63535c6f5d96f217/multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436", size = 29516, upload-time = "2024-09-09T23:48:03.463Z" }, - { url = "https://files.pythonhosted.org/packages/a2/12/adb6b3200c363062f805275b4c1e656be2b3681aada66c80129932ff0bae/multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761", size = 29557, upload-time = "2024-09-09T23:48:04.905Z" }, - { url = "https://files.pythonhosted.org/packages/47/e9/604bb05e6e5bce1e6a5cf80a474e0f072e80d8ac105f1b994a53e0b28c42/multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e", size = 130170, upload-time = "2024-09-09T23:48:06.862Z" }, - { url = "https://files.pythonhosted.org/packages/7e/13/9efa50801785eccbf7086b3c83b71a4fb501a4d43549c2f2f80b8787d69f/multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef", size = 134836, upload-time = "2024-09-09T23:48:08.537Z" }, - { url = "https://files.pythonhosted.org/packages/bf/0f/93808b765192780d117814a6dfcc2e75de6dcc610009ad408b8814dca3ba/multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95", size = 133475, upload-time = "2024-09-09T23:48:09.865Z" }, - { url = "https://files.pythonhosted.org/packages/d3/c8/529101d7176fe7dfe1d99604e48d69c5dfdcadb4f06561f465c8ef12b4df/multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925", size = 131049, upload-time = "2024-09-09T23:48:11.115Z" }, - { url = "https://files.pythonhosted.org/packages/ca/0c/fc85b439014d5a58063e19c3a158a889deec399d47b5269a0f3b6a2e28bc/multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966", size = 120370, upload-time = "2024-09-09T23:48:12.78Z" }, - { url = "https://files.pythonhosted.org/packages/db/46/d4416eb20176492d2258fbd47b4abe729ff3b6e9c829ea4236f93c865089/multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305", size = 125178, upload-time = "2024-09-09T23:48:14.295Z" }, - { url = "https://files.pythonhosted.org/packages/5b/46/73697ad7ec521df7de5531a32780bbfd908ded0643cbe457f981a701457c/multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2", size = 119567, upload-time = "2024-09-09T23:48:16.284Z" }, - { url = "https://files.pythonhosted.org/packages/cd/ed/51f060e2cb0e7635329fa6ff930aa5cffa17f4c7f5c6c3ddc3500708e2f2/multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2", size = 129822, upload-time = "2024-09-09T23:48:17.835Z" }, - { url = "https://files.pythonhosted.org/packages/df/9e/ee7d1954b1331da3eddea0c4e08d9142da5f14b1321c7301f5014f49d492/multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6", size = 128656, upload-time = "2024-09-09T23:48:19.576Z" }, - { url = "https://files.pythonhosted.org/packages/77/00/8538f11e3356b5d95fa4b024aa566cde7a38aa7a5f08f4912b32a037c5dc/multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3", size = 125360, upload-time = "2024-09-09T23:48:20.957Z" }, - { url = "https://files.pythonhosted.org/packages/be/05/5d334c1f2462d43fec2363cd00b1c44c93a78c3925d952e9a71caf662e96/multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133", size = 26382, upload-time = "2024-09-09T23:48:22.351Z" }, - { url = "https://files.pythonhosted.org/packages/a3/bf/f332a13486b1ed0496d624bcc7e8357bb8053823e8cd4b9a18edc1d97e73/multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1", size = 28529, upload-time = "2024-09-09T23:48:23.478Z" }, - { url = "https://files.pythonhosted.org/packages/22/67/1c7c0f39fe069aa4e5d794f323be24bf4d33d62d2a348acdb7991f8f30db/multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008", size = 48771, upload-time = "2024-09-09T23:48:24.594Z" }, - { url = "https://files.pythonhosted.org/packages/3c/25/c186ee7b212bdf0df2519eacfb1981a017bda34392c67542c274651daf23/multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f", size = 29533, upload-time = "2024-09-09T23:48:26.187Z" }, - { url = "https://files.pythonhosted.org/packages/67/5e/04575fd837e0958e324ca035b339cea174554f6f641d3fb2b4f2e7ff44a2/multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28", size = 29595, upload-time = "2024-09-09T23:48:27.305Z" }, - { url = "https://files.pythonhosted.org/packages/d3/b2/e56388f86663810c07cfe4a3c3d87227f3811eeb2d08450b9e5d19d78876/multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b", size = 130094, upload-time = "2024-09-09T23:48:28.544Z" }, - { url = "https://files.pythonhosted.org/packages/6c/ee/30ae9b4186a644d284543d55d491fbd4239b015d36b23fea43b4c94f7052/multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c", size = 134876, upload-time = "2024-09-09T23:48:30.098Z" }, - { url = "https://files.pythonhosted.org/packages/84/c7/70461c13ba8ce3c779503c70ec9d0345ae84de04521c1f45a04d5f48943d/multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3", size = 133500, upload-time = "2024-09-09T23:48:31.793Z" }, - { url = "https://files.pythonhosted.org/packages/4a/9f/002af221253f10f99959561123fae676148dd730e2daa2cd053846a58507/multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44", size = 131099, upload-time = "2024-09-09T23:48:33.193Z" }, - { url = "https://files.pythonhosted.org/packages/82/42/d1c7a7301d52af79d88548a97e297f9d99c961ad76bbe6f67442bb77f097/multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2", size = 120403, upload-time = "2024-09-09T23:48:34.942Z" }, - { url = "https://files.pythonhosted.org/packages/68/f3/471985c2c7ac707547553e8f37cff5158030d36bdec4414cb825fbaa5327/multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3", size = 125348, upload-time = "2024-09-09T23:48:36.222Z" }, - { url = "https://files.pythonhosted.org/packages/67/2c/e6df05c77e0e433c214ec1d21ddd203d9a4770a1f2866a8ca40a545869a0/multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa", size = 119673, upload-time = "2024-09-09T23:48:37.588Z" }, - { url = "https://files.pythonhosted.org/packages/c5/cd/bc8608fff06239c9fb333f9db7743a1b2eafe98c2666c9a196e867a3a0a4/multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa", size = 129927, upload-time = "2024-09-09T23:48:39.128Z" }, - { url = "https://files.pythonhosted.org/packages/44/8e/281b69b7bc84fc963a44dc6e0bbcc7150e517b91df368a27834299a526ac/multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4", size = 128711, upload-time = "2024-09-09T23:48:40.55Z" }, - { url = "https://files.pythonhosted.org/packages/12/a4/63e7cd38ed29dd9f1881d5119f272c898ca92536cdb53ffe0843197f6c85/multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6", size = 125519, upload-time = "2024-09-09T23:48:42.446Z" }, - { url = "https://files.pythonhosted.org/packages/38/e0/4f5855037a72cd8a7a2f60a3952d9aa45feedb37ae7831642102604e8a37/multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81", size = 26426, upload-time = "2024-09-09T23:48:43.936Z" }, - { url = "https://files.pythonhosted.org/packages/7e/a5/17ee3a4db1e310b7405f5d25834460073a8ccd86198ce044dfaf69eac073/multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774", size = 28531, upload-time = "2024-09-09T23:48:45.122Z" }, - { url = "https://files.pythonhosted.org/packages/3e/6a/af41f3aaf5f00fd86cc7d470a2f5b25299b0c84691163b8757f4a1a205f2/multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392", size = 48597, upload-time = "2024-09-09T23:48:46.391Z" }, - { url = "https://files.pythonhosted.org/packages/d9/d6/3d4082760ed11b05734f8bf32a0615b99e7d9d2b3730ad698a4d7377c00a/multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a", size = 29338, upload-time = "2024-09-09T23:48:47.891Z" }, - { url = "https://files.pythonhosted.org/packages/9d/7f/5d1ce7f47d44393d429922910afbe88fcd29ee3069babbb47507a4c3a7ea/multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2", size = 29562, upload-time = "2024-09-09T23:48:49.254Z" }, - { url = "https://files.pythonhosted.org/packages/ce/ec/c425257671af9308a9b626e2e21f7f43841616e4551de94eb3c92aca75b2/multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc", size = 130980, upload-time = "2024-09-09T23:48:50.606Z" }, - { url = "https://files.pythonhosted.org/packages/d8/d7/d4220ad2633a89b314593e9b85b5bc9287a7c563c7f9108a4a68d9da5374/multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478", size = 136694, upload-time = "2024-09-09T23:48:52.042Z" }, - { url = "https://files.pythonhosted.org/packages/a1/2a/13e554db5830c8d40185a2e22aa8325516a5de9634c3fb2caf3886a829b3/multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4", size = 131616, upload-time = "2024-09-09T23:48:54.283Z" }, - { url = "https://files.pythonhosted.org/packages/2e/a9/83692e37d8152f104333132105b67100aabfb2e96a87f6bed67f566035a7/multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d", size = 129664, upload-time = "2024-09-09T23:48:55.785Z" }, - { url = "https://files.pythonhosted.org/packages/cc/1c/1718cd518fb9da7e8890d9d1611c1af0ea5e60f68ff415d026e38401ed36/multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6", size = 121855, upload-time = "2024-09-09T23:48:57.333Z" }, - { url = "https://files.pythonhosted.org/packages/2b/92/f6ed67514b0e3894198f0eb42dcde22f0851ea35f4561a1e4acf36c7b1be/multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2", size = 127928, upload-time = "2024-09-09T23:48:58.778Z" }, - { url = "https://files.pythonhosted.org/packages/f7/30/c66954115a4dc4dc3c84e02c8ae11bb35a43d79ef93122c3c3a40c4d459b/multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd", size = 122793, upload-time = "2024-09-09T23:49:00.244Z" }, - { url = "https://files.pythonhosted.org/packages/62/c9/d386d01b43871e8e1631eb7b3695f6af071b7ae1ab716caf371100f0eb24/multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6", size = 132762, upload-time = "2024-09-09T23:49:02.188Z" }, - { url = "https://files.pythonhosted.org/packages/69/ff/f70cb0a2f7a358acf48e32139ce3a150ff18c961ee9c714cc8c0dc7e3584/multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492", size = 127872, upload-time = "2024-09-09T23:49:04.389Z" }, - { url = "https://files.pythonhosted.org/packages/89/5b/abea7db3ba4cd07752a9b560f9275a11787cd13f86849b5d99c1ceea921d/multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd", size = 126161, upload-time = "2024-09-09T23:49:06.306Z" }, - { url = "https://files.pythonhosted.org/packages/22/03/acc77a4667cca4462ee974fc39990803e58fa573d5a923d6e82b7ef6da7e/multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167", size = 26338, upload-time = "2024-09-09T23:49:07.782Z" }, - { url = "https://files.pythonhosted.org/packages/90/bf/3d0c1cc9c8163abc24625fae89c0ade1ede9bccb6eceb79edf8cff3cca46/multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef", size = 28736, upload-time = "2024-09-09T23:49:09.126Z" }, - { url = "https://files.pythonhosted.org/packages/e7/c9/9e153a6572b38ac5ff4434113af38acf8d5e9957897cdb1f513b3d6614ed/multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c", size = 48550, upload-time = "2024-09-09T23:49:10.475Z" }, - { url = "https://files.pythonhosted.org/packages/76/f5/79565ddb629eba6c7f704f09a09df085c8dc04643b12506f10f718cee37a/multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1", size = 29298, upload-time = "2024-09-09T23:49:12.119Z" }, - { url = "https://files.pythonhosted.org/packages/60/1b/9851878b704bc98e641a3e0bce49382ae9e05743dac6d97748feb5b7baba/multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c", size = 29641, upload-time = "2024-09-09T23:49:13.714Z" }, - { url = "https://files.pythonhosted.org/packages/89/87/d451d45aab9e422cb0fb2f7720c31a4c1d3012c740483c37f642eba568fb/multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c", size = 126202, upload-time = "2024-09-09T23:49:15.238Z" }, - { url = "https://files.pythonhosted.org/packages/fa/b4/27cbe9f3e2e469359887653f2e45470272eef7295139916cc21107c6b48c/multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f", size = 133925, upload-time = "2024-09-09T23:49:16.786Z" }, - { url = "https://files.pythonhosted.org/packages/4d/a3/afc841899face8adfd004235ce759a37619f6ec99eafd959650c5ce4df57/multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875", size = 129039, upload-time = "2024-09-09T23:49:18.381Z" }, - { url = "https://files.pythonhosted.org/packages/5e/41/0d0fb18c1ad574f807196f5f3d99164edf9de3e169a58c6dc2d6ed5742b9/multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255", size = 124072, upload-time = "2024-09-09T23:49:20.115Z" }, - { url = "https://files.pythonhosted.org/packages/00/22/defd7a2e71a44e6e5b9a5428f972e5b572e7fe28e404dfa6519bbf057c93/multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30", size = 116532, upload-time = "2024-09-09T23:49:21.685Z" }, - { url = "https://files.pythonhosted.org/packages/91/25/f7545102def0b1d456ab6449388eed2dfd822debba1d65af60194904a23a/multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057", size = 128173, upload-time = "2024-09-09T23:49:23.657Z" }, - { url = "https://files.pythonhosted.org/packages/45/79/3dbe8d35fc99f5ea610813a72ab55f426cb9cf482f860fa8496e5409be11/multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657", size = 122654, upload-time = "2024-09-09T23:49:25.7Z" }, - { url = "https://files.pythonhosted.org/packages/97/cb/209e735eeab96e1b160825b5d0b36c56d3862abff828fc43999bb957dcad/multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28", size = 133197, upload-time = "2024-09-09T23:49:27.906Z" }, - { url = "https://files.pythonhosted.org/packages/e4/3a/a13808a7ada62808afccea67837a79d00ad6581440015ef00f726d064c2d/multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972", size = 129754, upload-time = "2024-09-09T23:49:29.508Z" }, - { url = "https://files.pythonhosted.org/packages/77/dd/8540e139eafb240079242da8f8ffdf9d3f4b4ad1aac5a786cd4050923783/multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43", size = 126402, upload-time = "2024-09-09T23:49:31.243Z" }, - { url = "https://files.pythonhosted.org/packages/86/99/e82e1a275d8b1ea16d3a251474262258dbbe41c05cce0c01bceda1fc8ea5/multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada", size = 26421, upload-time = "2024-09-09T23:49:32.648Z" }, - { url = "https://files.pythonhosted.org/packages/86/1c/9fa630272355af7e4446a2c7550c259f11ee422ab2d30ff90a0a71cf3d9e/multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a", size = 28791, upload-time = "2024-09-09T23:49:34.725Z" }, - { url = "https://files.pythonhosted.org/packages/99/b7/b9e70fde2c0f0c9af4cc5277782a89b66d35948ea3369ec9f598358c3ac5/multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506", size = 10051, upload-time = "2024-09-09T23:49:36.506Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d", size = 102010, upload-time = "2026-01-26T02:46:45.979Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/0b/19348d4c98980c4851d2f943f8ebafdece2ae7ef737adcfa5994ce8e5f10/multidict-6.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c93c3db7ea657dd4637d57e74ab73de31bccefe144d3d4ce370052035bc85fb5", size = 77176, upload-time = "2026-01-26T02:42:59.784Z" }, + { url = "https://files.pythonhosted.org/packages/ef/04/9de3f8077852e3d438215c81e9b691244532d2e05b4270e89ce67b7d103c/multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:974e72a2474600827abaeda71af0c53d9ebbc3c2eb7da37b37d7829ae31232d8", size = 44996, upload-time = "2026-01-26T02:43:01.674Z" }, + { url = "https://files.pythonhosted.org/packages/31/5c/08c7f7fe311f32e83f7621cd3f99d805f45519cd06fafb247628b861da7d/multidict-6.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdea2e7b2456cfb6694fb113066fd0ec7ea4d67e3a35e1f4cbeea0b448bf5872", size = 44631, upload-time = "2026-01-26T02:43:03.169Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7f/0e3b1390ae772f27501199996b94b52ceeb64fe6f9120a32c6c3f6b781be/multidict-6.7.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17207077e29342fdc2c9a82e4b306f1127bf1ea91f8b71e02d4798a70bb99991", size = 242561, upload-time = "2026-01-26T02:43:04.733Z" }, + { url = "https://files.pythonhosted.org/packages/dd/f4/8719f4f167586af317b69dd3e90f913416c91ca610cac79a45c53f590312/multidict-6.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4f49cb5661344764e4c7c7973e92a47a59b8fc19b6523649ec9dc4960e58a03", size = 242223, upload-time = "2026-01-26T02:43:06.695Z" }, + { url = "https://files.pythonhosted.org/packages/47/ab/7c36164cce64a6ad19c6d9a85377b7178ecf3b89f8fd589c73381a5eedfd/multidict-6.7.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a9fc4caa29e2e6ae408d1c450ac8bf19892c5fca83ee634ecd88a53332c59981", size = 222322, upload-time = "2026-01-26T02:43:08.472Z" }, + { url = "https://files.pythonhosted.org/packages/f5/79/a25add6fb38035b5337bc5734f296d9afc99163403bbcf56d4170f97eb62/multidict-6.7.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c5f0c21549ab432b57dcc82130f388d84ad8179824cc3f223d5e7cfbfd4143f6", size = 254005, upload-time = "2026-01-26T02:43:10.127Z" }, + { url = "https://files.pythonhosted.org/packages/4a/7b/64a87cf98e12f756fc8bd444b001232ffff2be37288f018ad0d3f0aae931/multidict-6.7.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7dfb78d966b2c906ae1d28ccf6e6712a3cd04407ee5088cd276fe8cb42186190", size = 251173, upload-time = "2026-01-26T02:43:11.731Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ac/b605473de2bb404e742f2cc3583d12aedb2352a70e49ae8fce455b50c5aa/multidict-6.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b0d9b91d1aa44db9c1f1ecd0d9d2ae610b2f4f856448664e01a3b35899f3f92", size = 243273, upload-time = "2026-01-26T02:43:13.063Z" }, + { url = "https://files.pythonhosted.org/packages/03/65/11492d6a0e259783720f3bc1d9ea55579a76f1407e31ed44045c99542004/multidict-6.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dd96c01a9dcd4889dcfcf9eb5544ca0c77603f239e3ffab0524ec17aea9a93ee", size = 238956, upload-time = "2026-01-26T02:43:14.843Z" }, + { url = "https://files.pythonhosted.org/packages/5f/a7/7ee591302af64e7c196fb63fe856c788993c1372df765102bd0448e7e165/multidict-6.7.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:067343c68cd6612d375710f895337b3a98a033c94f14b9a99eff902f205424e2", size = 233477, upload-time = "2026-01-26T02:43:16.025Z" }, + { url = "https://files.pythonhosted.org/packages/9c/99/c109962d58756c35fd9992fed7f2355303846ea2ff054bb5f5e9d6b888de/multidict-6.7.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5884a04f4ff56c6120f6ccf703bdeb8b5079d808ba604d4d53aec0d55dc33568", size = 243615, upload-time = "2026-01-26T02:43:17.84Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5f/1973e7c771c86e93dcfe1c9cc55a5481b610f6614acfc28c0d326fe6bfad/multidict-6.7.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8affcf1c98b82bc901702eb73b6947a1bfa170823c153fe8a47b5f5f02e48e40", size = 249930, upload-time = "2026-01-26T02:43:19.06Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a5/f170fc2268c3243853580203378cd522446b2df632061e0a5409817854c7/multidict-6.7.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0d17522c37d03e85c8098ec8431636309b2682cf12e58f4dbc76121fb50e4962", size = 243807, upload-time = "2026-01-26T02:43:20.286Z" }, + { url = "https://files.pythonhosted.org/packages/de/01/73856fab6d125e5bc652c3986b90e8699a95e84b48d72f39ade6c0e74a8c/multidict-6.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24c0cf81544ca5e17cfcb6e482e7a82cd475925242b308b890c9452a074d4505", size = 239103, upload-time = "2026-01-26T02:43:21.508Z" }, + { url = "https://files.pythonhosted.org/packages/e7/46/f1220bd9944d8aa40d8ccff100eeeee19b505b857b6f603d6078cb5315b0/multidict-6.7.1-cp310-cp310-win32.whl", hash = "sha256:d82dd730a95e6643802f4454b8fdecdf08667881a9c5670db85bc5a56693f122", size = 41416, upload-time = "2026-01-26T02:43:22.703Z" }, + { url = "https://files.pythonhosted.org/packages/68/00/9b38e272a770303692fc406c36e1a4c740f401522d5787691eb38a8925a8/multidict-6.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cf37cbe5ced48d417ba045aca1b21bafca67489452debcde94778a576666a1df", size = 46022, upload-time = "2026-01-26T02:43:23.77Z" }, + { url = "https://files.pythonhosted.org/packages/64/65/d8d42490c02ee07b6bbe00f7190d70bb4738b3cce7629aaf9f213ef730dd/multidict-6.7.1-cp310-cp310-win_arm64.whl", hash = "sha256:59bc83d3f66b41dac1e7460aac1d196edc70c9ba3094965c467715a70ecb46db", size = 43238, upload-time = "2026-01-26T02:43:24.882Z" }, + { url = "https://files.pythonhosted.org/packages/ce/f1/a90635c4f88fb913fbf4ce660b83b7445b7a02615bda034b2f8eb38fd597/multidict-6.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ff981b266af91d7b4b3793ca3382e53229088d193a85dfad6f5f4c27fc73e5d", size = 76626, upload-time = "2026-01-26T02:43:26.485Z" }, + { url = "https://files.pythonhosted.org/packages/a6/9b/267e64eaf6fc637a15b35f5de31a566634a2740f97d8d094a69d34f524a4/multidict-6.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:844c5bca0b5444adb44a623fb0a1310c2f4cd41f402126bb269cd44c9b3f3e1e", size = 44706, upload-time = "2026-01-26T02:43:27.607Z" }, + { url = "https://files.pythonhosted.org/packages/dd/a4/d45caf2b97b035c57267791ecfaafbd59c68212004b3842830954bb4b02e/multidict-6.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f2a0a924d4c2e9afcd7ec64f9de35fcd96915149b2216e1cb2c10a56df483855", size = 44356, upload-time = "2026-01-26T02:43:28.661Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d2/0a36c8473f0cbaeadd5db6c8b72d15bbceeec275807772bfcd059bef487d/multidict-6.7.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8be1802715a8e892c784c0197c2ace276ea52702a0ede98b6310c8f255a5afb3", size = 244355, upload-time = "2026-01-26T02:43:31.165Z" }, + { url = "https://files.pythonhosted.org/packages/5d/16/8c65be997fd7dd311b7d39c7b6e71a0cb449bad093761481eccbbe4b42a2/multidict-6.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e2d2ed645ea29f31c4c7ea1552fcfd7cb7ba656e1eafd4134a6620c9f5fdd9e", size = 246433, upload-time = "2026-01-26T02:43:32.581Z" }, + { url = "https://files.pythonhosted.org/packages/01/fb/4dbd7e848d2799c6a026ec88ad39cf2b8416aa167fcc903baa55ecaa045c/multidict-6.7.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:95922cee9a778659e91db6497596435777bd25ed116701a4c034f8e46544955a", size = 225376, upload-time = "2026-01-26T02:43:34.417Z" }, + { url = "https://files.pythonhosted.org/packages/b6/8a/4a3a6341eac3830f6053062f8fbc9a9e54407c80755b3f05bc427295c2d0/multidict-6.7.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6b83cabdc375ffaaa15edd97eb7c0c672ad788e2687004990074d7d6c9b140c8", size = 257365, upload-time = "2026-01-26T02:43:35.741Z" }, + { url = "https://files.pythonhosted.org/packages/f7/a2/dd575a69c1aa206e12d27d0770cdf9b92434b48a9ef0cd0d1afdecaa93c4/multidict-6.7.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:38fb49540705369bab8484db0689d86c0a33a0a9f2c1b197f506b71b4b6c19b0", size = 254747, upload-time = "2026-01-26T02:43:36.976Z" }, + { url = "https://files.pythonhosted.org/packages/5a/56/21b27c560c13822ed93133f08aa6372c53a8e067f11fbed37b4adcdac922/multidict-6.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:439cbebd499f92e9aa6793016a8acaa161dfa749ae86d20960189f5398a19144", size = 246293, upload-time = "2026-01-26T02:43:38.258Z" }, + { url = "https://files.pythonhosted.org/packages/5a/a4/23466059dc3854763423d0ad6c0f3683a379d97673b1b89ec33826e46728/multidict-6.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6d3bc717b6fe763b8be3f2bee2701d3c8eb1b2a8ae9f60910f1b2860c82b6c49", size = 242962, upload-time = "2026-01-26T02:43:40.034Z" }, + { url = "https://files.pythonhosted.org/packages/1f/67/51dd754a3524d685958001e8fa20a0f5f90a6a856e0a9dcabff69be3dbb7/multidict-6.7.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:619e5a1ac57986dbfec9f0b301d865dddf763696435e2962f6d9cf2fdff2bb71", size = 237360, upload-time = "2026-01-26T02:43:41.752Z" }, + { url = "https://files.pythonhosted.org/packages/64/3f/036dfc8c174934d4b55d86ff4f978e558b0e585cef70cfc1ad01adc6bf18/multidict-6.7.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0b38ebffd9be37c1170d33bc0f36f4f262e0a09bc1aac1c34c7aa51a7293f0b3", size = 245940, upload-time = "2026-01-26T02:43:43.042Z" }, + { url = "https://files.pythonhosted.org/packages/3d/20/6214d3c105928ebc353a1c644a6ef1408bc5794fcb4f170bb524a3c16311/multidict-6.7.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:10ae39c9cfe6adedcdb764f5e8411d4a92b055e35573a2eaa88d3323289ef93c", size = 253502, upload-time = "2026-01-26T02:43:44.371Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e2/c653bc4ae1be70a0f836b82172d643fcf1dade042ba2676ab08ec08bff0f/multidict-6.7.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:25167cc263257660290fba06b9318d2026e3c910be240a146e1f66dd114af2b0", size = 247065, upload-time = "2026-01-26T02:43:45.745Z" }, + { url = "https://files.pythonhosted.org/packages/c8/11/a854b4154cd3bd8b1fd375e8a8ca9d73be37610c361543d56f764109509b/multidict-6.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:128441d052254f42989ef98b7b6a6ecb1e6f708aa962c7984235316db59f50fa", size = 241870, upload-time = "2026-01-26T02:43:47.054Z" }, + { url = "https://files.pythonhosted.org/packages/13/bf/9676c0392309b5fdae322333d22a829715b570edb9baa8016a517b55b558/multidict-6.7.1-cp311-cp311-win32.whl", hash = "sha256:d62b7f64ffde3b99d06b707a280db04fb3855b55f5a06df387236051d0668f4a", size = 41302, upload-time = "2026-01-26T02:43:48.753Z" }, + { url = "https://files.pythonhosted.org/packages/c9/68/f16a3a8ba6f7b6dc92a1f19669c0810bd2c43fc5a02da13b1cbf8e253845/multidict-6.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:bdbf9f3b332abd0cdb306e7c2113818ab1e922dc84b8f8fd06ec89ed2a19ab8b", size = 45981, upload-time = "2026-01-26T02:43:49.921Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ad/9dd5305253fa00cd3c7555dbef69d5bf4133debc53b87ab8d6a44d411665/multidict-6.7.1-cp311-cp311-win_arm64.whl", hash = "sha256:b8c990b037d2fff2f4e33d3f21b9b531c5745b33a49a7d6dbe7a177266af44f6", size = 43159, upload-time = "2026-01-26T02:43:51.635Z" }, + { url = "https://files.pythonhosted.org/packages/8d/9c/f20e0e2cf80e4b2e4b1c365bf5fe104ee633c751a724246262db8f1a0b13/multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172", size = 76893, upload-time = "2026-01-26T02:43:52.754Z" }, + { url = "https://files.pythonhosted.org/packages/fe/cf/18ef143a81610136d3da8193da9d80bfe1cb548a1e2d1c775f26b23d024a/multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd", size = 45456, upload-time = "2026-01-26T02:43:53.893Z" }, + { url = "https://files.pythonhosted.org/packages/a9/65/1caac9d4cd32e8433908683446eebc953e82d22b03d10d41a5f0fefe991b/multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7", size = 43872, upload-time = "2026-01-26T02:43:55.041Z" }, + { url = "https://files.pythonhosted.org/packages/cf/3b/d6bd75dc4f3ff7c73766e04e705b00ed6dbbaccf670d9e05a12b006f5a21/multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53", size = 251018, upload-time = "2026-01-26T02:43:56.198Z" }, + { url = "https://files.pythonhosted.org/packages/fd/80/c959c5933adedb9ac15152e4067c702a808ea183a8b64cf8f31af8ad3155/multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75", size = 258883, upload-time = "2026-01-26T02:43:57.499Z" }, + { url = "https://files.pythonhosted.org/packages/86/85/7ed40adafea3d4f1c8b916e3b5cc3a8e07dfcdcb9cd72800f4ed3ca1b387/multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b", size = 242413, upload-time = "2026-01-26T02:43:58.755Z" }, + { url = "https://files.pythonhosted.org/packages/d2/57/b8565ff533e48595503c785f8361ff9a4fde4d67de25c207cd0ba3befd03/multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733", size = 268404, upload-time = "2026-01-26T02:44:00.216Z" }, + { url = "https://files.pythonhosted.org/packages/e0/50/9810c5c29350f7258180dfdcb2e52783a0632862eb334c4896ac717cebcb/multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a", size = 269456, upload-time = "2026-01-26T02:44:02.202Z" }, + { url = "https://files.pythonhosted.org/packages/f3/8d/5e5be3ced1d12966fefb5c4ea3b2a5b480afcea36406559442c6e31d4a48/multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961", size = 256322, upload-time = "2026-01-26T02:44:03.56Z" }, + { url = "https://files.pythonhosted.org/packages/31/6e/d8a26d81ac166a5592782d208dd90dfdc0a7a218adaa52b45a672b46c122/multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582", size = 253955, upload-time = "2026-01-26T02:44:04.845Z" }, + { url = "https://files.pythonhosted.org/packages/59/4c/7c672c8aad41534ba619bcd4ade7a0dc87ed6b8b5c06149b85d3dd03f0cd/multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e", size = 251254, upload-time = "2026-01-26T02:44:06.133Z" }, + { url = "https://files.pythonhosted.org/packages/7b/bd/84c24de512cbafbdbc39439f74e967f19570ce7924e3007174a29c348916/multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3", size = 252059, upload-time = "2026-01-26T02:44:07.518Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ba/f5449385510825b73d01c2d4087bf6d2fccc20a2d42ac34df93191d3dd03/multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6", size = 263588, upload-time = "2026-01-26T02:44:09.382Z" }, + { url = "https://files.pythonhosted.org/packages/d7/11/afc7c677f68f75c84a69fe37184f0f82fce13ce4b92f49f3db280b7e92b3/multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a", size = 259642, upload-time = "2026-01-26T02:44:10.73Z" }, + { url = "https://files.pythonhosted.org/packages/2b/17/ebb9644da78c4ab36403739e0e6e0e30ebb135b9caf3440825001a0bddcb/multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba", size = 251377, upload-time = "2026-01-26T02:44:12.042Z" }, + { url = "https://files.pythonhosted.org/packages/ca/a4/840f5b97339e27846c46307f2530a2805d9d537d8b8bd416af031cad7fa0/multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511", size = 41887, upload-time = "2026-01-26T02:44:14.245Z" }, + { url = "https://files.pythonhosted.org/packages/80/31/0b2517913687895f5904325c2069d6a3b78f66cc641a86a2baf75a05dcbb/multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19", size = 46053, upload-time = "2026-01-26T02:44:15.371Z" }, + { url = "https://files.pythonhosted.org/packages/0c/5b/aba28e4ee4006ae4c7df8d327d31025d760ffa992ea23812a601d226e682/multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf", size = 43307, upload-time = "2026-01-26T02:44:16.852Z" }, + { url = "https://files.pythonhosted.org/packages/f2/22/929c141d6c0dba87d3e1d38fbdf1ba8baba86b7776469f2bc2d3227a1e67/multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23", size = 76174, upload-time = "2026-01-26T02:44:18.509Z" }, + { url = "https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2", size = 45116, upload-time = "2026-01-26T02:44:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/79/76/55cd7186f498ed080a18440c9013011eb548f77ae1b297206d030eb1180a/multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445", size = 43524, upload-time = "2026-01-26T02:44:21.571Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3c/414842ef8d5a1628d68edee29ba0e5bcf235dbfb3ccd3ea303a7fe8c72ff/multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177", size = 249368, upload-time = "2026-01-26T02:44:22.803Z" }, + { url = "https://files.pythonhosted.org/packages/f6/32/befed7f74c458b4a525e60519fe8d87eef72bb1e99924fa2b0f9d97a221e/multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23", size = 256952, upload-time = "2026-01-26T02:44:24.306Z" }, + { url = "https://files.pythonhosted.org/packages/03/d6/c878a44ba877f366630c860fdf74bfb203c33778f12b6ac274936853c451/multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060", size = 240317, upload-time = "2026-01-26T02:44:25.772Z" }, + { url = "https://files.pythonhosted.org/packages/68/49/57421b4d7ad2e9e60e25922b08ceb37e077b90444bde6ead629095327a6f/multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d", size = 267132, upload-time = "2026-01-26T02:44:27.648Z" }, + { url = "https://files.pythonhosted.org/packages/b7/fe/ec0edd52ddbcea2a2e89e174f0206444a61440b40f39704e64dc807a70bd/multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed", size = 268140, upload-time = "2026-01-26T02:44:29.588Z" }, + { url = "https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429", size = 254277, upload-time = "2026-01-26T02:44:30.902Z" }, + { url = "https://files.pythonhosted.org/packages/6a/b2/5fb8c124d7561a4974c342bc8c778b471ebbeb3cc17df696f034a7e9afe7/multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6", size = 252291, upload-time = "2026-01-26T02:44:32.31Z" }, + { url = "https://files.pythonhosted.org/packages/5a/96/51d4e4e06bcce92577fcd488e22600bd38e4fd59c20cb49434d054903bd2/multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9", size = 250156, upload-time = "2026-01-26T02:44:33.734Z" }, + { url = "https://files.pythonhosted.org/packages/db/6b/420e173eec5fba721a50e2a9f89eda89d9c98fded1124f8d5c675f7a0c0f/multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c", size = 249742, upload-time = "2026-01-26T02:44:35.222Z" }, + { url = "https://files.pythonhosted.org/packages/44/a3/ec5b5bd98f306bc2aa297b8c6f11a46714a56b1e6ef5ebda50a4f5d7c5fb/multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84", size = 262221, upload-time = "2026-01-26T02:44:36.604Z" }, + { url = "https://files.pythonhosted.org/packages/cd/f7/e8c0d0da0cd1e28d10e624604e1a36bcc3353aaebdfdc3a43c72bc683a12/multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d", size = 258664, upload-time = "2026-01-26T02:44:38.008Z" }, + { url = "https://files.pythonhosted.org/packages/52/da/151a44e8016dd33feed44f730bd856a66257c1ee7aed4f44b649fb7edeb3/multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33", size = 249490, upload-time = "2026-01-26T02:44:39.386Z" }, + { url = "https://files.pythonhosted.org/packages/87/af/a3b86bf9630b732897f6fc3f4c4714b90aa4361983ccbdcd6c0339b21b0c/multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3", size = 41695, upload-time = "2026-01-26T02:44:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/b2/35/e994121b0e90e46134673422dd564623f93304614f5d11886b1b3e06f503/multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5", size = 45884, upload-time = "2026-01-26T02:44:42.488Z" }, + { url = "https://files.pythonhosted.org/packages/ca/61/42d3e5dbf661242a69c97ea363f2d7b46c567da8eadef8890022be6e2ab0/multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df", size = 43122, upload-time = "2026-01-26T02:44:43.664Z" }, + { url = "https://files.pythonhosted.org/packages/6d/b3/e6b21c6c4f314bb956016b0b3ef2162590a529b84cb831c257519e7fde44/multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1", size = 83175, upload-time = "2026-01-26T02:44:44.894Z" }, + { url = "https://files.pythonhosted.org/packages/fb/76/23ecd2abfe0957b234f6c960f4ade497f55f2c16aeb684d4ecdbf1c95791/multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963", size = 48460, upload-time = "2026-01-26T02:44:46.106Z" }, + { url = "https://files.pythonhosted.org/packages/c4/57/a0ed92b23f3a042c36bc4227b72b97eca803f5f1801c1ab77c8a212d455e/multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34", size = 46930, upload-time = "2026-01-26T02:44:47.278Z" }, + { url = "https://files.pythonhosted.org/packages/b5/66/02ec7ace29162e447f6382c495dc95826bf931d3818799bbef11e8f7df1a/multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65", size = 242582, upload-time = "2026-01-26T02:44:48.604Z" }, + { url = "https://files.pythonhosted.org/packages/58/18/64f5a795e7677670e872673aca234162514696274597b3708b2c0d276cce/multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292", size = 250031, upload-time = "2026-01-26T02:44:50.544Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ed/e192291dbbe51a8290c5686f482084d31bcd9d09af24f63358c3d42fd284/multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43", size = 228596, upload-time = "2026-01-26T02:44:51.951Z" }, + { url = "https://files.pythonhosted.org/packages/1e/7e/3562a15a60cf747397e7f2180b0a11dc0c38d9175a650e75fa1b4d325e15/multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca", size = 257492, upload-time = "2026-01-26T02:44:53.902Z" }, + { url = "https://files.pythonhosted.org/packages/24/02/7d0f9eae92b5249bb50ac1595b295f10e263dd0078ebb55115c31e0eaccd/multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd", size = 255899, upload-time = "2026-01-26T02:44:55.316Z" }, + { url = "https://files.pythonhosted.org/packages/00/e3/9b60ed9e23e64c73a5cde95269ef1330678e9c6e34dd4eb6b431b85b5a10/multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7", size = 247970, upload-time = "2026-01-26T02:44:56.783Z" }, + { url = "https://files.pythonhosted.org/packages/3e/06/538e58a63ed5cfb0bd4517e346b91da32fde409d839720f664e9a4ae4f9d/multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3", size = 245060, upload-time = "2026-01-26T02:44:58.195Z" }, + { url = "https://files.pythonhosted.org/packages/b2/2f/d743a3045a97c895d401e9bd29aaa09b94f5cbdf1bd561609e5a6c431c70/multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4", size = 235888, upload-time = "2026-01-26T02:44:59.57Z" }, + { url = "https://files.pythonhosted.org/packages/38/83/5a325cac191ab28b63c52f14f1131f3b0a55ba3b9aa65a6d0bf2a9b921a0/multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8", size = 243554, upload-time = "2026-01-26T02:45:01.054Z" }, + { url = "https://files.pythonhosted.org/packages/20/1f/9d2327086bd15da2725ef6aae624208e2ef828ed99892b17f60c344e57ed/multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c", size = 252341, upload-time = "2026-01-26T02:45:02.484Z" }, + { url = "https://files.pythonhosted.org/packages/e8/2c/2a1aa0280cf579d0f6eed8ee5211c4f1730bd7e06c636ba2ee6aafda302e/multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52", size = 246391, upload-time = "2026-01-26T02:45:03.862Z" }, + { url = "https://files.pythonhosted.org/packages/e5/03/7ca022ffc36c5a3f6e03b179a5ceb829be9da5783e6fe395f347c0794680/multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108", size = 243422, upload-time = "2026-01-26T02:45:05.296Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1d/b31650eab6c5778aceed46ba735bd97f7c7d2f54b319fa916c0f96e7805b/multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32", size = 47770, upload-time = "2026-01-26T02:45:06.754Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5b/2d2d1d522e51285bd61b1e20df8f47ae1a9d80839db0b24ea783b3832832/multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8", size = 53109, upload-time = "2026-01-26T02:45:08.044Z" }, + { url = "https://files.pythonhosted.org/packages/3d/a3/cc409ba012c83ca024a308516703cf339bdc4b696195644a7215a5164a24/multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118", size = 45573, upload-time = "2026-01-26T02:45:09.349Z" }, + { url = "https://files.pythonhosted.org/packages/91/cc/db74228a8be41884a567e88a62fd589a913708fcf180d029898c17a9a371/multidict-6.7.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f333ec9c5eb1b7105e3b84b53141e66ca05a19a605368c55450b6ba208cb9ee", size = 75190, upload-time = "2026-01-26T02:45:10.651Z" }, + { url = "https://files.pythonhosted.org/packages/d5/22/492f2246bb5b534abd44804292e81eeaf835388901f0c574bac4eeec73c5/multidict-6.7.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a407f13c188f804c759fc6a9f88286a565c242a76b27626594c133b82883b5c2", size = 44486, upload-time = "2026-01-26T02:45:11.938Z" }, + { url = "https://files.pythonhosted.org/packages/f1/4f/733c48f270565d78b4544f2baddc2fb2a245e5a8640254b12c36ac7ac68e/multidict-6.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e161ddf326db5577c3a4cc2d8648f81456e8a20d40415541587a71620d7a7d1", size = 43219, upload-time = "2026-01-26T02:45:14.346Z" }, + { url = "https://files.pythonhosted.org/packages/24/bb/2c0c2287963f4259c85e8bcbba9182ced8d7fca65c780c38e99e61629d11/multidict-6.7.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1e3a8bb24342a8201d178c3b4984c26ba81a577c80d4d525727427460a50c22d", size = 245132, upload-time = "2026-01-26T02:45:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/a7/f9/44d4b3064c65079d2467888794dea218d1601898ac50222ab8a9a8094460/multidict-6.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97231140a50f5d447d3164f994b86a0bed7cd016e2682f8650d6a9158e14fd31", size = 252420, upload-time = "2026-01-26T02:45:17.293Z" }, + { url = "https://files.pythonhosted.org/packages/8b/13/78f7275e73fa17b24c9a51b0bd9d73ba64bb32d0ed51b02a746eb876abe7/multidict-6.7.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b10359683bd8806a200fd2909e7c8ca3a7b24ec1d8132e483d58e791d881048", size = 233510, upload-time = "2026-01-26T02:45:19.356Z" }, + { url = "https://files.pythonhosted.org/packages/4b/25/8167187f62ae3cbd52da7893f58cb036b47ea3fb67138787c76800158982/multidict-6.7.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:283ddac99f7ac25a4acadbf004cb5ae34480bbeb063520f70ce397b281859362", size = 264094, upload-time = "2026-01-26T02:45:20.834Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e7/69a3a83b7b030cf283fb06ce074a05a02322359783424d7edf0f15fe5022/multidict-6.7.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:538cec1e18c067d0e6103aa9a74f9e832904c957adc260e61cd9d8cf0c3b3d37", size = 260786, upload-time = "2026-01-26T02:45:22.818Z" }, + { url = "https://files.pythonhosted.org/packages/fe/3b/8ec5074bcfc450fe84273713b4b0a0dd47c0249358f5d82eb8104ffe2520/multidict-6.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eee46ccb30ff48a1e35bb818cc90846c6be2b68240e42a78599166722cea709", size = 248483, upload-time = "2026-01-26T02:45:24.368Z" }, + { url = "https://files.pythonhosted.org/packages/48/5a/d5a99e3acbca0e29c5d9cba8f92ceb15dce78bab963b308ae692981e3a5d/multidict-6.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa263a02f4f2dd2d11a7b1bb4362aa7cb1049f84a9235d31adf63f30143469a0", size = 248403, upload-time = "2026-01-26T02:45:25.982Z" }, + { url = "https://files.pythonhosted.org/packages/35/48/e58cd31f6c7d5102f2a4bf89f96b9cf7e00b6c6f3d04ecc44417c00a5a3c/multidict-6.7.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2e1425e2f99ec5bd36c15a01b690a1a2456209c5deed58f95469ffb46039ccbb", size = 240315, upload-time = "2026-01-26T02:45:27.487Z" }, + { url = "https://files.pythonhosted.org/packages/94/33/1cd210229559cb90b6786c30676bb0c58249ff42f942765f88793b41fdce/multidict-6.7.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:497394b3239fc6f0e13a78a3e1b61296e72bf1c5f94b4c4eb80b265c37a131cd", size = 245528, upload-time = "2026-01-26T02:45:28.991Z" }, + { url = "https://files.pythonhosted.org/packages/64/f2/6e1107d226278c876c783056b7db43d800bb64c6131cec9c8dfb6903698e/multidict-6.7.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:233b398c29d3f1b9676b4b6f75c518a06fcb2ea0b925119fb2c1bc35c05e1601", size = 258784, upload-time = "2026-01-26T02:45:30.503Z" }, + { url = "https://files.pythonhosted.org/packages/4d/c1/11f664f14d525e4a1b5327a82d4de61a1db604ab34c6603bb3c2cc63ad34/multidict-6.7.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:93b1818e4a6e0930454f0f2af7dfce69307ca03cdcfb3739bf4d91241967b6c1", size = 251980, upload-time = "2026-01-26T02:45:32.603Z" }, + { url = "https://files.pythonhosted.org/packages/e1/9f/75a9ac888121d0c5bbd4ecf4eead45668b1766f6baabfb3b7f66a410e231/multidict-6.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f33dc2a3abe9249ea5d8360f969ec7f4142e7ac45ee7014d8f8d5acddf178b7b", size = 243602, upload-time = "2026-01-26T02:45:34.043Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e7/50bf7b004cc8525d80dbbbedfdc7aed3e4c323810890be4413e589074032/multidict-6.7.1-cp314-cp314-win32.whl", hash = "sha256:3ab8b9d8b75aef9df299595d5388b14530839f6422333357af1339443cff777d", size = 40930, upload-time = "2026-01-26T02:45:36.278Z" }, + { url = "https://files.pythonhosted.org/packages/e0/bf/52f25716bbe93745595800f36fb17b73711f14da59ed0bb2eba141bc9f0f/multidict-6.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:5e01429a929600e7dab7b166062d9bb54a5eed752384c7384c968c2afab8f50f", size = 45074, upload-time = "2026-01-26T02:45:37.546Z" }, + { url = "https://files.pythonhosted.org/packages/97/ab/22803b03285fa3a525f48217963da3a65ae40f6a1b6f6cf2768879e208f9/multidict-6.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:4885cb0e817aef5d00a2e8451d4665c1808378dc27c2705f1bf4ef8505c0d2e5", size = 42471, upload-time = "2026-01-26T02:45:38.889Z" }, + { url = "https://files.pythonhosted.org/packages/e0/6d/f9293baa6146ba9507e360ea0292b6422b016907c393e2f63fc40ab7b7b5/multidict-6.7.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0458c978acd8e6ea53c81eefaddbbee9c6c5e591f41b3f5e8e194780fe026581", size = 82401, upload-time = "2026-01-26T02:45:40.254Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/53b5494738d83558d87c3c71a486504d8373421c3e0dbb6d0db48ad42ee0/multidict-6.7.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c0abd12629b0af3cf590982c0b413b1e7395cd4ec026f30986818ab95bfaa94a", size = 48143, upload-time = "2026-01-26T02:45:41.635Z" }, + { url = "https://files.pythonhosted.org/packages/37/e8/5284c53310dcdc99ce5d66563f6e5773531a9b9fe9ec7a615e9bc306b05f/multidict-6.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:14525a5f61d7d0c94b368a42cff4c9a4e7ba2d52e2672a7b23d84dc86fb02b0c", size = 46507, upload-time = "2026-01-26T02:45:42.99Z" }, + { url = "https://files.pythonhosted.org/packages/e4/fc/6800d0e5b3875568b4083ecf5f310dcf91d86d52573160834fb4bfcf5e4f/multidict-6.7.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17307b22c217b4cf05033dabefe68255a534d637c6c9b0cc8382718f87be4262", size = 239358, upload-time = "2026-01-26T02:45:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/41/75/4ad0973179361cdf3a113905e6e088173198349131be2b390f9fa4da5fc6/multidict-6.7.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a7e590ff876a3eaf1c02a4dfe0724b6e69a9e9de6d8f556816f29c496046e59", size = 246884, upload-time = "2026-01-26T02:45:47.167Z" }, + { url = "https://files.pythonhosted.org/packages/c3/9c/095bb28b5da139bd41fb9a5d5caff412584f377914bd8787c2aa98717130/multidict-6.7.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5fa6a95dfee63893d80a34758cd0e0c118a30b8dcb46372bf75106c591b77889", size = 225878, upload-time = "2026-01-26T02:45:48.698Z" }, + { url = "https://files.pythonhosted.org/packages/07/d0/c0a72000243756e8f5a277b6b514fa005f2c73d481b7d9e47cd4568aa2e4/multidict-6.7.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0543217a6a017692aa6ae5cc39adb75e587af0f3a82288b1492eb73dd6cc2a4", size = 253542, upload-time = "2026-01-26T02:45:50.164Z" }, + { url = "https://files.pythonhosted.org/packages/c0/6b/f69da15289e384ecf2a68837ec8b5ad8c33e973aa18b266f50fe55f24b8c/multidict-6.7.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f99fe611c312b3c1c0ace793f92464d8cd263cc3b26b5721950d977b006b6c4d", size = 252403, upload-time = "2026-01-26T02:45:51.779Z" }, + { url = "https://files.pythonhosted.org/packages/a2/76/b9669547afa5a1a25cd93eaca91c0da1c095b06b6d2d8ec25b713588d3a1/multidict-6.7.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9004d8386d133b7e6135679424c91b0b854d2d164af6ea3f289f8f2761064609", size = 244889, upload-time = "2026-01-26T02:45:53.27Z" }, + { url = "https://files.pythonhosted.org/packages/7e/a9/a50d2669e506dad33cfc45b5d574a205587b7b8a5f426f2fbb2e90882588/multidict-6.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e628ef0e6859ffd8273c69412a2465c4be4a9517d07261b33334b5ec6f3c7489", size = 241982, upload-time = "2026-01-26T02:45:54.919Z" }, + { url = "https://files.pythonhosted.org/packages/c5/bb/1609558ad8b456b4827d3c5a5b775c93b87878fd3117ed3db3423dfbce1b/multidict-6.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:841189848ba629c3552035a6a7f5bf3b02eb304e9fea7492ca220a8eda6b0e5c", size = 232415, upload-time = "2026-01-26T02:45:56.981Z" }, + { url = "https://files.pythonhosted.org/packages/d8/59/6f61039d2aa9261871e03ab9dc058a550d240f25859b05b67fd70f80d4b3/multidict-6.7.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ce1bbd7d780bb5a0da032e095c951f7014d6b0a205f8318308140f1a6aba159e", size = 240337, upload-time = "2026-01-26T02:45:58.698Z" }, + { url = "https://files.pythonhosted.org/packages/a1/29/fdc6a43c203890dc2ae9249971ecd0c41deaedfe00d25cb6564b2edd99eb/multidict-6.7.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b26684587228afed0d50cf804cc71062cc9c1cdf55051c4c6345d372947b268c", size = 248788, upload-time = "2026-01-26T02:46:00.862Z" }, + { url = "https://files.pythonhosted.org/packages/a9/14/a153a06101323e4cf086ecee3faadba52ff71633d471f9685c42e3736163/multidict-6.7.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9f9af11306994335398293f9958071019e3ab95e9a707dc1383a35613f6abcb9", size = 242842, upload-time = "2026-01-26T02:46:02.824Z" }, + { url = "https://files.pythonhosted.org/packages/41/5f/604ae839e64a4a6efc80db94465348d3b328ee955e37acb24badbcd24d83/multidict-6.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b4938326284c4f1224178a560987b6cf8b4d38458b113d9b8c1db1a836e640a2", size = 240237, upload-time = "2026-01-26T02:46:05.898Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/c3a5187bf66f6fb546ff4ab8fb5a077cbdd832d7b1908d4365c7f74a1917/multidict-6.7.1-cp314-cp314t-win32.whl", hash = "sha256:98655c737850c064a65e006a3df7c997cd3b220be4ec8fe26215760b9697d4d7", size = 48008, upload-time = "2026-01-26T02:46:07.468Z" }, + { url = "https://files.pythonhosted.org/packages/0c/f7/addf1087b860ac60e6f382240f64fb99f8bfb532bb06f7c542b83c29ca61/multidict-6.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:497bde6223c212ba11d462853cfa4f0ae6ef97465033e7dc9940cdb3ab5b48e5", size = 53542, upload-time = "2026-01-26T02:46:08.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/81/4629d0aa32302ef7b2ec65c75a728cc5ff4fa410c50096174c1632e70b3e/multidict-6.7.1-cp314-cp314t-win_arm64.whl", hash = "sha256:2bbd113e0d4af5db41d5ebfe9ccaff89de2120578164f86a5d17d5a576d1e5b2", size = 44719, upload-time = "2026-01-26T02:46:11.146Z" }, + { url = "https://files.pythonhosted.org/packages/81/08/7036c080d7117f28a4af526d794aab6a84463126db031b007717c1a6676e/multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56", size = 12319, upload-time = "2026-01-26T02:46:44.004Z" }, ] [[package]] name = "mypy-protobuf" -version = "3.6.0" +version = "5.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "protobuf" }, { name = "types-protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4d/6f/282d64d66bf48ce60e38a6560753f784e0f88ab245ac2fb5e93f701a36cd/mypy-protobuf-3.6.0.tar.gz", hash = "sha256:02f242eb3409f66889f2b1a3aa58356ec4d909cdd0f93115622e9e70366eca3c", size = 24445, upload-time = "2024-04-01T20:24:42.837Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/73/d6b999782ae22f16971cc05378b3b33f6a89ede3b9619e8366aa23484bca/mypy_protobuf-3.6.0-py3-none-any.whl", hash = "sha256:56176e4d569070e7350ea620262478b49b7efceba4103d468448f1d21492fd6c", size = 16434, upload-time = "2024-04-01T20:24:40.583Z" }, -] - -[[package]] -name = "myst-nb" -version = "0.17.2" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.9'", -] -dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.9'" }, - { name = "ipykernel", marker = "python_full_version < '3.9'" }, - { name = "ipython", marker = "python_full_version < '3.9'" }, - { name = "jupyter-cache", marker = "python_full_version < '3.9'" }, - { name = "myst-parser", version = "0.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "nbclient", marker = "python_full_version < '3.9'" }, - { name = "nbformat", marker = "python_full_version < '3.9'" }, - { name = "pyyaml", marker = "python_full_version < '3.9'" }, - { name = "sphinx", version = "5.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "typing-extensions", marker = "python_full_version < '3.9'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/15/e6/6ec454f930f1d542f1c1d9562d939acc41220408ff996b7c5b3b957fba1d/myst-nb-0.17.2.tar.gz", hash = "sha256:0f61386515fab07c73646adca97fff2f69f41e90d313a260217c5bbe419d858b", size = 74184, upload-time = "2023-04-21T12:38:17.712Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d5/48/658827446368bca30a94e545598065587ece9cd09b678d7d2895c37a59d2/mypy_protobuf-5.0.0.tar.gz", hash = "sha256:6fdd1cfdbb4419c713291d800a332d4bba6510dbd1341ed95e0bcc82fcadb6b5", size = 37309, upload-time = "2026-01-13T17:10:12.616Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/72/84/38b6468146945cf0466a149763d62bd0264cb221eaa74c979498ea215f22/myst_nb-0.17.2-py3-none-any.whl", hash = "sha256:132ca4d0f5c308fdd4b6fdaba077712e28e119ccdafd04d6e41b51aac5483494", size = 78636, upload-time = "2023-04-21T12:38:15.807Z" }, + { url = "https://files.pythonhosted.org/packages/b4/b1/ab1e7a49930a8c1d1f7a570bbd4ec7d552ef035acc7aa4b97906e17a34a9/mypy_protobuf-5.0.0-py3-none-any.whl", hash = "sha256:3a7dd753ef3e3b8783a824eb51f07983f62812f9ec066e4fbb1b22d6c5dc36d0", size = 26008, upload-time = "2026-01-13T17:10:11.053Z" }, ] [[package]] name = "myst-nb" -version = "1.1.2" +version = "1.4.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.9' and python_full_version < '3.12'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", -] dependencies = [ - { name = "importlib-metadata", marker = "python_full_version >= '3.9'" }, - { name = "ipykernel", marker = "python_full_version >= '3.9'" }, - { name = "ipython", marker = "python_full_version >= '3.9'" }, - { name = "jupyter-cache", marker = "python_full_version >= '3.9'" }, - { name = "myst-parser", version = "3.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "nbclient", marker = "python_full_version >= '3.9'" }, - { name = "nbformat", marker = "python_full_version >= '3.9'" }, - { name = "pyyaml", marker = "python_full_version >= '3.9'" }, - { name = "sphinx", version = "7.1.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "typing-extensions", marker = "python_full_version >= '3.9'" }, + { name = "importlib-metadata" }, + { name = "ipykernel" }, + { name = "ipython", version = "8.38.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "ipython", version = "9.10.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "ipython", version = "9.11.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "jupyter-cache" }, + { name = "myst-parser", version = "4.0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "myst-parser", version = "5.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "nbclient" }, + { name = "nbformat" }, + { name = "pyyaml" }, + { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/e3/01c093f6a46be2edc0fd370cbf6d227495ea19452939b2810b36657c63d4/myst_nb-1.1.2.tar.gz", hash = "sha256:961b4005657029ca89892a4c75edbf0856c54ceaf6172368b46bf7676c1f7700", size = 78036, upload-time = "2024-09-24T13:29:47.299Z" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/b4/ff1abeea67e8cfe0a8c033389f6d1d8b0bfecfd611befb5cbdeab884fce6/myst_nb-1.4.0.tar.gz", hash = "sha256:c145598de62446a6fd009773dd071a40d3b76106ace780de1abdfc6961f614c2", size = 82285, upload-time = "2026-03-02T21:14:56.95Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/45/cf78b2f09c46b36f486b75c34a8b48580e53b543bd9a467b3c7eb9054b70/myst_nb-1.1.2-py3-none-any.whl", hash = "sha256:9b7034e5d62640cb6daf03f9ca16ef45d0462fced27944c77aa3f98c7cdcd566", size = 80281, upload-time = "2024-09-24T13:29:45.73Z" }, + { url = "https://files.pythonhosted.org/packages/94/93/0a378b48488879a1d925b42a804edfc6e0cd0ef854220f2dce738a46e7e9/myst_nb-1.4.0-py3-none-any.whl", hash = "sha256:0e2c86e7d3b82c3aa51383f82d6268f7714f3b772c23a796ab09538a8e68b4e4", size = 82555, upload-time = "2026-03-02T21:14:55.652Z" }, ] [[package]] name = "myst-parser" -version = "0.18.1" +version = "4.0.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.9'", + "python_full_version < '3.11'", ] dependencies = [ - { name = "docutils", marker = "python_full_version < '3.9'" }, - { name = "jinja2", marker = "python_full_version < '3.9'" }, - { name = "markdown-it-py", version = "2.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "mdit-py-plugins", version = "0.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "pyyaml", marker = "python_full_version < '3.9'" }, - { name = "sphinx", version = "5.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "typing-extensions", marker = "python_full_version < '3.9'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "jinja2", marker = "python_full_version < '3.11'" }, + { name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "mdit-py-plugins", marker = "python_full_version < '3.11'" }, + { name = "pyyaml", marker = "python_full_version < '3.11'" }, + { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/68/13/91438d3b835a022fcacd858a7106d4813cfccf98b1fd9a6196cfa2c859df/myst-parser-0.18.1.tar.gz", hash = "sha256:79317f4bb2c13053dd6e64f9da1ba1da6cd9c40c8a430c447a7b146a594c246d", size = 64147, upload-time = "2022-09-27T09:57:45.183Z" } +sdist = { url = "https://files.pythonhosted.org/packages/66/a5/9626ba4f73555b3735ad86247a8077d4603aa8628537687c839ab08bfe44/myst_parser-4.0.1.tar.gz", hash = "sha256:5cfea715e4f3574138aecbf7d54132296bfd72bb614d31168f48c477a830a7c4", size = 93985, upload-time = "2025-02-12T10:53:03.833Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/72/fd/594c936c65e707deda5670e8fff5ca2c948a12e922813eab5d316694e9ca/myst_parser-0.18.1-py3-none-any.whl", hash = "sha256:61b275b85d9f58aa327f370913ae1bec26ebad372cc99f3ab85c8ec3ee8d9fb8", size = 58157, upload-time = "2022-09-27T09:57:42.689Z" }, + { url = "https://files.pythonhosted.org/packages/5f/df/76d0321c3797b54b60fef9ec3bd6f4cfd124b9e422182156a1dd418722cf/myst_parser-4.0.1-py3-none-any.whl", hash = "sha256:9134e88959ec3b5780aedf8a99680ea242869d012e8821db3126d427edc9c95d", size = 84579, upload-time = "2025-02-12T10:53:02.078Z" }, ] [[package]] name = "myst-parser" -version = "3.0.1" +version = "5.0.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.9' and python_full_version < '3.12'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", ] dependencies = [ - { name = "docutils", marker = "python_full_version >= '3.9'" }, - { name = "jinja2", marker = "python_full_version >= '3.9'" }, - { name = "markdown-it-py", version = "3.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "mdit-py-plugins", version = "0.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "pyyaml", marker = "python_full_version >= '3.9'" }, - { name = "sphinx", version = "7.1.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "jinja2", marker = "python_full_version >= '3.11'" }, + { name = "markdown-it-py", version = "4.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "mdit-py-plugins", marker = "python_full_version >= '3.11'" }, + { name = "pyyaml", marker = "python_full_version >= '3.11'" }, + { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/49/64/e2f13dac02f599980798c01156393b781aec983b52a6e4057ee58f07c43a/myst_parser-3.0.1.tar.gz", hash = "sha256:88f0cb406cb363b077d176b51c476f62d60604d68a8dcdf4832e080441301a87", size = 92392, upload-time = "2024-04-28T20:22:42.116Z" } +sdist = { url = "https://files.pythonhosted.org/packages/33/fa/7b45eef11b7971f0beb29d27b7bfe0d747d063aa29e170d9edd004733c8a/myst_parser-5.0.0.tar.gz", hash = "sha256:f6f231452c56e8baa662cc352c548158f6a16fcbd6e3800fc594978002b94f3a", size = 98535, upload-time = "2026-01-15T09:08:18.036Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e2/de/21aa8394f16add8f7427f0a1326ccd2b3a2a8a3245c9252bc5ac034c6155/myst_parser-3.0.1-py3-none-any.whl", hash = "sha256:6457aaa33a5d474aca678b8ead9b3dc298e89c68e67012e73146ea6fd54babf1", size = 83163, upload-time = "2024-04-28T20:22:39.985Z" }, + { url = "https://files.pythonhosted.org/packages/d3/ac/686789b9145413f1a61878c407210e41bfdb097976864e0913078b24098c/myst_parser-5.0.0-py3-none-any.whl", hash = "sha256:ab31e516024918296e169139072b81592336f2fef55b8986aa31c9f04b5f7211", size = 84533, upload-time = "2026-01-15T09:08:16.788Z" }, ] [[package]] name = "nbclient" -version = "0.6.8" +version = "0.10.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jupyter-client" }, + { name = "jupyter-core" }, { name = "nbformat" }, - { name = "nest-asyncio" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/01/21/917a25fbc2b37ed37135be97efb4c98526008505451ffa841adcd7d11ed5/nbclient-0.6.8.tar.gz", hash = "sha256:268fde3457cafe1539e32eb1c6d796bbedb90b9e92bacd3e43d83413734bb0e8", size = 78917, upload-time = "2022-09-09T12:36:52.332Z" } +sdist = { url = "https://files.pythonhosted.org/packages/56/91/1c1d5a4b9a9ebba2b4e32b8c852c2975c872aec1fe42ab5e516b2cecd193/nbclient-0.10.4.tar.gz", hash = "sha256:1e54091b16e6da39e297b0ece3e10f6f29f4ac4e8ee515d29f8a7099bd6553c9", size = 62554, upload-time = "2025-12-23T07:45:46.369Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/1d/de31c4139603b3f43147dca571de7d1928bd23d5c674865342bd457ec419/nbclient-0.6.8-py3-none-any.whl", hash = "sha256:7cce8b415888539180535953f80ea2385cdbb444944cdeb73ffac1556fdbc228", size = 71848, upload-time = "2022-09-09T12:36:50.326Z" }, + { url = "https://files.pythonhosted.org/packages/83/a0/5b0c2f11142ed1dddec842457d3f65eaf71a0080894eb6f018755b319c3a/nbclient-0.10.4-py3-none-any.whl", hash = "sha256:9162df5a7373d70d606527300a95a975a47c137776cd942e52d9c7e29ff83440", size = 25465, upload-time = "2025-12-23T07:45:44.51Z" }, ] [[package]] @@ -1157,7 +1259,7 @@ wheels = [ [[package]] name = "nbmake" -version = "1.5.4" +version = "1.5.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "ipykernel" }, @@ -1166,9 +1268,9 @@ dependencies = [ { name = "pygments" }, { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/db/25/46a5818e699dc72e708754a8b6cfe4383d714d6d2578a795e9393bd5a0a8/nbmake-1.5.4.tar.gz", hash = "sha256:56417fe80d50069671122955532df6e26369a23f68b9c6e2191ae9cfef19abb2", size = 11306, upload-time = "2024-06-05T18:18:29.427Z" } +sdist = { url = "https://files.pythonhosted.org/packages/43/9a/aae201cee5639e1d562b3843af8fd9f8d018bb323e776a2b973bdd5fc64b/nbmake-1.5.5.tar.gz", hash = "sha256:239dc868ea13a7c049746e2aba2c229bd0f6cdbc6bfa1d22f4c88638aa4c5f5c", size = 85929, upload-time = "2024-12-23T18:33:46.774Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/b6/4c8649228a418b0a4ea0577fcc921d9facef9f2b1d8669f2808f2cdf1429/nbmake-1.5.4-py3-none-any.whl", hash = "sha256:8e440a61a7d4ab303064aa86b8d2c088177c89960e2b4a0f91a768dc9f68382b", size = 12860, upload-time = "2024-06-05T18:18:27.657Z" }, + { url = "https://files.pythonhosted.org/packages/eb/be/b257e12f9710819fde40adc972578bee6b72c5992da1bc8369bef2597756/nbmake-1.5.5-py3-none-any.whl", hash = "sha256:c6fbe6e48b60cacac14af40b38bf338a3b88f47f085c54ac5b8639ff0babaf4b", size = 12818, upload-time = "2024-12-23T18:33:44.566Z" }, ] [[package]] @@ -1182,179 +1284,177 @@ wheels = [ [[package]] name = "nodeenv" -version = "1.9.1" +version = "1.10.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/16/fc88b08840de0e0a72a2f9d8c6bae36be573e475a6326ae854bcc549fc45/nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f", size = 47437, upload-time = "2024-06-04T18:44:11.171Z" } +sdist = { url = "https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz", hash = "sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb", size = 55611, upload-time = "2025-12-20T14:08:54.006Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/1d/1b658dbd2b9fa9c4c9f32accbfc0205d532c8c6194dc0f2a4c0428e7128a/nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9", size = 22314, upload-time = "2024-06-04T18:44:08.352Z" }, -] - -[[package]] -name = "numpy" -version = "1.24.4" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.9'", -] -sdist = { url = "https://files.pythonhosted.org/packages/a4/9b/027bec52c633f6556dba6b722d9a0befb40498b9ceddd29cbe67a45a127c/numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463", size = 10911229, upload-time = "2023-06-26T13:39:33.218Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/80/6cdfb3e275d95155a34659163b83c09e3a3ff9f1456880bec6cc63d71083/numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64", size = 19789140, upload-time = "2023-06-26T13:22:33.184Z" }, - { url = "https://files.pythonhosted.org/packages/64/5f/3f01d753e2175cfade1013eea08db99ba1ee4bdb147ebcf3623b75d12aa7/numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1", size = 13854297, upload-time = "2023-06-26T13:22:59.541Z" }, - { url = "https://files.pythonhosted.org/packages/5a/b3/2f9c21d799fa07053ffa151faccdceeb69beec5a010576b8991f614021f7/numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4", size = 13995611, upload-time = "2023-06-26T13:23:22.167Z" }, - { url = "https://files.pythonhosted.org/packages/10/be/ae5bf4737cb79ba437879915791f6f26d92583c738d7d960ad94e5c36adf/numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6", size = 17282357, upload-time = "2023-06-26T13:23:51.446Z" }, - { url = "https://files.pythonhosted.org/packages/c0/64/908c1087be6285f40e4b3e79454552a701664a079321cff519d8c7051d06/numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc", size = 12429222, upload-time = "2023-06-26T13:24:13.849Z" }, - { url = "https://files.pythonhosted.org/packages/22/55/3d5a7c1142e0d9329ad27cece17933b0e2ab4e54ddc5c1861fbfeb3f7693/numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e", size = 14841514, upload-time = "2023-06-26T13:24:38.129Z" }, - { url = "https://files.pythonhosted.org/packages/a9/cc/5ed2280a27e5dab12994c884f1f4d8c3bd4d885d02ae9e52a9d213a6a5e2/numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810", size = 19775508, upload-time = "2023-06-26T13:25:08.882Z" }, - { url = "https://files.pythonhosted.org/packages/c0/bc/77635c657a3668cf652806210b8662e1aff84b818a55ba88257abf6637a8/numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254", size = 13840033, upload-time = "2023-06-26T13:25:33.417Z" }, - { url = "https://files.pythonhosted.org/packages/a7/4c/96cdaa34f54c05e97c1c50f39f98d608f96f0677a6589e64e53104e22904/numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7", size = 13991951, upload-time = "2023-06-26T13:25:55.725Z" }, - { url = "https://files.pythonhosted.org/packages/22/97/dfb1a31bb46686f09e68ea6ac5c63fdee0d22d7b23b8f3f7ea07712869ef/numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5", size = 17278923, upload-time = "2023-06-26T13:26:25.658Z" }, - { url = "https://files.pythonhosted.org/packages/35/e2/76a11e54139654a324d107da1d98f99e7aa2a7ef97cfd7c631fba7dbde71/numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d", size = 12422446, upload-time = "2023-06-26T13:26:49.302Z" }, - { url = "https://files.pythonhosted.org/packages/d8/ec/ebef2f7d7c28503f958f0f8b992e7ce606fb74f9e891199329d5f5f87404/numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694", size = 14834466, upload-time = "2023-06-26T13:27:16.029Z" }, - { url = "https://files.pythonhosted.org/packages/11/10/943cfb579f1a02909ff96464c69893b1d25be3731b5d3652c2e0cf1281ea/numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61", size = 19780722, upload-time = "2023-06-26T13:27:49.573Z" }, - { url = "https://files.pythonhosted.org/packages/a7/ae/f53b7b265fdc701e663fbb322a8e9d4b14d9cb7b2385f45ddfabfc4327e4/numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f", size = 13843102, upload-time = "2023-06-26T13:28:12.288Z" }, - { url = "https://files.pythonhosted.org/packages/25/6f/2586a50ad72e8dbb1d8381f837008a0321a3516dfd7cb57fc8cf7e4bb06b/numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e", size = 14039616, upload-time = "2023-06-26T13:28:35.659Z" }, - { url = "https://files.pythonhosted.org/packages/98/5d/5738903efe0ecb73e51eb44feafba32bdba2081263d40c5043568ff60faf/numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc", size = 17316263, upload-time = "2023-06-26T13:29:09.272Z" }, - { url = "https://files.pythonhosted.org/packages/d1/57/8d328f0b91c733aa9aa7ee540dbc49b58796c862b4fbcb1146c701e888da/numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2", size = 12455660, upload-time = "2023-06-26T13:29:33.434Z" }, - { url = "https://files.pythonhosted.org/packages/69/65/0d47953afa0ad569d12de5f65d964321c208492064c38fe3b0b9744f8d44/numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706", size = 14868112, upload-time = "2023-06-26T13:29:58.385Z" }, - { url = "https://files.pythonhosted.org/packages/9a/cd/d5b0402b801c8a8b56b04c1e85c6165efab298d2f0ab741c2406516ede3a/numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400", size = 19816549, upload-time = "2023-06-26T13:30:36.976Z" }, - { url = "https://files.pythonhosted.org/packages/14/27/638aaa446f39113a3ed38b37a66243e21b38110d021bfcb940c383e120f2/numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f", size = 13879950, upload-time = "2023-06-26T13:31:01.787Z" }, - { url = "https://files.pythonhosted.org/packages/8f/27/91894916e50627476cff1a4e4363ab6179d01077d71b9afed41d9e1f18bf/numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9", size = 14030228, upload-time = "2023-06-26T13:31:26.696Z" }, - { url = "https://files.pythonhosted.org/packages/7a/7c/d7b2a0417af6428440c0ad7cb9799073e507b1a465f827d058b826236964/numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d", size = 17311170, upload-time = "2023-06-26T13:31:56.615Z" }, - { url = "https://files.pythonhosted.org/packages/18/9d/e02ace5d7dfccee796c37b995c63322674daf88ae2f4a4724c5dd0afcc91/numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835", size = 12454918, upload-time = "2023-06-26T13:32:16.8Z" }, - { url = "https://files.pythonhosted.org/packages/63/38/6cc19d6b8bfa1d1a459daf2b3fe325453153ca7019976274b6f33d8b5663/numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8", size = 14867441, upload-time = "2023-06-26T13:32:40.521Z" }, - { url = "https://files.pythonhosted.org/packages/a4/fd/8dff40e25e937c94257455c237b9b6bf5a30d42dd1cc11555533be099492/numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef", size = 19156590, upload-time = "2023-06-26T13:33:10.36Z" }, - { url = "https://files.pythonhosted.org/packages/42/e7/4bf953c6e05df90c6d351af69966384fed8e988d0e8c54dad7103b59f3ba/numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a", size = 16705744, upload-time = "2023-06-26T13:33:36.703Z" }, - { url = "https://files.pythonhosted.org/packages/fc/dd/9106005eb477d022b60b3817ed5937a43dad8fd1f20b0610ea8a32fcb407/numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2", size = 14734290, upload-time = "2023-06-26T13:34:05.409Z" }, + { url = "https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl", hash = "sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827", size = 23438, upload-time = "2025-12-20T14:08:52.782Z" }, ] [[package]] name = "numpy" -version = "1.26.4" +version = "2.2.6" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.9' and python_full_version < '3.12'", - "python_full_version == '3.12.*'", -] -sdist = { url = "https://files.pythonhosted.org/packages/65/6e/09db70a523a96d25e115e71cc56a6f9031e7b8cd166c1ac8438307c14058/numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010", size = 15786129, upload-time = "2024-02-06T00:26:44.495Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/94/ace0fdea5241a27d13543ee117cbc65868e82213fb31a8eb7fe9ff23f313/numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0", size = 20631468, upload-time = "2024-02-05T23:48:01.194Z" }, - { url = "https://files.pythonhosted.org/packages/20/f7/b24208eba89f9d1b58c1668bc6c8c4fd472b20c45573cb767f59d49fb0f6/numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a", size = 13966411, upload-time = "2024-02-05T23:48:29.038Z" }, - { url = "https://files.pythonhosted.org/packages/fc/a5/4beee6488160798683eed5bdb7eead455892c3b4e1f78d79d8d3f3b084ac/numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4", size = 14219016, upload-time = "2024-02-05T23:48:54.098Z" }, - { url = "https://files.pythonhosted.org/packages/4b/d7/ecf66c1cd12dc28b4040b15ab4d17b773b87fa9d29ca16125de01adb36cd/numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f", size = 18240889, upload-time = "2024-02-05T23:49:25.361Z" }, - { url = "https://files.pythonhosted.org/packages/24/03/6f229fe3187546435c4f6f89f6d26c129d4f5bed40552899fcf1f0bf9e50/numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a", size = 13876746, upload-time = "2024-02-05T23:49:51.983Z" }, - { url = "https://files.pythonhosted.org/packages/39/fe/39ada9b094f01f5a35486577c848fe274e374bbf8d8f472e1423a0bbd26d/numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2", size = 18078620, upload-time = "2024-02-05T23:50:22.515Z" }, - { url = "https://files.pythonhosted.org/packages/d5/ef/6ad11d51197aad206a9ad2286dc1aac6a378059e06e8cf22cd08ed4f20dc/numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07", size = 5972659, upload-time = "2024-02-05T23:50:35.834Z" }, - { url = "https://files.pythonhosted.org/packages/19/77/538f202862b9183f54108557bfda67e17603fc560c384559e769321c9d92/numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5", size = 15808905, upload-time = "2024-02-05T23:51:03.701Z" }, - { url = "https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71", size = 20630554, upload-time = "2024-02-05T23:51:50.149Z" }, - { url = "https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef", size = 13997127, upload-time = "2024-02-05T23:52:15.314Z" }, - { url = "https://files.pythonhosted.org/packages/79/ae/7e5b85136806f9dadf4878bf73cf223fe5c2636818ba3ab1c585d0403164/numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e", size = 14222994, upload-time = "2024-02-05T23:52:47.569Z" }, - { url = "https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5", size = 18252005, upload-time = "2024-02-05T23:53:15.637Z" }, - { url = "https://files.pythonhosted.org/packages/09/bf/2b1aaf8f525f2923ff6cfcf134ae5e750e279ac65ebf386c75a0cf6da06a/numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a", size = 13885297, upload-time = "2024-02-05T23:53:42.16Z" }, - { url = "https://files.pythonhosted.org/packages/df/a0/4e0f14d847cfc2a633a1c8621d00724f3206cfeddeb66d35698c4e2cf3d2/numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a", size = 18093567, upload-time = "2024-02-05T23:54:11.696Z" }, - { url = "https://files.pythonhosted.org/packages/d2/b7/a734c733286e10a7f1a8ad1ae8c90f2d33bf604a96548e0a4a3a6739b468/numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20", size = 5968812, upload-time = "2024-02-05T23:54:26.453Z" }, - { url = "https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2", size = 15811913, upload-time = "2024-02-05T23:54:53.933Z" }, - { url = "https://files.pythonhosted.org/packages/95/12/8f2020a8e8b8383ac0177dc9570aad031a3beb12e38847f7129bacd96228/numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218", size = 20335901, upload-time = "2024-02-05T23:55:32.801Z" }, - { url = "https://files.pythonhosted.org/packages/75/5b/ca6c8bd14007e5ca171c7c03102d17b4f4e0ceb53957e8c44343a9546dcc/numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b", size = 13685868, upload-time = "2024-02-05T23:55:56.28Z" }, - { url = "https://files.pythonhosted.org/packages/79/f8/97f10e6755e2a7d027ca783f63044d5b1bc1ae7acb12afe6a9b4286eac17/numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b", size = 13925109, upload-time = "2024-02-05T23:56:20.368Z" }, - { url = "https://files.pythonhosted.org/packages/0f/50/de23fde84e45f5c4fda2488c759b69990fd4512387a8632860f3ac9cd225/numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed", size = 17950613, upload-time = "2024-02-05T23:56:56.054Z" }, - { url = "https://files.pythonhosted.org/packages/4c/0c/9c603826b6465e82591e05ca230dfc13376da512b25ccd0894709b054ed0/numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a", size = 13572172, upload-time = "2024-02-05T23:57:21.56Z" }, - { url = "https://files.pythonhosted.org/packages/76/8c/2ba3902e1a0fc1c74962ea9bb33a534bb05984ad7ff9515bf8d07527cadd/numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0", size = 17786643, upload-time = "2024-02-05T23:57:56.585Z" }, - { url = "https://files.pythonhosted.org/packages/28/4a/46d9e65106879492374999e76eb85f87b15328e06bd1550668f79f7b18c6/numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110", size = 5677803, upload-time = "2024-02-05T23:58:08.963Z" }, - { url = "https://files.pythonhosted.org/packages/16/2e/86f24451c2d530c88daf997cb8d6ac622c1d40d19f5a031ed68a4b73a374/numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818", size = 15517754, upload-time = "2024-02-05T23:58:36.364Z" }, - { url = "https://files.pythonhosted.org/packages/7d/24/ce71dc08f06534269f66e73c04f5709ee024a1afe92a7b6e1d73f158e1f8/numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c", size = 20636301, upload-time = "2024-02-05T23:59:10.976Z" }, - { url = "https://files.pythonhosted.org/packages/ae/8c/ab03a7c25741f9ebc92684a20125fbc9fc1b8e1e700beb9197d750fdff88/numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be", size = 13971216, upload-time = "2024-02-05T23:59:35.472Z" }, - { url = "https://files.pythonhosted.org/packages/6d/64/c3bcdf822269421d85fe0d64ba972003f9bb4aa9a419da64b86856c9961f/numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764", size = 14226281, upload-time = "2024-02-05T23:59:59.372Z" }, - { url = "https://files.pythonhosted.org/packages/54/30/c2a907b9443cf42b90c17ad10c1e8fa801975f01cb9764f3f8eb8aea638b/numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3", size = 18249516, upload-time = "2024-02-06T00:00:32.79Z" }, - { url = "https://files.pythonhosted.org/packages/43/12/01a563fc44c07095996d0129b8899daf89e4742146f7044cdbdb3101c57f/numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd", size = 13882132, upload-time = "2024-02-06T00:00:58.197Z" }, - { url = "https://files.pythonhosted.org/packages/16/ee/9df80b06680aaa23fc6c31211387e0db349e0e36d6a63ba3bd78c5acdf11/numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c", size = 18084181, upload-time = "2024-02-06T00:01:31.21Z" }, - { url = "https://files.pythonhosted.org/packages/28/7d/4b92e2fe20b214ffca36107f1a3e75ef4c488430e64de2d9af5db3a4637d/numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6", size = 5976360, upload-time = "2024-02-06T00:01:43.013Z" }, - { url = "https://files.pythonhosted.org/packages/b5/42/054082bd8220bbf6f297f982f0a8f5479fcbc55c8b511d928df07b965869/numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea", size = 15814633, upload-time = "2024-02-06T00:02:16.694Z" }, - { url = "https://files.pythonhosted.org/packages/3f/72/3df6c1c06fc83d9cfe381cccb4be2532bbd38bf93fbc9fad087b6687f1c0/numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30", size = 20455961, upload-time = "2024-02-06T00:03:05.993Z" }, - { url = "https://files.pythonhosted.org/packages/8e/02/570545bac308b58ffb21adda0f4e220ba716fb658a63c151daecc3293350/numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c", size = 18061071, upload-time = "2024-02-06T00:03:41.5Z" }, - { url = "https://files.pythonhosted.org/packages/f4/5f/fafd8c51235f60d49f7a88e2275e13971e90555b67da52dd6416caec32fe/numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0", size = 15709730, upload-time = "2024-02-06T00:04:11.719Z" }, + "python_full_version < '3.11'", +] +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" }, + { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048, upload-time = "2025-05-17T21:28:21.406Z" }, + { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542, upload-time = "2025-05-17T21:28:30.931Z" }, + { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301, upload-time = "2025-05-17T21:28:41.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320, upload-time = "2025-05-17T21:29:02.78Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050, upload-time = "2025-05-17T21:29:27.675Z" }, + { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034, upload-time = "2025-05-17T21:29:51.102Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185, upload-time = "2025-05-17T21:30:18.703Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149, upload-time = "2025-05-17T21:30:29.788Z" }, + { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620, upload-time = "2025-05-17T21:30:48.994Z" }, + { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload-time = "2025-05-17T21:31:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload-time = "2025-05-17T21:31:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload-time = "2025-05-17T21:31:50.072Z" }, + { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload-time = "2025-05-17T21:32:01.712Z" }, + { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload-time = "2025-05-17T21:32:23.332Z" }, + { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload-time = "2025-05-17T21:32:47.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload-time = "2025-05-17T21:33:11.728Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload-time = "2025-05-17T21:33:39.139Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload-time = "2025-05-17T21:33:50.273Z" }, + { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload-time = "2025-05-17T21:34:09.135Z" }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload-time = "2025-05-17T21:37:56.699Z" }, + { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload-time = "2025-05-17T21:38:18.291Z" }, + { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload-time = "2025-05-17T21:38:27.319Z" }, + { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload-time = "2025-05-17T21:38:38.141Z" }, + { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload-time = "2025-05-17T21:38:58.433Z" }, + { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload-time = "2025-05-17T21:39:22.638Z" }, + { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload-time = "2025-05-17T21:39:45.865Z" }, + { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload-time = "2025-05-17T21:40:13.331Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload-time = "2025-05-17T21:43:46.099Z" }, + { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload-time = "2025-05-17T21:44:05.145Z" }, + { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload-time = "2025-05-17T21:40:44Z" }, + { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload-time = "2025-05-17T21:41:05.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload-time = "2025-05-17T21:41:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload-time = "2025-05-17T21:41:27.321Z" }, + { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload-time = "2025-05-17T21:41:49.738Z" }, + { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload-time = "2025-05-17T21:42:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload-time = "2025-05-17T21:42:37.464Z" }, + { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload-time = "2025-05-17T21:43:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload-time = "2025-05-17T21:43:16.254Z" }, + { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload-time = "2025-05-17T21:43:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391, upload-time = "2025-05-17T21:44:35.948Z" }, + { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754, upload-time = "2025-05-17T21:44:47.446Z" }, + { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload-time = "2025-05-17T21:45:11.871Z" }, + { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, ] [[package]] name = "numpy" -version = "2.2.0" +version = "2.4.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.13'", -] -sdist = { url = "https://files.pythonhosted.org/packages/47/1b/1d565e0f6e156e1522ab564176b8b29d71e13d8caf003a08768df3d5cec5/numpy-2.2.0.tar.gz", hash = "sha256:140dd80ff8981a583a60980be1a655068f8adebf7a45a06a6858c873fcdcd4a0", size = 20225497, upload-time = "2024-12-08T15:45:53.828Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/81/3882353e097204fe4d7a5fe026b694b0104b78f930c969faadeed1538e00/numpy-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1e25507d85da11ff5066269d0bd25d06e0a0f2e908415534f3e603d2a78e4ffa", size = 21212476, upload-time = "2024-12-08T15:20:47.292Z" }, - { url = "https://files.pythonhosted.org/packages/2c/64/5577dc71240272749e07fcacb47c0f29e31ba4fbd1613fefbd1aa88efc29/numpy-2.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a62eb442011776e4036af5c8b1a00b706c5bc02dc15eb5344b0c750428c94219", size = 14351441, upload-time = "2024-12-08T15:21:10.966Z" }, - { url = "https://files.pythonhosted.org/packages/c9/43/850c040481c19c1c2289203a606df1a202eeb3aa81440624bac891024f83/numpy-2.2.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:b606b1aaf802e6468c2608c65ff7ece53eae1a6874b3765f69b8ceb20c5fa78e", size = 5390304, upload-time = "2024-12-08T15:21:20.431Z" }, - { url = "https://files.pythonhosted.org/packages/73/96/a4c8a86300dbafc7e4f44d8986f8b64950b7f4640a2dc5c91e036afe28c6/numpy-2.2.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:36b2b43146f646642b425dd2027730f99bac962618ec2052932157e213a040e9", size = 6925476, upload-time = "2024-12-08T15:21:31.436Z" }, - { url = "https://files.pythonhosted.org/packages/0c/0a/22129c3107c4fb237f97876df4399a5c3a83f3d95f86e0353ae6fbbd202f/numpy-2.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fe8f3583e0607ad4e43a954e35c1748b553bfe9fdac8635c02058023277d1b3", size = 14329997, upload-time = "2024-12-08T15:21:53.67Z" }, - { url = "https://files.pythonhosted.org/packages/4c/49/c2adeccc8a47bcd9335ec000dfcb4de34a7c34aeaa23af57cd504017e8c3/numpy-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:122fd2fcfafdefc889c64ad99c228d5a1f9692c3a83f56c292618a59aa60ae83", size = 16378908, upload-time = "2024-12-08T15:22:18.524Z" }, - { url = "https://files.pythonhosted.org/packages/8d/85/b65f4596748cc5468c0a978a16b3be45f6bcec78339b0fe7bce71d121d89/numpy-2.2.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3f2f5cddeaa4424a0a118924b988746db6ffa8565e5829b1841a8a3bd73eb59a", size = 15540949, upload-time = "2024-12-08T15:22:42.538Z" }, - { url = "https://files.pythonhosted.org/packages/ff/b3/3b18321c94a6a6a1d972baf1b39a6de50e65c991002c014ffbcce7e09be8/numpy-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7fe4bb0695fe986a9e4deec3b6857003b4cfe5c5e4aac0b95f6a658c14635e31", size = 18167677, upload-time = "2024-12-08T15:23:11.062Z" }, - { url = "https://files.pythonhosted.org/packages/41/f0/fa2a76e893a05764e4474f6011575c4e4ccf32af9c95bfcc8ef4b8a99f69/numpy-2.2.0-cp310-cp310-win32.whl", hash = "sha256:b30042fe92dbd79f1ba7f6898fada10bdaad1847c44f2dff9a16147e00a93661", size = 6570288, upload-time = "2024-12-08T15:23:22.863Z" }, - { url = "https://files.pythonhosted.org/packages/97/4e/0b7debcd013214db224997b0d3e39bb7b3656d37d06dfc31bb57d42d143b/numpy-2.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:54dc1d6d66f8d37843ed281773c7174f03bf7ad826523f73435deb88ba60d2d4", size = 12912730, upload-time = "2024-12-08T15:23:42.938Z" }, - { url = "https://files.pythonhosted.org/packages/80/1b/736023977a96e787c4e7653a1ac2d31d4f6ab6b4048f83c8359f7c0af2e3/numpy-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9874bc2ff574c40ab7a5cbb7464bf9b045d617e36754a7bc93f933d52bd9ffc6", size = 21216607, upload-time = "2024-12-08T15:24:13.737Z" }, - { url = "https://files.pythonhosted.org/packages/85/4f/5f0be4c5c93525e663573bab9e29bd88a71f85de3a0d01413ee05bce0c2f/numpy-2.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0da8495970f6b101ddd0c38ace92edea30e7e12b9a926b57f5fabb1ecc25bb90", size = 14387756, upload-time = "2024-12-08T15:24:35.67Z" }, - { url = "https://files.pythonhosted.org/packages/36/78/c38af7833c4f29999cdacdf12452b43b660cd25a1990ea9a7edf1fb01f17/numpy-2.2.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0557eebc699c1c34cccdd8c3778c9294e8196df27d713706895edc6f57d29608", size = 5388483, upload-time = "2024-12-08T15:24:45.64Z" }, - { url = "https://files.pythonhosted.org/packages/e9/b5/306ac6ee3f8f0c51abd3664ee8a9b8e264cbf179a860674827151ecc0a9c/numpy-2.2.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:3579eaeb5e07f3ded59298ce22b65f877a86ba8e9fe701f5576c99bb17c283da", size = 6929721, upload-time = "2024-12-08T15:24:57.76Z" }, - { url = "https://files.pythonhosted.org/packages/ea/15/e33a7d86d8ce91de82c34ce94a87f2b8df891e603675e83ec7039325ff10/numpy-2.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40deb10198bbaa531509aad0cd2f9fadb26c8b94070831e2208e7df543562b74", size = 14334667, upload-time = "2024-12-08T15:25:20.087Z" }, - { url = "https://files.pythonhosted.org/packages/52/33/10825f580f42a353f744abc450dcd2a4b1e6f1931abb0ccbd1d63bd3993c/numpy-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2aed8fcf8abc3020d6a9ccb31dbc9e7d7819c56a348cc88fd44be269b37427e", size = 16390204, upload-time = "2024-12-08T15:25:45.414Z" }, - { url = "https://files.pythonhosted.org/packages/b4/24/36cce77559572bdc6c8bcdd2f3e0db03c7079d14b9a1cd342476d7f451e8/numpy-2.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a222d764352c773aa5ebde02dd84dba3279c81c6db2e482d62a3fa54e5ece69b", size = 15556123, upload-time = "2024-12-08T15:26:09.247Z" }, - { url = "https://files.pythonhosted.org/packages/05/51/2d706d14adee8f5c70c5de3831673d4d57051fc9ac6f3f6bff8811d2f9bd/numpy-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4e58666988605e251d42c2818c7d3d8991555381be26399303053b58a5bbf30d", size = 18179898, upload-time = "2024-12-08T15:26:37.996Z" }, - { url = "https://files.pythonhosted.org/packages/8a/e7/ea8b7652564113f218e75b296e3545a256d88b233021f792fd08591e8f33/numpy-2.2.0-cp311-cp311-win32.whl", hash = "sha256:4723a50e1523e1de4fccd1b9a6dcea750c2102461e9a02b2ac55ffeae09a4410", size = 6568146, upload-time = "2024-12-08T15:26:50.015Z" }, - { url = "https://files.pythonhosted.org/packages/d0/06/3d1ff6ed377cb0340baf90487a35f15f9dc1db8e0a07de2bf2c54a8e490f/numpy-2.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:16757cf28621e43e252c560d25b15f18a2f11da94fea344bf26c599b9cf54b73", size = 12916677, upload-time = "2024-12-08T15:28:41.652Z" }, - { url = "https://files.pythonhosted.org/packages/7f/bc/a20dc4e1d051149052762e7647455311865d11c603170c476d1e910a353e/numpy-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cff210198bb4cae3f3c100444c5eaa573a823f05c253e7188e1362a5555235b3", size = 20909153, upload-time = "2024-12-08T15:29:15.013Z" }, - { url = "https://files.pythonhosted.org/packages/60/3d/ac4fb63f36db94f4c7db05b45e3ecb3f88f778ca71850664460c78cfde41/numpy-2.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58b92a5828bd4d9aa0952492b7de803135038de47343b2aa3cc23f3b71a3dc4e", size = 14095021, upload-time = "2024-12-08T15:29:42.037Z" }, - { url = "https://files.pythonhosted.org/packages/41/6d/a654d519d24e4fcc7a83d4a51209cda086f26cf30722b3d8ffc1aa9b775e/numpy-2.2.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:ebe5e59545401fbb1b24da76f006ab19734ae71e703cdb4a8b347e84a0cece67", size = 5125491, upload-time = "2024-12-08T15:29:52.979Z" }, - { url = "https://files.pythonhosted.org/packages/e6/22/fab7e1510a62e5092f4e6507a279020052b89f11d9cfe52af7f52c243b04/numpy-2.2.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e2b8cd48a9942ed3f85b95ca4105c45758438c7ed28fff1e4ce3e57c3b589d8e", size = 6658534, upload-time = "2024-12-08T15:30:06.424Z" }, - { url = "https://files.pythonhosted.org/packages/fc/29/a3d938ddc5a534cd53df7ab79d20a68db8c67578de1df0ae0118230f5f54/numpy-2.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57fcc997ffc0bef234b8875a54d4058afa92b0b0c4223fc1f62f24b3b5e86038", size = 14046306, upload-time = "2024-12-08T15:30:31.079Z" }, - { url = "https://files.pythonhosted.org/packages/90/24/d0bbb56abdd8934f30384632e3c2ca1ebfeb5d17e150c6e366ba291de36b/numpy-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ad7d11b309bd132d74397fcf2920933c9d1dc865487128f5c03d580f2c3d03", size = 16095819, upload-time = "2024-12-08T15:31:00.056Z" }, - { url = "https://files.pythonhosted.org/packages/99/9c/58a673faa9e8a0e77248e782f7a17410cf7259b326265646fd50ed49c4e1/numpy-2.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cb24cca1968b21355cc6f3da1a20cd1cebd8a023e3c5b09b432444617949085a", size = 15243215, upload-time = "2024-12-08T15:31:26.698Z" }, - { url = "https://files.pythonhosted.org/packages/9c/61/f311693f78cbf635cfb69ce9e1e857ff83937a27d93c96ac5932fd33e330/numpy-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0798b138c291d792f8ea40fe3768610f3c7dd2574389e37c3f26573757c8f7ef", size = 17860175, upload-time = "2024-12-08T15:31:57.807Z" }, - { url = "https://files.pythonhosted.org/packages/11/3e/491c34262cb1fc9dd13a00beb80d755ee0517b17db20e54cac7aa524533e/numpy-2.2.0-cp312-cp312-win32.whl", hash = "sha256:afe8fb968743d40435c3827632fd36c5fbde633b0423da7692e426529b1759b1", size = 6273281, upload-time = "2024-12-08T15:32:11.897Z" }, - { url = "https://files.pythonhosted.org/packages/89/ea/00537f599eb230771157bc509f6ea5b2dddf05d4b09f9d2f1d7096a18781/numpy-2.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:3a4199f519e57d517ebd48cb76b36c82da0360781c6a0353e64c0cac30ecaad3", size = 12613227, upload-time = "2024-12-08T15:32:34.792Z" }, - { url = "https://files.pythonhosted.org/packages/bd/4c/0d1eef206545c994289e7a9de21b642880a11e0ed47a2b0c407c688c4f69/numpy-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f8c8b141ef9699ae777c6278b52c706b653bf15d135d302754f6b2e90eb30367", size = 20895707, upload-time = "2024-12-08T15:33:12.723Z" }, - { url = "https://files.pythonhosted.org/packages/16/cb/88f6c1e6df83002c421d5f854ccf134aa088aa997af786a5dac3f32ec99b/numpy-2.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0f0986e917aca18f7a567b812ef7ca9391288e2acb7a4308aa9d265bd724bdae", size = 14110592, upload-time = "2024-12-08T15:33:38.416Z" }, - { url = "https://files.pythonhosted.org/packages/b4/54/817e6894168a43f33dca74199ba0dd0f1acd99aa6323ed6d323d63d640a2/numpy-2.2.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:1c92113619f7b272838b8d6702a7f8ebe5edea0df48166c47929611d0b4dea69", size = 5110858, upload-time = "2024-12-08T15:33:48.779Z" }, - { url = "https://files.pythonhosted.org/packages/c7/99/00d8a1a8eb70425bba7880257ed73fed08d3e8d05da4202fb6b9a81d5ee4/numpy-2.2.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5a145e956b374e72ad1dff82779177d4a3c62bc8248f41b80cb5122e68f22d13", size = 6645143, upload-time = "2024-12-08T15:34:02.815Z" }, - { url = "https://files.pythonhosted.org/packages/34/86/5b9c2b7c56e7a9d9297a0a4be0b8433f498eba52a8f5892d9132b0f64627/numpy-2.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18142b497d70a34b01642b9feabb70156311b326fdddd875a9981f34a369b671", size = 14042812, upload-time = "2024-12-08T15:34:26.323Z" }, - { url = "https://files.pythonhosted.org/packages/df/54/13535f74391dbe5f479ceed96f1403267be302c840040700d4fd66688089/numpy-2.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7d41d1612c1a82b64697e894b75db6758d4f21c3ec069d841e60ebe54b5b571", size = 16093419, upload-time = "2024-12-08T15:34:53.056Z" }, - { url = "https://files.pythonhosted.org/packages/dd/37/dfb2056842ac61315f225aa56f455da369f5223e4c5a38b91d20da1b628b/numpy-2.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a98f6f20465e7618c83252c02041517bd2f7ea29be5378f09667a8f654a5918d", size = 15238969, upload-time = "2024-12-08T15:35:20.37Z" }, - { url = "https://files.pythonhosted.org/packages/5a/3d/d20d24ee313992f0b7e7b9d9eef642d9b545d39d5b91c4a2cc8c98776328/numpy-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e09d40edfdb4e260cb1567d8ae770ccf3b8b7e9f0d9b5c2a9992696b30ce2742", size = 17855705, upload-time = "2024-12-08T15:35:47.603Z" }, - { url = "https://files.pythonhosted.org/packages/5b/40/944c9ee264f875a2db6f79380944fd2b5bb9d712bb4a134d11f45ad5b693/numpy-2.2.0-cp313-cp313-win32.whl", hash = "sha256:3905a5fffcc23e597ee4d9fb3fcd209bd658c352657548db7316e810ca80458e", size = 6270078, upload-time = "2024-12-08T15:39:19.519Z" }, - { url = "https://files.pythonhosted.org/packages/30/04/e1ee6f8b22034302d4c5c24e15782bdedf76d90b90f3874ed0b48525def0/numpy-2.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:a184288538e6ad699cbe6b24859206e38ce5fba28f3bcfa51c90d0502c1582b2", size = 12605791, upload-time = "2024-12-08T15:39:38.513Z" }, - { url = "https://files.pythonhosted.org/packages/ef/fb/51d458625cd6134d60ac15180ae50995d7d21b0f2f92a6286ae7b0792d19/numpy-2.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7832f9e8eb00be32f15fdfb9a981d6955ea9adc8574c521d48710171b6c55e95", size = 20920160, upload-time = "2024-12-08T15:36:18.605Z" }, - { url = "https://files.pythonhosted.org/packages/b4/34/162ae0c5d2536ea4be98c813b5161c980f0443cd5765fde16ddfe3450140/numpy-2.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f0dd071b95bbca244f4cb7f70b77d2ff3aaaba7fa16dc41f58d14854a6204e6c", size = 14119064, upload-time = "2024-12-08T15:36:40.875Z" }, - { url = "https://files.pythonhosted.org/packages/17/6c/4195dd0e1c41c55f466d516e17e9e28510f32af76d23061ea3da67438e3c/numpy-2.2.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:b0b227dcff8cdc3efbce66d4e50891f04d0a387cce282fe1e66199146a6a8fca", size = 5152778, upload-time = "2024-12-08T15:36:50.563Z" }, - { url = "https://files.pythonhosted.org/packages/2f/47/ea804ae525832c8d05ed85b560dfd242d34e4bb0962bc269ccaa720fb934/numpy-2.2.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:6ab153263a7c5ccaf6dfe7e53447b74f77789f28ecb278c3b5d49db7ece10d6d", size = 6667605, upload-time = "2024-12-08T15:37:01.343Z" }, - { url = "https://files.pythonhosted.org/packages/76/99/34d20e50b3d894bb16b5374bfbee399ab8ff3a33bf1e1f0b8acfe7bbd70d/numpy-2.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e500aba968a48e9019e42c0c199b7ec0696a97fa69037bea163b55398e390529", size = 14013275, upload-time = "2024-12-08T15:37:22.411Z" }, - { url = "https://files.pythonhosted.org/packages/69/8f/a1df7bd02d434ab82539517d1b98028985700cfc4300bc5496fb140ca648/numpy-2.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:440cfb3db4c5029775803794f8638fbdbf71ec702caf32735f53b008e1eaece3", size = 16074900, upload-time = "2024-12-08T15:37:47.078Z" }, - { url = "https://files.pythonhosted.org/packages/04/94/b419e7a76bf21a00fcb03c613583f10e389fdc8dfe420412ff5710c8ad3d/numpy-2.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a55dc7a7f0b6198b07ec0cd445fbb98b05234e8b00c5ac4874a63372ba98d4ab", size = 15219122, upload-time = "2024-12-08T15:38:10.437Z" }, - { url = "https://files.pythonhosted.org/packages/65/d9/dddf398b2b6c5d750892a207a469c2854a8db0f033edaf72103af8cf05aa/numpy-2.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4bddbaa30d78c86329b26bd6aaaea06b1e47444da99eddac7bf1e2fab717bd72", size = 17851668, upload-time = "2024-12-08T15:38:36.976Z" }, - { url = "https://files.pythonhosted.org/packages/d4/dc/09a4e5819a9782a213c0eb4eecacdc1cd75ad8dac99279b04cfccb7eeb0a/numpy-2.2.0-cp313-cp313t-win32.whl", hash = "sha256:30bf971c12e4365153afb31fc73f441d4da157153f3400b82db32d04de1e4066", size = 6325288, upload-time = "2024-12-08T15:38:48.456Z" }, - { url = "https://files.pythonhosted.org/packages/ce/e1/e0d06ec34036c92b43aef206efe99a5f5f04e12c776eab82a36e00c40afc/numpy-2.2.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d35717333b39d1b6bb8433fa758a55f1081543de527171543a2b710551d40881", size = 12692303, upload-time = "2024-12-08T15:39:08.17Z" }, - { url = "https://files.pythonhosted.org/packages/f3/18/6d4e1274f221073058b621f4df8050958b7564b24b4fa25be9f1b7639274/numpy-2.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e12c6c1ce84628c52d6367863773f7c8c8241be554e8b79686e91a43f1733773", size = 21043901, upload-time = "2024-12-08T15:40:09.263Z" }, - { url = "https://files.pythonhosted.org/packages/19/3e/2b20599e7ead7ae1b89a77bb34f88c5ec12e43fbb320576ed646388d2cb7/numpy-2.2.0-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:b6207dc8fb3c8cb5668e885cef9ec7f70189bec4e276f0ff70d5aa078d32c88e", size = 6789122, upload-time = "2024-12-08T15:40:21.876Z" }, - { url = "https://files.pythonhosted.org/packages/c9/5a/378954132c192fafa6c3d5c160092a427c7562e5bda0cc6ad9cc37008a7a/numpy-2.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a50aeff71d0f97b6450d33940c7181b08be1441c6c193e678211bff11aa725e7", size = 16194018, upload-time = "2024-12-08T15:40:45.485Z" }, - { url = "https://files.pythonhosted.org/packages/67/17/209bda34fc83f3436834392f44643e66dcf3c77465f232102e7f1c7d8eae/numpy-2.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:df12a1f99b99f569a7c2ae59aa2d31724e8d835fc7f33e14f4792e3071d11221", size = 12819486, upload-time = "2024-12-08T15:41:05.529Z" }, + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", +] +sdist = { url = "https://files.pythonhosted.org/packages/10/8b/c265f4823726ab832de836cdd184d0986dcf94480f81e8739692a7ac7af2/numpy-2.4.3.tar.gz", hash = "sha256:483a201202b73495f00dbc83796c6ae63137a9bdade074f7648b3e32613412dd", size = 20727743, upload-time = "2026-03-09T07:58:53.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/51/5093a2df15c4dc19da3f79d1021e891f5dcf1d9d1db6ba38891d5590f3fe/numpy-2.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:33b3bf58ee84b172c067f56aeadc7ee9ab6de69c5e800ab5b10295d54c581adb", size = 16957183, upload-time = "2026-03-09T07:55:57.774Z" }, + { url = "https://files.pythonhosted.org/packages/b5/7c/c061f3de0630941073d2598dc271ac2f6cbcf5c83c74a5870fea07488333/numpy-2.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8ba7b51e71c05aa1f9bc3641463cd82308eab40ce0d5c7e1fd4038cbf9938147", size = 14968734, upload-time = "2026-03-09T07:56:00.494Z" }, + { url = "https://files.pythonhosted.org/packages/ef/27/d26c85cbcd86b26e4f125b0668e7a7c0542d19dd7d23ee12e87b550e95b5/numpy-2.4.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a1988292870c7cb9d0ebb4cc96b4d447513a9644801de54606dc7aabf2b7d920", size = 5475288, upload-time = "2026-03-09T07:56:02.857Z" }, + { url = "https://files.pythonhosted.org/packages/2b/09/3c4abbc1dcd8010bf1a611d174c7aa689fc505585ec806111b4406f6f1b1/numpy-2.4.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:23b46bb6d8ecb68b58c09944483c135ae5f0e9b8d8858ece5e4ead783771d2a9", size = 6805253, upload-time = "2026-03-09T07:56:04.53Z" }, + { url = "https://files.pythonhosted.org/packages/21/bc/e7aa3f6817e40c3f517d407742337cbb8e6fc4b83ce0b55ab780c829243b/numpy-2.4.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a016db5c5dba78fa8fe9f5d80d6708f9c42ab087a739803c0ac83a43d686a470", size = 15969479, upload-time = "2026-03-09T07:56:06.638Z" }, + { url = "https://files.pythonhosted.org/packages/78/51/9f5d7a41f0b51649ddf2f2320595e15e122a40610b233d51928dd6c92353/numpy-2.4.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:715de7f82e192e8cae5a507a347d97ad17598f8e026152ca97233e3666daaa71", size = 16901035, upload-time = "2026-03-09T07:56:09.405Z" }, + { url = "https://files.pythonhosted.org/packages/64/6e/b221dd847d7181bc5ee4857bfb026182ef69499f9305eb1371cbb1aea626/numpy-2.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2ddb7919366ee468342b91dea2352824c25b55814a987847b6c52003a7c97f15", size = 17325657, upload-time = "2026-03-09T07:56:12.067Z" }, + { url = "https://files.pythonhosted.org/packages/eb/b8/8f3fd2da596e1063964b758b5e3c970aed1949a05200d7e3d46a9d46d643/numpy-2.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a315e5234d88067f2d97e1f2ef670a7569df445d55400f1e33d117418d008d52", size = 18635512, upload-time = "2026-03-09T07:56:14.629Z" }, + { url = "https://files.pythonhosted.org/packages/5c/24/2993b775c37e39d2f8ab4125b44337ab0b2ba106c100980b7c274a22bee7/numpy-2.4.3-cp311-cp311-win32.whl", hash = "sha256:2b3f8d2c4589b1a2028d2a770b0fc4d1f332fb5e01521f4de3199a896d158ddd", size = 6238100, upload-time = "2026-03-09T07:56:17.243Z" }, + { url = "https://files.pythonhosted.org/packages/76/1d/edccf27adedb754db7c4511d5eac8b83f004ae948fe2d3509e8b78097d4c/numpy-2.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:77e76d932c49a75617c6d13464e41203cd410956614d0a0e999b25e9e8d27eec", size = 12609816, upload-time = "2026-03-09T07:56:19.089Z" }, + { url = "https://files.pythonhosted.org/packages/92/82/190b99153480076c8dce85f4cfe7d53ea84444145ffa54cb58dcd460d66b/numpy-2.4.3-cp311-cp311-win_arm64.whl", hash = "sha256:eb610595dd91560905c132c709412b512135a60f1851ccbd2c959e136431ff67", size = 10485757, upload-time = "2026-03-09T07:56:21.753Z" }, + { url = "https://files.pythonhosted.org/packages/a9/ed/6388632536f9788cea23a3a1b629f25b43eaacd7d7377e5d6bc7b9deb69b/numpy-2.4.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:61b0cbabbb6126c8df63b9a3a0c4b1f44ebca5e12ff6997b80fcf267fb3150ef", size = 16669628, upload-time = "2026-03-09T07:56:24.252Z" }, + { url = "https://files.pythonhosted.org/packages/74/1b/ee2abfc68e1ce728b2958b6ba831d65c62e1b13ce3017c13943f8f9b5b2e/numpy-2.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7395e69ff32526710748f92cd8c9849b361830968ea3e24a676f272653e8983e", size = 14696872, upload-time = "2026-03-09T07:56:26.991Z" }, + { url = "https://files.pythonhosted.org/packages/ba/d1/780400e915ff5638166f11ca9dc2c5815189f3d7cf6f8759a1685e586413/numpy-2.4.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:abdce0f71dcb4a00e4e77f3faf05e4616ceccfe72ccaa07f47ee79cda3b7b0f4", size = 5203489, upload-time = "2026-03-09T07:56:29.414Z" }, + { url = "https://files.pythonhosted.org/packages/0b/bb/baffa907e9da4cc34a6e556d6d90e032f6d7a75ea47968ea92b4858826c4/numpy-2.4.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:48da3a4ee1336454b07497ff7ec83903efa5505792c4e6d9bf83d99dc07a1e18", size = 6550814, upload-time = "2026-03-09T07:56:32.225Z" }, + { url = "https://files.pythonhosted.org/packages/7b/12/8c9f0c6c95f76aeb20fc4a699c33e9f827fa0d0f857747c73bb7b17af945/numpy-2.4.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:32e3bef222ad6b052280311d1d60db8e259e4947052c3ae7dd6817451fc8a4c5", size = 15666601, upload-time = "2026-03-09T07:56:34.461Z" }, + { url = "https://files.pythonhosted.org/packages/bd/79/cc665495e4d57d0aa6fbcc0aa57aa82671dfc78fbf95fe733ed86d98f52a/numpy-2.4.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e7dd01a46700b1967487141a66ac1a3cf0dd8ebf1f08db37d46389401512ca97", size = 16621358, upload-time = "2026-03-09T07:56:36.852Z" }, + { url = "https://files.pythonhosted.org/packages/a8/40/b4ecb7224af1065c3539f5ecfff879d090de09608ad1008f02c05c770cb3/numpy-2.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:76f0f283506c28b12bba319c0fab98217e9f9b54e6160e9c79e9f7348ba32e9c", size = 17016135, upload-time = "2026-03-09T07:56:39.337Z" }, + { url = "https://files.pythonhosted.org/packages/f7/b1/6a88e888052eed951afed7a142dcdf3b149a030ca59b4c71eef085858e43/numpy-2.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:737f630a337364665aba3b5a77e56a68cc42d350edd010c345d65a3efa3addcc", size = 18345816, upload-time = "2026-03-09T07:56:42.31Z" }, + { url = "https://files.pythonhosted.org/packages/f3/8f/103a60c5f8c3d7fc678c19cd7b2476110da689ccb80bc18050efbaeae183/numpy-2.4.3-cp312-cp312-win32.whl", hash = "sha256:26952e18d82a1dbbc2f008d402021baa8d6fc8e84347a2072a25e08b46d698b9", size = 5960132, upload-time = "2026-03-09T07:56:44.851Z" }, + { url = "https://files.pythonhosted.org/packages/d7/7c/f5ee1bf6ed888494978046a809df2882aad35d414b622893322df7286879/numpy-2.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:65f3c2455188f09678355f5cae1f959a06b778bc66d535da07bf2ef20cd319d5", size = 12316144, upload-time = "2026-03-09T07:56:47.057Z" }, + { url = "https://files.pythonhosted.org/packages/71/46/8d1cb3f7a00f2fb6394140e7e6623696e54c6318a9d9691bb4904672cf42/numpy-2.4.3-cp312-cp312-win_arm64.whl", hash = "sha256:2abad5c7fef172b3377502bde47892439bae394a71bc329f31df0fd829b41a9e", size = 10220364, upload-time = "2026-03-09T07:56:49.849Z" }, + { url = "https://files.pythonhosted.org/packages/b6/d0/1fe47a98ce0df229238b77611340aff92d52691bcbc10583303181abf7fc/numpy-2.4.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b346845443716c8e542d54112966383b448f4a3ba5c66409771b8c0889485dd3", size = 16665297, upload-time = "2026-03-09T07:56:52.296Z" }, + { url = "https://files.pythonhosted.org/packages/27/d9/4e7c3f0e68dfa91f21c6fb6cf839bc829ec920688b1ce7ec722b1a6202fb/numpy-2.4.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2629289168f4897a3c4e23dc98d6f1731f0fc0fe52fb9db19f974041e4cc12b9", size = 14691853, upload-time = "2026-03-09T07:56:54.992Z" }, + { url = "https://files.pythonhosted.org/packages/3a/66/bd096b13a87549683812b53ab211e6d413497f84e794fb3c39191948da97/numpy-2.4.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:bb2e3cf95854233799013779216c57e153c1ee67a0bf92138acca0e429aefaee", size = 5198435, upload-time = "2026-03-09T07:56:57.184Z" }, + { url = "https://files.pythonhosted.org/packages/a2/2f/687722910b5a5601de2135c891108f51dfc873d8e43c8ed9f4ebb440b4a2/numpy-2.4.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:7f3408ff897f8ab07a07fbe2823d7aee6ff644c097cc1f90382511fe982f647f", size = 6546347, upload-time = "2026-03-09T07:56:59.531Z" }, + { url = "https://files.pythonhosted.org/packages/bf/ec/7971c4e98d86c564750393fab8d7d83d0a9432a9d78bb8a163a6dc59967a/numpy-2.4.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:decb0eb8a53c3b009b0962378065589685d66b23467ef5dac16cbe818afde27f", size = 15664626, upload-time = "2026-03-09T07:57:01.385Z" }, + { url = "https://files.pythonhosted.org/packages/7e/eb/7daecbea84ec935b7fc732e18f532073064a3816f0932a40a17f3349185f/numpy-2.4.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d5f51900414fc9204a0e0da158ba2ac52b75656e7dce7e77fb9f84bfa343b4cc", size = 16608916, upload-time = "2026-03-09T07:57:04.008Z" }, + { url = "https://files.pythonhosted.org/packages/df/58/2a2b4a817ffd7472dca4421d9f0776898b364154e30c95f42195041dc03b/numpy-2.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6bd06731541f89cdc01b261ba2c9e037f1543df7472517836b78dfb15bd6e476", size = 17015824, upload-time = "2026-03-09T07:57:06.347Z" }, + { url = "https://files.pythonhosted.org/packages/4a/ca/627a828d44e78a418c55f82dd4caea8ea4a8ef24e5144d9e71016e52fb40/numpy-2.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:22654fe6be0e5206f553a9250762c653d3698e46686eee53b399ab90da59bd92", size = 18334581, upload-time = "2026-03-09T07:57:09.114Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c0/76f93962fc79955fcba30a429b62304332345f22d4daec1cb33653425643/numpy-2.4.3-cp313-cp313-win32.whl", hash = "sha256:d71e379452a2f670ccb689ec801b1218cd3983e253105d6e83780967e899d687", size = 5958618, upload-time = "2026-03-09T07:57:11.432Z" }, + { url = "https://files.pythonhosted.org/packages/b1/3c/88af0040119209b9b5cb59485fa48b76f372c73068dbf9254784b975ac53/numpy-2.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:0a60e17a14d640f49146cb38e3f105f571318db7826d9b6fef7e4dce758faecd", size = 12312824, upload-time = "2026-03-09T07:57:13.586Z" }, + { url = "https://files.pythonhosted.org/packages/58/ce/3d07743aced3d173f877c3ef6a454c2174ba42b584ab0b7e6d99374f51ed/numpy-2.4.3-cp313-cp313-win_arm64.whl", hash = "sha256:c9619741e9da2059cd9c3f206110b97583c7152c1dc9f8aafd4beb450ac1c89d", size = 10221218, upload-time = "2026-03-09T07:57:16.183Z" }, + { url = "https://files.pythonhosted.org/packages/62/09/d96b02a91d09e9d97862f4fc8bfebf5400f567d8eb1fe4b0cc4795679c15/numpy-2.4.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7aa4e54f6469300ebca1d9eb80acd5253cdfa36f2c03d79a35883687da430875", size = 14819570, upload-time = "2026-03-09T07:57:18.564Z" }, + { url = "https://files.pythonhosted.org/packages/b5/ca/0b1aba3905fdfa3373d523b2b15b19029f4f3031c87f4066bd9d20ef6c6b/numpy-2.4.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d1b90d840b25874cf5cd20c219af10bac3667db3876d9a495609273ebe679070", size = 5326113, upload-time = "2026-03-09T07:57:21.052Z" }, + { url = "https://files.pythonhosted.org/packages/c0/63/406e0fd32fcaeb94180fd6a4c41e55736d676c54346b7efbce548b94a914/numpy-2.4.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a749547700de0a20a6718293396ec237bb38218049cfce788e08fcb716e8cf73", size = 6646370, upload-time = "2026-03-09T07:57:22.804Z" }, + { url = "https://files.pythonhosted.org/packages/b6/d0/10f7dc157d4b37af92720a196be6f54f889e90dcd30dce9dc657ed92c257/numpy-2.4.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94f3c4a151a2e529adf49c1d54f0f57ff8f9b233ee4d44af623a81553ab86368", size = 15723499, upload-time = "2026-03-09T07:57:24.693Z" }, + { url = "https://files.pythonhosted.org/packages/66/f1/d1c2bf1161396629701bc284d958dc1efa3a5a542aab83cf11ee6eb4cba5/numpy-2.4.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:22c31dc07025123aedf7f2db9e91783df13f1776dc52c6b22c620870dc0fab22", size = 16657164, upload-time = "2026-03-09T07:57:27.676Z" }, + { url = "https://files.pythonhosted.org/packages/1a/be/cca19230b740af199ac47331a21c71e7a3d0ba59661350483c1600d28c37/numpy-2.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:148d59127ac95979d6f07e4d460f934ebdd6eed641db9c0db6c73026f2b2101a", size = 17081544, upload-time = "2026-03-09T07:57:30.664Z" }, + { url = "https://files.pythonhosted.org/packages/b9/c5/9602b0cbb703a0936fb40f8a95407e8171935b15846de2f0776e08af04c7/numpy-2.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a97cbf7e905c435865c2d939af3d93f99d18eaaa3cabe4256f4304fb51604349", size = 18380290, upload-time = "2026-03-09T07:57:33.763Z" }, + { url = "https://files.pythonhosted.org/packages/ed/81/9f24708953cd30be9ee36ec4778f4b112b45165812f2ada4cc5ea1c1f254/numpy-2.4.3-cp313-cp313t-win32.whl", hash = "sha256:be3b8487d725a77acccc9924f65fd8bce9af7fac8c9820df1049424a2115af6c", size = 6082814, upload-time = "2026-03-09T07:57:36.491Z" }, + { url = "https://files.pythonhosted.org/packages/e2/9e/52f6eaa13e1a799f0ab79066c17f7016a4a8ae0c1aefa58c82b4dab690b4/numpy-2.4.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1ec84fd7c8e652b0f4aaaf2e6e9cc8eaa9b1b80a537e06b2e3a2fb176eedcb26", size = 12452673, upload-time = "2026-03-09T07:57:38.281Z" }, + { url = "https://files.pythonhosted.org/packages/c4/04/b8cece6ead0b30c9fbd99bb835ad7ea0112ac5f39f069788c5558e3b1ab2/numpy-2.4.3-cp313-cp313t-win_arm64.whl", hash = "sha256:120df8c0a81ebbf5b9020c91439fccd85f5e018a927a39f624845be194a2be02", size = 10290907, upload-time = "2026-03-09T07:57:40.747Z" }, + { url = "https://files.pythonhosted.org/packages/70/ae/3936f79adebf8caf81bd7a599b90a561334a658be4dcc7b6329ebf4ee8de/numpy-2.4.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:5884ce5c7acfae1e4e1b6fde43797d10aa506074d25b531b4f54bde33c0c31d4", size = 16664563, upload-time = "2026-03-09T07:57:43.817Z" }, + { url = "https://files.pythonhosted.org/packages/9b/62/760f2b55866b496bb1fa7da2a6db076bef908110e568b02fcfc1422e2a3a/numpy-2.4.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:297837823f5bc572c5f9379b0c9f3a3365f08492cbdc33bcc3af174372ebb168", size = 14702161, upload-time = "2026-03-09T07:57:46.169Z" }, + { url = "https://files.pythonhosted.org/packages/32/af/a7a39464e2c0a21526fb4fb76e346fb172ebc92f6d1c7a07c2c139cc17b1/numpy-2.4.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:a111698b4a3f8dcbe54c64a7708f049355abd603e619013c346553c1fd4ca90b", size = 5208738, upload-time = "2026-03-09T07:57:48.506Z" }, + { url = "https://files.pythonhosted.org/packages/29/8c/2a0cf86a59558fa078d83805589c2de490f29ed4fb336c14313a161d358a/numpy-2.4.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:4bd4741a6a676770e0e97fe9ab2e51de01183df3dcbcec591d26d331a40de950", size = 6543618, upload-time = "2026-03-09T07:57:50.591Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b8/612ce010c0728b1c363fa4ea3aa4c22fe1c5da1de008486f8c2f5cb92fae/numpy-2.4.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:54f29b877279d51e210e0c80709ee14ccbbad647810e8f3d375561c45ef613dd", size = 15680676, upload-time = "2026-03-09T07:57:52.34Z" }, + { url = "https://files.pythonhosted.org/packages/a9/7e/4f120ecc54ba26ddf3dc348eeb9eb063f421de65c05fc961941798feea18/numpy-2.4.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:679f2a834bae9020f81534671c56fd0cc76dd7e5182f57131478e23d0dc59e24", size = 16613492, upload-time = "2026-03-09T07:57:54.91Z" }, + { url = "https://files.pythonhosted.org/packages/2c/86/1b6020db73be330c4b45d5c6ee4295d59cfeef0e3ea323959d053e5a6909/numpy-2.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d84f0f881cb2225c2dfd7f78a10a5645d487a496c6668d6cc39f0f114164f3d0", size = 17031789, upload-time = "2026-03-09T07:57:57.641Z" }, + { url = "https://files.pythonhosted.org/packages/07/3a/3b90463bf41ebc21d1b7e06079f03070334374208c0f9a1f05e4ae8455e7/numpy-2.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d213c7e6e8d211888cc359bab7199670a00f5b82c0978b9d1c75baf1eddbeac0", size = 18339941, upload-time = "2026-03-09T07:58:00.577Z" }, + { url = "https://files.pythonhosted.org/packages/a8/74/6d736c4cd962259fd8bae9be27363eb4883a2f9069763747347544c2a487/numpy-2.4.3-cp314-cp314-win32.whl", hash = "sha256:52077feedeff7c76ed7c9f1a0428558e50825347b7545bbb8523da2cd55c547a", size = 6007503, upload-time = "2026-03-09T07:58:03.331Z" }, + { url = "https://files.pythonhosted.org/packages/48/39/c56ef87af669364356bb011922ef0734fc49dad51964568634c72a009488/numpy-2.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:0448e7f9caefb34b4b7dd2b77f21e8906e5d6f0365ad525f9f4f530b13df2afc", size = 12444915, upload-time = "2026-03-09T07:58:06.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/1f/ab8528e38d295fd349310807496fabb7cf9fe2e1f70b97bc20a483ea9d4a/numpy-2.4.3-cp314-cp314-win_arm64.whl", hash = "sha256:b44fd60341c4d9783039598efadd03617fa28d041fc37d22b62d08f2027fa0e7", size = 10494875, upload-time = "2026-03-09T07:58:08.734Z" }, + { url = "https://files.pythonhosted.org/packages/e6/ef/b7c35e4d5ef141b836658ab21a66d1a573e15b335b1d111d31f26c8ef80f/numpy-2.4.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0a195f4216be9305a73c0e91c9b026a35f2161237cf1c6de9b681637772ea657", size = 14822225, upload-time = "2026-03-09T07:58:11.034Z" }, + { url = "https://files.pythonhosted.org/packages/cd/8d/7730fa9278cf6648639946cc816e7cc89f0d891602584697923375f801ed/numpy-2.4.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:cd32fbacb9fd1bf041bf8e89e4576b6f00b895f06d00914820ae06a616bdfef7", size = 5328769, upload-time = "2026-03-09T07:58:13.67Z" }, + { url = "https://files.pythonhosted.org/packages/47/01/d2a137317c958b074d338807c1b6a383406cdf8b8e53b075d804cc3d211d/numpy-2.4.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:2e03c05abaee1f672e9d67bc858f300b5ccba1c21397211e8d77d98350972093", size = 6649461, upload-time = "2026-03-09T07:58:15.912Z" }, + { url = "https://files.pythonhosted.org/packages/5c/34/812ce12bc0f00272a4b0ec0d713cd237cb390666eb6206323d1cc9cedbb2/numpy-2.4.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d1ce23cce91fcea443320a9d0ece9b9305d4368875bab09538f7a5b4131938a", size = 15725809, upload-time = "2026-03-09T07:58:17.787Z" }, + { url = "https://files.pythonhosted.org/packages/25/c0/2aed473a4823e905e765fee3dc2cbf504bd3e68ccb1150fbdabd5c39f527/numpy-2.4.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c59020932feb24ed49ffd03704fbab89f22aa9c0d4b180ff45542fe8918f5611", size = 16655242, upload-time = "2026-03-09T07:58:20.476Z" }, + { url = "https://files.pythonhosted.org/packages/f2/c8/7e052b2fc87aa0e86de23f20e2c42bd261c624748aa8efd2c78f7bb8d8c6/numpy-2.4.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:9684823a78a6cd6ad7511fc5e25b07947d1d5b5e2812c93fe99d7d4195130720", size = 17080660, upload-time = "2026-03-09T07:58:23.067Z" }, + { url = "https://files.pythonhosted.org/packages/f3/3d/0876746044db2adcb11549f214d104f2e1be00f07a67edbb4e2812094847/numpy-2.4.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0200b25c687033316fb39f0ff4e3e690e8957a2c3c8d22499891ec58c37a3eb5", size = 18380384, upload-time = "2026-03-09T07:58:25.839Z" }, + { url = "https://files.pythonhosted.org/packages/07/12/8160bea39da3335737b10308df4f484235fd297f556745f13092aa039d3b/numpy-2.4.3-cp314-cp314t-win32.whl", hash = "sha256:5e10da9e93247e554bb1d22f8edc51847ddd7dde52d85ce31024c1b4312bfba0", size = 6154547, upload-time = "2026-03-09T07:58:28.289Z" }, + { url = "https://files.pythonhosted.org/packages/42/f3/76534f61f80d74cc9cdf2e570d3d4eeb92c2280a27c39b0aaf471eda7b48/numpy-2.4.3-cp314-cp314t-win_amd64.whl", hash = "sha256:45f003dbdffb997a03da2d1d0cb41fbd24a87507fb41605c0420a3db5bd4667b", size = 12633645, upload-time = "2026-03-09T07:58:30.384Z" }, + { url = "https://files.pythonhosted.org/packages/1f/b6/7c0d4334c15983cec7f92a69e8ce9b1e6f31857e5ee3a413ac424e6bd63d/numpy-2.4.3-cp314-cp314t-win_arm64.whl", hash = "sha256:4d382735cecd7bcf090172489a525cd7d4087bc331f7df9f60ddc9a296cf208e", size = 10565454, upload-time = "2026-03-09T07:58:33.031Z" }, + { url = "https://files.pythonhosted.org/packages/64/e4/4dab9fb43c83719c29241c535d9e07be73bea4bc0c6686c5816d8e1b6689/numpy-2.4.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c6b124bfcafb9e8d3ed09130dbee44848c20b3e758b6bbf006e641778927c028", size = 16834892, upload-time = "2026-03-09T07:58:35.334Z" }, + { url = "https://files.pythonhosted.org/packages/c9/29/f8b6d4af90fed3dfda84ebc0df06c9833d38880c79ce954e5b661758aa31/numpy-2.4.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:76dbb9d4e43c16cf9aa711fcd8de1e2eeb27539dcefb60a1d5e9f12fae1d1ed8", size = 14893070, upload-time = "2026-03-09T07:58:37.7Z" }, + { url = "https://files.pythonhosted.org/packages/9a/04/a19b3c91dbec0a49269407f15d5753673a09832daed40c45e8150e6fa558/numpy-2.4.3-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:29363fbfa6f8ee855d7569c96ce524845e3d726d6c19b29eceec7dd555dab152", size = 5399609, upload-time = "2026-03-09T07:58:39.853Z" }, + { url = "https://files.pythonhosted.org/packages/79/34/4d73603f5420eab89ea8a67097b31364bf7c30f811d4dd84b1659c7476d9/numpy-2.4.3-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:bc71942c789ef415a37f0d4eab90341425a00d538cd0642445d30b41023d3395", size = 6714355, upload-time = "2026-03-09T07:58:42.365Z" }, + { url = "https://files.pythonhosted.org/packages/58/ad/1100d7229bb248394939a12a8074d485b655e8ed44207d328fdd7fcebc7b/numpy-2.4.3-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7e58765ad74dcebd3ef0208a5078fba32dc8ec3578fe84a604432950cd043d79", size = 15800434, upload-time = "2026-03-09T07:58:44.837Z" }, + { url = "https://files.pythonhosted.org/packages/0c/fd/16d710c085d28ba4feaf29ac60c936c9d662e390344f94a6beaa2ac9899b/numpy-2.4.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e236dbda4e1d319d681afcbb136c0c4a8e0f1a5c58ceec2adebb547357fe857", size = 16729409, upload-time = "2026-03-09T07:58:47.972Z" }, + { url = "https://files.pythonhosted.org/packages/57/a7/b35835e278c18b85206834b3aa3abe68e77a98769c59233d1f6300284781/numpy-2.4.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:4b42639cdde6d24e732ff823a3fa5b701d8acad89c4142bc1d0bd6dc85200ba5", size = 12504685, upload-time = "2026-03-09T07:58:50.525Z" }, ] [[package]] name = "packaging" -version = "24.1" +version = "26.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/65/50db4dda066951078f0a96cf12f4b9ada6e4b811516bf0262c0f4f7064d4/packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", size = 148788, upload-time = "2024-06-09T23:19:24.956Z" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/08/aa/cc0199a5f0ad350994d660967a8efb233fe0416e4639146c089643407ce6/packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124", size = 53985, upload-time = "2024-06-09T23:19:21.909Z" }, + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, ] [[package]] name = "parso" -version = "0.8.4" +version = "0.8.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/66/94/68e2e17afaa9169cf6412ab0f28623903be73d1b32e208d9e8e541bb086d/parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d", size = 400609, upload-time = "2024-04-05T09:43:55.897Z" } +sdist = { url = "https://files.pythonhosted.org/packages/81/76/a1e769043c0c0c9fe391b702539d594731a4362334cdf4dc25d0c09761e7/parso-0.8.6.tar.gz", hash = "sha256:2b9a0332696df97d454fa67b81618fd69c35a7b90327cbe6ba5c92d2c68a7bfd", size = 401621, upload-time = "2026-02-09T15:45:24.425Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18", size = 103650, upload-time = "2024-04-05T09:43:53.299Z" }, + { url = "https://files.pythonhosted.org/packages/b6/61/fae042894f4296ec49e3f193aff5d7c18440da9e48102c3315e1bc4519a7/parso-0.8.6-py2.py3-none-any.whl", hash = "sha256:2c549f800b70a5c4952197248825584cb00f033b29c692671d3bf08bf380baff", size = 106894, upload-time = "2026-02-09T15:45:21.391Z" }, ] [[package]] @@ -1369,172 +1469,175 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, ] -[[package]] -name = "pickleshare" -version = "0.7.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/b6/df3c1c9b616e9c0edbc4fbab6ddd09df9535849c64ba51fcb6531c32d4d8/pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", size = 6161, upload-time = "2018-09-25T19:17:37.249Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/41/220f49aaea88bc6fa6cba8d05ecf24676326156c23b991e80b3f2fc24c77/pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56", size = 6877, upload-time = "2018-09-25T19:17:35.817Z" }, -] - [[package]] name = "pillow" -version = "10.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cd/74/ad3d526f3bf7b6d3f408b73fde271ec69dfac8b81341a318ce825f2b3812/pillow-10.4.0.tar.gz", hash = "sha256:166c1cd4d24309b30d61f79f4a9114b7b2313d7450912277855ff5dfd7cd4a06", size = 46555059, upload-time = "2024-07-01T09:48:43.583Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/69/a31cccd538ca0b5272be2a38347f8839b97a14be104ea08b0db92f749c74/pillow-10.4.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:4d9667937cfa347525b319ae34375c37b9ee6b525440f3ef48542fcf66f2731e", size = 3509271, upload-time = "2024-07-01T09:45:22.07Z" }, - { url = "https://files.pythonhosted.org/packages/9a/9e/4143b907be8ea0bce215f2ae4f7480027473f8b61fcedfda9d851082a5d2/pillow-10.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:543f3dc61c18dafb755773efc89aae60d06b6596a63914107f75459cf984164d", size = 3375658, upload-time = "2024-07-01T09:45:25.292Z" }, - { url = "https://files.pythonhosted.org/packages/8a/25/1fc45761955f9359b1169aa75e241551e74ac01a09f487adaaf4c3472d11/pillow-10.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7928ecbf1ece13956b95d9cbcfc77137652b02763ba384d9ab508099a2eca856", size = 4332075, upload-time = "2024-07-01T09:45:27.94Z" }, - { url = "https://files.pythonhosted.org/packages/5e/dd/425b95d0151e1d6c951f45051112394f130df3da67363b6bc75dc4c27aba/pillow-10.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4d49b85c4348ea0b31ea63bc75a9f3857869174e2bf17e7aba02945cd218e6f", size = 4444808, upload-time = "2024-07-01T09:45:30.305Z" }, - { url = "https://files.pythonhosted.org/packages/b1/84/9a15cc5726cbbfe7f9f90bfb11f5d028586595907cd093815ca6644932e3/pillow-10.4.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:6c762a5b0997f5659a5ef2266abc1d8851ad7749ad9a6a5506eb23d314e4f46b", size = 4356290, upload-time = "2024-07-01T09:45:32.868Z" }, - { url = "https://files.pythonhosted.org/packages/b5/5b/6651c288b08df3b8c1e2f8c1152201e0b25d240e22ddade0f1e242fc9fa0/pillow-10.4.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a985e028fc183bf12a77a8bbf36318db4238a3ded7fa9df1b9a133f1cb79f8fc", size = 4525163, upload-time = "2024-07-01T09:45:35.279Z" }, - { url = "https://files.pythonhosted.org/packages/07/8b/34854bf11a83c248505c8cb0fcf8d3d0b459a2246c8809b967963b6b12ae/pillow-10.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:812f7342b0eee081eaec84d91423d1b4650bb9828eb53d8511bcef8ce5aecf1e", size = 4463100, upload-time = "2024-07-01T09:45:37.74Z" }, - { url = "https://files.pythonhosted.org/packages/78/63/0632aee4e82476d9cbe5200c0cdf9ba41ee04ed77887432845264d81116d/pillow-10.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ac1452d2fbe4978c2eec89fb5a23b8387aba707ac72810d9490118817d9c0b46", size = 4592880, upload-time = "2024-07-01T09:45:39.89Z" }, - { url = "https://files.pythonhosted.org/packages/df/56/b8663d7520671b4398b9d97e1ed9f583d4afcbefbda3c6188325e8c297bd/pillow-10.4.0-cp310-cp310-win32.whl", hash = "sha256:bcd5e41a859bf2e84fdc42f4edb7d9aba0a13d29a2abadccafad99de3feff984", size = 2235218, upload-time = "2024-07-01T09:45:42.771Z" }, - { url = "https://files.pythonhosted.org/packages/f4/72/0203e94a91ddb4a9d5238434ae6c1ca10e610e8487036132ea9bf806ca2a/pillow-10.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ecd85a8d3e79cd7158dec1c9e5808e821feea088e2f69a974db5edf84dc53141", size = 2554487, upload-time = "2024-07-01T09:45:45.176Z" }, - { url = "https://files.pythonhosted.org/packages/bd/52/7e7e93d7a6e4290543f17dc6f7d3af4bd0b3dd9926e2e8a35ac2282bc5f4/pillow-10.4.0-cp310-cp310-win_arm64.whl", hash = "sha256:ff337c552345e95702c5fde3158acb0625111017d0e5f24bf3acdb9cc16b90d1", size = 2243219, upload-time = "2024-07-01T09:45:47.274Z" }, - { url = "https://files.pythonhosted.org/packages/a7/62/c9449f9c3043c37f73e7487ec4ef0c03eb9c9afc91a92b977a67b3c0bbc5/pillow-10.4.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0a9ec697746f268507404647e531e92889890a087e03681a3606d9b920fbee3c", size = 3509265, upload-time = "2024-07-01T09:45:49.812Z" }, - { url = "https://files.pythonhosted.org/packages/f4/5f/491dafc7bbf5a3cc1845dc0430872e8096eb9e2b6f8161509d124594ec2d/pillow-10.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe91cb65544a1321e631e696759491ae04a2ea11d36715eca01ce07284738be", size = 3375655, upload-time = "2024-07-01T09:45:52.462Z" }, - { url = "https://files.pythonhosted.org/packages/73/d5/c4011a76f4207a3c151134cd22a1415741e42fa5ddecec7c0182887deb3d/pillow-10.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5dc6761a6efc781e6a1544206f22c80c3af4c8cf461206d46a1e6006e4429ff3", size = 4340304, upload-time = "2024-07-01T09:45:55.006Z" }, - { url = "https://files.pythonhosted.org/packages/ac/10/c67e20445a707f7a610699bba4fe050583b688d8cd2d202572b257f46600/pillow-10.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e84b6cc6a4a3d76c153a6b19270b3526a5a8ed6b09501d3af891daa2a9de7d6", size = 4452804, upload-time = "2024-07-01T09:45:58.437Z" }, - { url = "https://files.pythonhosted.org/packages/a9/83/6523837906d1da2b269dee787e31df3b0acb12e3d08f024965a3e7f64665/pillow-10.4.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbc527b519bd3aa9d7f429d152fea69f9ad37c95f0b02aebddff592688998abe", size = 4365126, upload-time = "2024-07-01T09:46:00.713Z" }, - { url = "https://files.pythonhosted.org/packages/ba/e5/8c68ff608a4203085158cff5cc2a3c534ec384536d9438c405ed6370d080/pillow-10.4.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:76a911dfe51a36041f2e756b00f96ed84677cdeb75d25c767f296c1c1eda1319", size = 4533541, upload-time = "2024-07-01T09:46:03.235Z" }, - { url = "https://files.pythonhosted.org/packages/f4/7c/01b8dbdca5bc6785573f4cee96e2358b0918b7b2c7b60d8b6f3abf87a070/pillow-10.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:59291fb29317122398786c2d44427bbd1a6d7ff54017075b22be9d21aa59bd8d", size = 4471616, upload-time = "2024-07-01T09:46:05.356Z" }, - { url = "https://files.pythonhosted.org/packages/c8/57/2899b82394a35a0fbfd352e290945440e3b3785655a03365c0ca8279f351/pillow-10.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:416d3a5d0e8cfe4f27f574362435bc9bae57f679a7158e0096ad2beb427b8696", size = 4600802, upload-time = "2024-07-01T09:46:08.145Z" }, - { url = "https://files.pythonhosted.org/packages/4d/d7/a44f193d4c26e58ee5d2d9db3d4854b2cfb5b5e08d360a5e03fe987c0086/pillow-10.4.0-cp311-cp311-win32.whl", hash = "sha256:7086cc1d5eebb91ad24ded9f58bec6c688e9f0ed7eb3dbbf1e4800280a896496", size = 2235213, upload-time = "2024-07-01T09:46:10.211Z" }, - { url = "https://files.pythonhosted.org/packages/c1/d0/5866318eec2b801cdb8c82abf190c8343d8a1cd8bf5a0c17444a6f268291/pillow-10.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cbed61494057c0f83b83eb3a310f0bf774b09513307c434d4366ed64f4128a91", size = 2554498, upload-time = "2024-07-01T09:46:12.685Z" }, - { url = "https://files.pythonhosted.org/packages/d4/c8/310ac16ac2b97e902d9eb438688de0d961660a87703ad1561fd3dfbd2aa0/pillow-10.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:f5f0c3e969c8f12dd2bb7e0b15d5c468b51e5017e01e2e867335c81903046a22", size = 2243219, upload-time = "2024-07-01T09:46:14.83Z" }, - { url = "https://files.pythonhosted.org/packages/05/cb/0353013dc30c02a8be34eb91d25e4e4cf594b59e5a55ea1128fde1e5f8ea/pillow-10.4.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:673655af3eadf4df6b5457033f086e90299fdd7a47983a13827acf7459c15d94", size = 3509350, upload-time = "2024-07-01T09:46:17.177Z" }, - { url = "https://files.pythonhosted.org/packages/e7/cf/5c558a0f247e0bf9cec92bff9b46ae6474dd736f6d906315e60e4075f737/pillow-10.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:866b6942a92f56300012f5fbac71f2d610312ee65e22f1aa2609e491284e5597", size = 3374980, upload-time = "2024-07-01T09:46:19.169Z" }, - { url = "https://files.pythonhosted.org/packages/84/48/6e394b86369a4eb68b8a1382c78dc092245af517385c086c5094e3b34428/pillow-10.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29dbdc4207642ea6aad70fbde1a9338753d33fb23ed6956e706936706f52dd80", size = 4343799, upload-time = "2024-07-01T09:46:21.883Z" }, - { url = "https://files.pythonhosted.org/packages/3b/f3/a8c6c11fa84b59b9df0cd5694492da8c039a24cd159f0f6918690105c3be/pillow-10.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf2342ac639c4cf38799a44950bbc2dfcb685f052b9e262f446482afaf4bffca", size = 4459973, upload-time = "2024-07-01T09:46:24.321Z" }, - { url = "https://files.pythonhosted.org/packages/7d/1b/c14b4197b80150fb64453585247e6fb2e1d93761fa0fa9cf63b102fde822/pillow-10.4.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:f5b92f4d70791b4a67157321c4e8225d60b119c5cc9aee8ecf153aace4aad4ef", size = 4370054, upload-time = "2024-07-01T09:46:26.825Z" }, - { url = "https://files.pythonhosted.org/packages/55/77/40daddf677897a923d5d33329acd52a2144d54a9644f2a5422c028c6bf2d/pillow-10.4.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:86dcb5a1eb778d8b25659d5e4341269e8590ad6b4e8b44d9f4b07f8d136c414a", size = 4539484, upload-time = "2024-07-01T09:46:29.355Z" }, - { url = "https://files.pythonhosted.org/packages/40/54/90de3e4256b1207300fb2b1d7168dd912a2fb4b2401e439ba23c2b2cabde/pillow-10.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:780c072c2e11c9b2c7ca37f9a2ee8ba66f44367ac3e5c7832afcfe5104fd6d1b", size = 4477375, upload-time = "2024-07-01T09:46:31.756Z" }, - { url = "https://files.pythonhosted.org/packages/13/24/1bfba52f44193860918ff7c93d03d95e3f8748ca1de3ceaf11157a14cf16/pillow-10.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37fb69d905be665f68f28a8bba3c6d3223c8efe1edf14cc4cfa06c241f8c81d9", size = 4608773, upload-time = "2024-07-01T09:46:33.73Z" }, - { url = "https://files.pythonhosted.org/packages/55/04/5e6de6e6120451ec0c24516c41dbaf80cce1b6451f96561235ef2429da2e/pillow-10.4.0-cp312-cp312-win32.whl", hash = "sha256:7dfecdbad5c301d7b5bde160150b4db4c659cee2b69589705b6f8a0c509d9f42", size = 2235690, upload-time = "2024-07-01T09:46:36.587Z" }, - { url = "https://files.pythonhosted.org/packages/74/0a/d4ce3c44bca8635bd29a2eab5aa181b654a734a29b263ca8efe013beea98/pillow-10.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:1d846aea995ad352d4bdcc847535bd56e0fd88d36829d2c90be880ef1ee4668a", size = 2554951, upload-time = "2024-07-01T09:46:38.777Z" }, - { url = "https://files.pythonhosted.org/packages/b5/ca/184349ee40f2e92439be9b3502ae6cfc43ac4b50bc4fc6b3de7957563894/pillow-10.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:e553cad5179a66ba15bb18b353a19020e73a7921296a7979c4a2b7f6a5cd57f9", size = 2243427, upload-time = "2024-07-01T09:46:43.15Z" }, - { url = "https://files.pythonhosted.org/packages/c3/00/706cebe7c2c12a6318aabe5d354836f54adff7156fd9e1bd6c89f4ba0e98/pillow-10.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8bc1a764ed8c957a2e9cacf97c8b2b053b70307cf2996aafd70e91a082e70df3", size = 3525685, upload-time = "2024-07-01T09:46:45.194Z" }, - { url = "https://files.pythonhosted.org/packages/cf/76/f658cbfa49405e5ecbfb9ba42d07074ad9792031267e782d409fd8fe7c69/pillow-10.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6209bb41dc692ddfee4942517c19ee81b86c864b626dbfca272ec0f7cff5d9fb", size = 3374883, upload-time = "2024-07-01T09:46:47.331Z" }, - { url = "https://files.pythonhosted.org/packages/46/2b/99c28c4379a85e65378211971c0b430d9c7234b1ec4d59b2668f6299e011/pillow-10.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bee197b30783295d2eb680b311af15a20a8b24024a19c3a26431ff83eb8d1f70", size = 4339837, upload-time = "2024-07-01T09:46:49.647Z" }, - { url = "https://files.pythonhosted.org/packages/f1/74/b1ec314f624c0c43711fdf0d8076f82d9d802afd58f1d62c2a86878e8615/pillow-10.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ef61f5dd14c300786318482456481463b9d6b91ebe5ef12f405afbba77ed0be", size = 4455562, upload-time = "2024-07-01T09:46:51.811Z" }, - { url = "https://files.pythonhosted.org/packages/4a/2a/4b04157cb7b9c74372fa867096a1607e6fedad93a44deeff553ccd307868/pillow-10.4.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:297e388da6e248c98bc4a02e018966af0c5f92dfacf5a5ca22fa01cb3179bca0", size = 4366761, upload-time = "2024-07-01T09:46:53.961Z" }, - { url = "https://files.pythonhosted.org/packages/ac/7b/8f1d815c1a6a268fe90481232c98dd0e5fa8c75e341a75f060037bd5ceae/pillow-10.4.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e4db64794ccdf6cb83a59d73405f63adbe2a1887012e308828596100a0b2f6cc", size = 4536767, upload-time = "2024-07-01T09:46:56.664Z" }, - { url = "https://files.pythonhosted.org/packages/e5/77/05fa64d1f45d12c22c314e7b97398ffb28ef2813a485465017b7978b3ce7/pillow-10.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd2880a07482090a3bcb01f4265f1936a903d70bc740bfcb1fd4e8a2ffe5cf5a", size = 4477989, upload-time = "2024-07-01T09:46:58.977Z" }, - { url = "https://files.pythonhosted.org/packages/12/63/b0397cfc2caae05c3fb2f4ed1b4fc4fc878f0243510a7a6034ca59726494/pillow-10.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b35b21b819ac1dbd1233317adeecd63495f6babf21b7b2512d244ff6c6ce309", size = 4610255, upload-time = "2024-07-01T09:47:01.189Z" }, - { url = "https://files.pythonhosted.org/packages/7b/f9/cfaa5082ca9bc4a6de66ffe1c12c2d90bf09c309a5f52b27759a596900e7/pillow-10.4.0-cp313-cp313-win32.whl", hash = "sha256:551d3fd6e9dc15e4c1eb6fc4ba2b39c0c7933fa113b220057a34f4bb3268a060", size = 2235603, upload-time = "2024-07-01T09:47:03.918Z" }, - { url = "https://files.pythonhosted.org/packages/01/6a/30ff0eef6e0c0e71e55ded56a38d4859bf9d3634a94a88743897b5f96936/pillow-10.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:030abdbe43ee02e0de642aee345efa443740aa4d828bfe8e2eb11922ea6a21ea", size = 2554972, upload-time = "2024-07-01T09:47:06.152Z" }, - { url = "https://files.pythonhosted.org/packages/48/2c/2e0a52890f269435eee38b21c8218e102c621fe8d8df8b9dd06fabf879ba/pillow-10.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:5b001114dd152cfd6b23befeb28d7aee43553e2402c9f159807bf55f33af8a8d", size = 2243375, upload-time = "2024-07-01T09:47:09.065Z" }, - { url = "https://files.pythonhosted.org/packages/56/70/f40009702a477ce87d8d9faaa4de51d6562b3445d7a314accd06e4ffb01d/pillow-10.4.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:8d4d5063501b6dd4024b8ac2f04962d661222d120381272deea52e3fc52d3736", size = 3509213, upload-time = "2024-07-01T09:47:11.662Z" }, - { url = "https://files.pythonhosted.org/packages/10/43/105823d233c5e5d31cea13428f4474ded9d961652307800979a59d6a4276/pillow-10.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c1ee6f42250df403c5f103cbd2768a28fe1a0ea1f0f03fe151c8741e1469c8b", size = 3375883, upload-time = "2024-07-01T09:47:14.453Z" }, - { url = "https://files.pythonhosted.org/packages/3c/ad/7850c10bac468a20c918f6a5dbba9ecd106ea1cdc5db3c35e33a60570408/pillow-10.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15e02e9bb4c21e39876698abf233c8c579127986f8207200bc8a8f6bb27acf2", size = 4330810, upload-time = "2024-07-01T09:47:16.695Z" }, - { url = "https://files.pythonhosted.org/packages/84/4c/69bbed9e436ac22f9ed193a2b64f64d68fcfbc9f4106249dc7ed4889907b/pillow-10.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a8d4bade9952ea9a77d0c3e49cbd8b2890a399422258a77f357b9cc9be8d680", size = 4444341, upload-time = "2024-07-01T09:47:19.334Z" }, - { url = "https://files.pythonhosted.org/packages/8f/4f/c183c63828a3f37bf09644ce94cbf72d4929b033b109160a5379c2885932/pillow-10.4.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:43efea75eb06b95d1631cb784aa40156177bf9dd5b4b03ff38979e048258bc6b", size = 4356005, upload-time = "2024-07-01T09:47:21.805Z" }, - { url = "https://files.pythonhosted.org/packages/fb/ad/435fe29865f98a8fbdc64add8875a6e4f8c97749a93577a8919ec6f32c64/pillow-10.4.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:950be4d8ba92aca4b2bb0741285a46bfae3ca699ef913ec8416c1b78eadd64cd", size = 4525201, upload-time = "2024-07-01T09:47:24.457Z" }, - { url = "https://files.pythonhosted.org/packages/80/74/be8bf8acdfd70e91f905a12ae13cfb2e17c0f1da745c40141e26d0971ff5/pillow-10.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d7480af14364494365e89d6fddc510a13e5a2c3584cb19ef65415ca57252fb84", size = 4460635, upload-time = "2024-07-01T09:47:26.841Z" }, - { url = "https://files.pythonhosted.org/packages/e4/90/763616e66dc9ad59c9b7fb58f863755e7934ef122e52349f62c7742b82d3/pillow-10.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:73664fe514b34c8f02452ffb73b7a92c6774e39a647087f83d67f010eb9a0cf0", size = 4590283, upload-time = "2024-07-01T09:47:29.247Z" }, - { url = "https://files.pythonhosted.org/packages/69/66/03002cb5b2c27bb519cba63b9f9aa3709c6f7a5d3b285406c01f03fb77e5/pillow-10.4.0-cp38-cp38-win32.whl", hash = "sha256:e88d5e6ad0d026fba7bdab8c3f225a69f063f116462c49892b0149e21b6c0a0e", size = 2235185, upload-time = "2024-07-01T09:47:32.205Z" }, - { url = "https://files.pythonhosted.org/packages/f2/75/3cb820b2812405fc7feb3d0deb701ef0c3de93dc02597115e00704591bc9/pillow-10.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:5161eef006d335e46895297f642341111945e2c1c899eb406882a6c61a4357ab", size = 2554594, upload-time = "2024-07-01T09:47:34.285Z" }, - { url = "https://files.pythonhosted.org/packages/31/85/955fa5400fa8039921f630372cfe5056eed6e1b8e0430ee4507d7de48832/pillow-10.4.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0ae24a547e8b711ccaaf99c9ae3cd975470e1a30caa80a6aaee9a2f19c05701d", size = 3509283, upload-time = "2024-07-01T09:47:36.394Z" }, - { url = "https://files.pythonhosted.org/packages/23/9c/343827267eb28d41cd82b4180d33b10d868af9077abcec0af9793aa77d2d/pillow-10.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:298478fe4f77a4408895605f3482b6cc6222c018b2ce565c2b6b9c354ac3229b", size = 3375691, upload-time = "2024-07-01T09:47:38.853Z" }, - { url = "https://files.pythonhosted.org/packages/60/a3/7ebbeabcd341eab722896d1a5b59a3df98c4b4d26cf4b0385f8aa94296f7/pillow-10.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:134ace6dc392116566980ee7436477d844520a26a4b1bd4053f6f47d096997fd", size = 4328295, upload-time = "2024-07-01T09:47:41.765Z" }, - { url = "https://files.pythonhosted.org/packages/32/3f/c02268d0c6fb6b3958bdda673c17b315c821d97df29ae6969f20fb49388a/pillow-10.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930044bb7679ab003b14023138b50181899da3f25de50e9dbee23b61b4de2126", size = 4440810, upload-time = "2024-07-01T09:47:44.27Z" }, - { url = "https://files.pythonhosted.org/packages/67/5d/1c93c8cc35f2fdd3d6cc7e4ad72d203902859a2867de6ad957d9b708eb8d/pillow-10.4.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c76e5786951e72ed3686e122d14c5d7012f16c8303a674d18cdcd6d89557fc5b", size = 4352283, upload-time = "2024-07-01T09:47:46.673Z" }, - { url = "https://files.pythonhosted.org/packages/bc/a8/8655557c9c7202b8abbd001f61ff36711cefaf750debcaa1c24d154ef602/pillow-10.4.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b2724fdb354a868ddf9a880cb84d102da914e99119211ef7ecbdc613b8c96b3c", size = 4521800, upload-time = "2024-07-01T09:47:48.813Z" }, - { url = "https://files.pythonhosted.org/packages/58/78/6f95797af64d137124f68af1bdaa13b5332da282b86031f6fa70cf368261/pillow-10.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dbc6ae66518ab3c5847659e9988c3b60dc94ffb48ef9168656e0019a93dbf8a1", size = 4459177, upload-time = "2024-07-01T09:47:52.104Z" }, - { url = "https://files.pythonhosted.org/packages/8a/6d/2b3ce34f1c4266d79a78c9a51d1289a33c3c02833fe294ef0dcbb9cba4ed/pillow-10.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:06b2f7898047ae93fad74467ec3d28fe84f7831370e3c258afa533f81ef7f3df", size = 4589079, upload-time = "2024-07-01T09:47:54.999Z" }, - { url = "https://files.pythonhosted.org/packages/e3/e0/456258c74da1ff5bf8ef1eab06a95ca994d8b9ed44c01d45c3f8cbd1db7e/pillow-10.4.0-cp39-cp39-win32.whl", hash = "sha256:7970285ab628a3779aecc35823296a7869f889b8329c16ad5a71e4901a3dc4ef", size = 2235247, upload-time = "2024-07-01T09:47:57.666Z" }, - { url = "https://files.pythonhosted.org/packages/37/f8/bef952bdb32aa53741f58bf21798642209e994edc3f6598f337f23d5400a/pillow-10.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:961a7293b2457b405967af9c77dcaa43cc1a8cd50d23c532e62d48ab6cdd56f5", size = 2554479, upload-time = "2024-07-01T09:47:59.881Z" }, - { url = "https://files.pythonhosted.org/packages/bb/8e/805201619cad6651eef5fc1fdef913804baf00053461522fabbc5588ea12/pillow-10.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:32cda9e3d601a52baccb2856b8ea1fc213c90b340c542dcef77140dfa3278a9e", size = 2243226, upload-time = "2024-07-01T09:48:02.508Z" }, - { url = "https://files.pythonhosted.org/packages/38/30/095d4f55f3a053392f75e2eae45eba3228452783bab3d9a920b951ac495c/pillow-10.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5b4815f2e65b30f5fbae9dfffa8636d992d49705723fe86a3661806e069352d4", size = 3493889, upload-time = "2024-07-01T09:48:04.815Z" }, - { url = "https://files.pythonhosted.org/packages/f3/e8/4ff79788803a5fcd5dc35efdc9386af153569853767bff74540725b45863/pillow-10.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:8f0aef4ef59694b12cadee839e2ba6afeab89c0f39a3adc02ed51d109117b8da", size = 3346160, upload-time = "2024-07-01T09:48:07.206Z" }, - { url = "https://files.pythonhosted.org/packages/d7/ac/4184edd511b14f760c73f5bb8a5d6fd85c591c8aff7c2229677a355c4179/pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f4727572e2918acaa9077c919cbbeb73bd2b3ebcfe033b72f858fc9fbef0026", size = 3435020, upload-time = "2024-07-01T09:48:09.66Z" }, - { url = "https://files.pythonhosted.org/packages/da/21/1749cd09160149c0a246a81d646e05f35041619ce76f6493d6a96e8d1103/pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff25afb18123cea58a591ea0244b92eb1e61a1fd497bf6d6384f09bc3262ec3e", size = 3490539, upload-time = "2024-07-01T09:48:12.529Z" }, - { url = "https://files.pythonhosted.org/packages/b6/f5/f71fe1888b96083b3f6dfa0709101f61fc9e972c0c8d04e9d93ccef2a045/pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dc3e2db6ba09ffd7d02ae9141cfa0ae23393ee7687248d46a7507b75d610f4f5", size = 3476125, upload-time = "2024-07-01T09:48:14.891Z" }, - { url = "https://files.pythonhosted.org/packages/96/b9/c0362c54290a31866c3526848583a2f45a535aa9d725fd31e25d318c805f/pillow-10.4.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:02a2be69f9c9b8c1e97cf2713e789d4e398c751ecfd9967c18d0ce304efbf885", size = 3579373, upload-time = "2024-07-01T09:48:17.601Z" }, - { url = "https://files.pythonhosted.org/packages/52/3b/ce7a01026a7cf46e5452afa86f97a5e88ca97f562cafa76570178ab56d8d/pillow-10.4.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0755ffd4a0c6f267cccbae2e9903d95477ca2f77c4fcf3a3a09570001856c8a5", size = 2554661, upload-time = "2024-07-01T09:48:20.293Z" }, - { url = "https://files.pythonhosted.org/packages/e1/1f/5a9fcd6ced51633c22481417e11b1b47d723f64fb536dfd67c015eb7f0ab/pillow-10.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:a02364621fe369e06200d4a16558e056fe2805d3468350df3aef21e00d26214b", size = 3493850, upload-time = "2024-07-01T09:48:23.03Z" }, - { url = "https://files.pythonhosted.org/packages/cb/e6/3ea4755ed5320cb62aa6be2f6de47b058c6550f752dd050e86f694c59798/pillow-10.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:1b5dea9831a90e9d0721ec417a80d4cbd7022093ac38a568db2dd78363b00908", size = 3346118, upload-time = "2024-07-01T09:48:25.256Z" }, - { url = "https://files.pythonhosted.org/packages/0a/22/492f9f61e4648422b6ca39268ec8139277a5b34648d28f400faac14e0f48/pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b885f89040bb8c4a1573566bbb2f44f5c505ef6e74cec7ab9068c900047f04b", size = 3434958, upload-time = "2024-07-01T09:48:28.078Z" }, - { url = "https://files.pythonhosted.org/packages/f9/19/559a48ad4045704bb0547965b9a9345f5cd461347d977a56d178db28819e/pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87dd88ded2e6d74d31e1e0a99a726a6765cda32d00ba72dc37f0651f306daaa8", size = 3490340, upload-time = "2024-07-01T09:48:30.734Z" }, - { url = "https://files.pythonhosted.org/packages/d9/de/cebaca6fb79905b3a1aa0281d238769df3fb2ede34fd7c0caa286575915a/pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:2db98790afc70118bd0255c2eeb465e9767ecf1f3c25f9a1abb8ffc8cfd1fe0a", size = 3476048, upload-time = "2024-07-01T09:48:33.292Z" }, - { url = "https://files.pythonhosted.org/packages/71/f0/86d5b2f04693b0116a01d75302b0a307800a90d6c351a8aa4f8ae76cd499/pillow-10.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7baece4ce06bade126fb84b8af1c33439a76d8a6fd818970215e0560ca28c27", size = 3579366, upload-time = "2024-07-01T09:48:36.527Z" }, - { url = "https://files.pythonhosted.org/packages/37/ae/2dbfc38cc4fd14aceea14bc440d5151b21f64c4c3ba3f6f4191610b7ee5d/pillow-10.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cfdd747216947628af7b259d274771d84db2268ca062dd5faf373639d00113a3", size = 2554652, upload-time = "2024-07-01T09:48:38.789Z" }, -] - -[[package]] -name = "pkgutil-resolve-name" -version = "1.3.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/70/f2/f2891a9dc37398696ddd945012b90ef8d0a034f0012e3f83c3f7a70b0f79/pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174", size = 5054, upload-time = "2021-07-21T08:19:05.096Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/5c/3d4882ba113fd55bdba9326c1e4c62a15e674a2501de4869e6bd6301f87e/pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e", size = 4734, upload-time = "2021-07-21T08:19:03.106Z" }, +version = "12.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1f/42/5c74462b4fd957fcd7b13b04fb3205ff8349236ea74c7c375766d6c82288/pillow-12.1.1.tar.gz", hash = "sha256:9ad8fa5937ab05218e2b6a4cff30295ad35afd2f83ac592e68c0d871bb0fdbc4", size = 46980264, upload-time = "2026-02-11T04:23:07.146Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/30/5bd3d794762481f8c8ae9c80e7b76ecea73b916959eb587521358ef0b2f9/pillow-12.1.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1f1625b72740fdda5d77b4def688eb8fd6490975d06b909fd19f13f391e077e0", size = 5304099, upload-time = "2026-02-11T04:20:06.13Z" }, + { url = "https://files.pythonhosted.org/packages/bd/c1/aab9e8f3eeb4490180e357955e15c2ef74b31f64790ff356c06fb6cf6d84/pillow-12.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:178aa072084bd88ec759052feca8e56cbb14a60b39322b99a049e58090479713", size = 4657880, upload-time = "2026-02-11T04:20:09.291Z" }, + { url = "https://files.pythonhosted.org/packages/f1/0a/9879e30d56815ad529d3985aeff5af4964202425c27261a6ada10f7cbf53/pillow-12.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b66e95d05ba806247aaa1561f080abc7975daf715c30780ff92a20e4ec546e1b", size = 6222587, upload-time = "2026-02-11T04:20:10.82Z" }, + { url = "https://files.pythonhosted.org/packages/5a/5f/a1b72ff7139e4f89014e8d451442c74a774d5c43cd938fb0a9f878576b37/pillow-12.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:89c7e895002bbe49cdc5426150377cbbc04767d7547ed145473f496dfa40408b", size = 8027678, upload-time = "2026-02-11T04:20:12.455Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c2/c7cb187dac79a3d22c3ebeae727abee01e077c8c7d930791dc592f335153/pillow-12.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a5cbdcddad0af3da87cb16b60d23648bc3b51967eb07223e9fed77a82b457c4", size = 6335777, upload-time = "2026-02-11T04:20:14.441Z" }, + { url = "https://files.pythonhosted.org/packages/0c/7b/f9b09a7804ec7336effb96c26d37c29d27225783dc1501b7d62dcef6ae25/pillow-12.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9f51079765661884a486727f0729d29054242f74b46186026582b4e4769918e4", size = 7027140, upload-time = "2026-02-11T04:20:16.387Z" }, + { url = "https://files.pythonhosted.org/packages/98/b2/2fa3c391550bd421b10849d1a2144c44abcd966daadd2f7c12e19ea988c4/pillow-12.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:99c1506ea77c11531d75e3a412832a13a71c7ebc8192ab9e4b2e355555920e3e", size = 6449855, upload-time = "2026-02-11T04:20:18.554Z" }, + { url = "https://files.pythonhosted.org/packages/96/ff/9caf4b5b950c669263c39e96c78c0d74a342c71c4f43fd031bb5cb7ceac9/pillow-12.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:36341d06738a9f66c8287cf8b876d24b18db9bd8740fa0672c74e259ad408cff", size = 7151329, upload-time = "2026-02-11T04:20:20.646Z" }, + { url = "https://files.pythonhosted.org/packages/7b/f8/4b24841f582704da675ca535935bccb32b00a6da1226820845fac4a71136/pillow-12.1.1-cp310-cp310-win32.whl", hash = "sha256:6c52f062424c523d6c4db85518774cc3d50f5539dd6eed32b8f6229b26f24d40", size = 6325574, upload-time = "2026-02-11T04:20:22.43Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f9/9f6b01c0881d7036063aa6612ef04c0e2cad96be21325a1e92d0203f8e91/pillow-12.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:c6008de247150668a705a6338156efb92334113421ceecf7438a12c9a12dab23", size = 7032347, upload-time = "2026-02-11T04:20:23.932Z" }, + { url = "https://files.pythonhosted.org/packages/79/13/c7922edded3dcdaf10c59297540b72785620abc0538872c819915746757d/pillow-12.1.1-cp310-cp310-win_arm64.whl", hash = "sha256:1a9b0ee305220b392e1124a764ee4265bd063e54a751a6b62eff69992f457fa9", size = 2453457, upload-time = "2026-02-11T04:20:25.392Z" }, + { url = "https://files.pythonhosted.org/packages/2b/46/5da1ec4a5171ee7bf1a0efa064aba70ba3d6e0788ce3f5acd1375d23c8c0/pillow-12.1.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:e879bb6cd5c73848ef3b2b48b8af9ff08c5b71ecda8048b7dd22d8a33f60be32", size = 5304084, upload-time = "2026-02-11T04:20:27.501Z" }, + { url = "https://files.pythonhosted.org/packages/78/93/a29e9bc02d1cf557a834da780ceccd54e02421627200696fcf805ebdc3fb/pillow-12.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:365b10bb9417dd4498c0e3b128018c4a624dc11c7b97d8cc54effe3b096f4c38", size = 4657866, upload-time = "2026-02-11T04:20:29.827Z" }, + { url = "https://files.pythonhosted.org/packages/13/84/583a4558d492a179d31e4aae32eadce94b9acf49c0337c4ce0b70e0a01f2/pillow-12.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d4ce8e329c93845720cd2014659ca67eac35f6433fd3050393d85f3ecef0dad5", size = 6232148, upload-time = "2026-02-11T04:20:31.329Z" }, + { url = "https://files.pythonhosted.org/packages/d5/e2/53c43334bbbb2d3b938978532fbda8e62bb6e0b23a26ce8592f36bcc4987/pillow-12.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc354a04072b765eccf2204f588a7a532c9511e8b9c7f900e1b64e3e33487090", size = 8038007, upload-time = "2026-02-11T04:20:34.225Z" }, + { url = "https://files.pythonhosted.org/packages/b8/a6/3d0e79c8a9d58150dd98e199d7c1c56861027f3829a3a60b3c2784190180/pillow-12.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7e7976bf1910a8116b523b9f9f58bf410f3e8aa330cd9a2bb2953f9266ab49af", size = 6345418, upload-time = "2026-02-11T04:20:35.858Z" }, + { url = "https://files.pythonhosted.org/packages/a2/c8/46dfeac5825e600579157eea177be43e2f7ff4a99da9d0d0a49533509ac5/pillow-12.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:597bd9c8419bc7c6af5604e55847789b69123bbe25d65cc6ad3012b4f3c98d8b", size = 7034590, upload-time = "2026-02-11T04:20:37.91Z" }, + { url = "https://files.pythonhosted.org/packages/af/bf/e6f65d3db8a8bbfeaf9e13cc0417813f6319863a73de934f14b2229ada18/pillow-12.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2c1fc0f2ca5f96a3c8407e41cca26a16e46b21060fe6d5b099d2cb01412222f5", size = 6458655, upload-time = "2026-02-11T04:20:39.496Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c2/66091f3f34a25894ca129362e510b956ef26f8fb67a0e6417bc5744e56f1/pillow-12.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:578510d88c6229d735855e1f278aa305270438d36a05031dfaae5067cc8eb04d", size = 7159286, upload-time = "2026-02-11T04:20:41.139Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5a/24bc8eb526a22f957d0cec6243146744966d40857e3d8deb68f7902ca6c1/pillow-12.1.1-cp311-cp311-win32.whl", hash = "sha256:7311c0a0dcadb89b36b7025dfd8326ecfa36964e29913074d47382706e516a7c", size = 6328663, upload-time = "2026-02-11T04:20:43.184Z" }, + { url = "https://files.pythonhosted.org/packages/31/03/bef822e4f2d8f9d7448c133d0a18185d3cce3e70472774fffefe8b0ed562/pillow-12.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:fbfa2a7c10cc2623f412753cddf391c7f971c52ca40a3f65dc5039b2939e8563", size = 7031448, upload-time = "2026-02-11T04:20:44.696Z" }, + { url = "https://files.pythonhosted.org/packages/49/70/f76296f53610bd17b2e7d31728b8b7825e3ac3b5b3688b51f52eab7c0818/pillow-12.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:b81b5e3511211631b3f672a595e3221252c90af017e399056d0faabb9538aa80", size = 2453651, upload-time = "2026-02-11T04:20:46.243Z" }, + { url = "https://files.pythonhosted.org/packages/07/d3/8df65da0d4df36b094351dce696f2989bec731d4f10e743b1c5f4da4d3bf/pillow-12.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ab323b787d6e18b3d91a72fc99b1a2c28651e4358749842b8f8dfacd28ef2052", size = 5262803, upload-time = "2026-02-11T04:20:47.653Z" }, + { url = "https://files.pythonhosted.org/packages/d6/71/5026395b290ff404b836e636f51d7297e6c83beceaa87c592718747e670f/pillow-12.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:adebb5bee0f0af4909c30db0d890c773d1a92ffe83da908e2e9e720f8edf3984", size = 4657601, upload-time = "2026-02-11T04:20:49.328Z" }, + { url = "https://files.pythonhosted.org/packages/b1/2e/1001613d941c67442f745aff0f7cc66dd8df9a9c084eb497e6a543ee6f7e/pillow-12.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb66b7cc26f50977108790e2456b7921e773f23db5630261102233eb355a3b79", size = 6234995, upload-time = "2026-02-11T04:20:51.032Z" }, + { url = "https://files.pythonhosted.org/packages/07/26/246ab11455b2549b9233dbd44d358d033a2f780fa9007b61a913c5b2d24e/pillow-12.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aee2810642b2898bb187ced9b349e95d2a7272930796e022efaf12e99dccd293", size = 8045012, upload-time = "2026-02-11T04:20:52.882Z" }, + { url = "https://files.pythonhosted.org/packages/b2/8b/07587069c27be7535ac1fe33874e32de118fbd34e2a73b7f83436a88368c/pillow-12.1.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a0b1cd6232e2b618adcc54d9882e4e662a089d5768cd188f7c245b4c8c44a397", size = 6349638, upload-time = "2026-02-11T04:20:54.444Z" }, + { url = "https://files.pythonhosted.org/packages/ff/79/6df7b2ee763d619cda2fb4fea498e5f79d984dae304d45a8999b80d6cf5c/pillow-12.1.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7aac39bcf8d4770d089588a2e1dd111cbaa42df5a94be3114222057d68336bd0", size = 7041540, upload-time = "2026-02-11T04:20:55.97Z" }, + { url = "https://files.pythonhosted.org/packages/2c/5e/2ba19e7e7236d7529f4d873bdaf317a318896bac289abebd4bb00ef247f0/pillow-12.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ab174cd7d29a62dd139c44bf74b698039328f45cb03b4596c43473a46656b2f3", size = 6462613, upload-time = "2026-02-11T04:20:57.542Z" }, + { url = "https://files.pythonhosted.org/packages/03/03/31216ec124bb5c3dacd74ce8efff4cc7f52643653bad4825f8f08c697743/pillow-12.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:339ffdcb7cbeaa08221cd401d517d4b1fe7a9ed5d400e4a8039719238620ca35", size = 7166745, upload-time = "2026-02-11T04:20:59.196Z" }, + { url = "https://files.pythonhosted.org/packages/1f/e7/7c4552d80052337eb28653b617eafdef39adfb137c49dd7e831b8dc13bc5/pillow-12.1.1-cp312-cp312-win32.whl", hash = "sha256:5d1f9575a12bed9e9eedd9a4972834b08c97a352bd17955ccdebfeca5913fa0a", size = 6328823, upload-time = "2026-02-11T04:21:01.385Z" }, + { url = "https://files.pythonhosted.org/packages/3d/17/688626d192d7261bbbf98846fc98995726bddc2c945344b65bec3a29d731/pillow-12.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:21329ec8c96c6e979cd0dfd29406c40c1d52521a90544463057d2aaa937d66a6", size = 7033367, upload-time = "2026-02-11T04:21:03.536Z" }, + { url = "https://files.pythonhosted.org/packages/ed/fe/a0ef1f73f939b0eca03ee2c108d0043a87468664770612602c63266a43c4/pillow-12.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:af9a332e572978f0218686636610555ae3defd1633597be015ed50289a03c523", size = 2453811, upload-time = "2026-02-11T04:21:05.116Z" }, + { url = "https://files.pythonhosted.org/packages/d5/11/6db24d4bd7685583caeae54b7009584e38da3c3d4488ed4cd25b439de486/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:d242e8ac078781f1de88bf823d70c1a9b3c7950a44cdf4b7c012e22ccbcd8e4e", size = 4062689, upload-time = "2026-02-11T04:21:06.804Z" }, + { url = "https://files.pythonhosted.org/packages/33/c0/ce6d3b1fe190f0021203e0d9b5b99e57843e345f15f9ef22fcd43842fd21/pillow-12.1.1-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:02f84dfad02693676692746df05b89cf25597560db2857363a208e393429f5e9", size = 4138535, upload-time = "2026-02-11T04:21:08.452Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c6/d5eb6a4fb32a3f9c21a8c7613ec706534ea1cf9f4b3663e99f0d83f6fca8/pillow-12.1.1-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:e65498daf4b583091ccbb2556c7000abf0f3349fcd57ef7adc9a84a394ed29f6", size = 3601364, upload-time = "2026-02-11T04:21:10.194Z" }, + { url = "https://files.pythonhosted.org/packages/14/a1/16c4b823838ba4c9c52c0e6bbda903a3fe5a1bdbf1b8eb4fff7156f3e318/pillow-12.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6c6db3b84c87d48d0088943bf33440e0c42370b99b1c2a7989216f7b42eede60", size = 5262561, upload-time = "2026-02-11T04:21:11.742Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ad/ad9dc98ff24f485008aa5cdedaf1a219876f6f6c42a4626c08bc4e80b120/pillow-12.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8b7e5304e34942bf62e15184219a7b5ad4ff7f3bb5cca4d984f37df1a0e1aee2", size = 4657460, upload-time = "2026-02-11T04:21:13.786Z" }, + { url = "https://files.pythonhosted.org/packages/9e/1b/f1a4ea9a895b5732152789326202a82464d5254759fbacae4deea3069334/pillow-12.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:18e5bddd742a44b7e6b1e773ab5db102bd7a94c32555ba656e76d319d19c3850", size = 6232698, upload-time = "2026-02-11T04:21:15.949Z" }, + { url = "https://files.pythonhosted.org/packages/95/f4/86f51b8745070daf21fd2e5b1fe0eb35d4db9ca26e6d58366562fb56a743/pillow-12.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc44ef1f3de4f45b50ccf9136999d71abb99dca7706bc75d222ed350b9fd2289", size = 8041706, upload-time = "2026-02-11T04:21:17.723Z" }, + { url = "https://files.pythonhosted.org/packages/29/9b/d6ecd956bb1266dd1045e995cce9b8d77759e740953a1c9aad9502a0461e/pillow-12.1.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a8eb7ed8d4198bccbd07058416eeec51686b498e784eda166395a23eb99138e", size = 6346621, upload-time = "2026-02-11T04:21:19.547Z" }, + { url = "https://files.pythonhosted.org/packages/71/24/538bff45bde96535d7d998c6fed1a751c75ac7c53c37c90dc2601b243893/pillow-12.1.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:47b94983da0c642de92ced1702c5b6c292a84bd3a8e1d1702ff923f183594717", size = 7038069, upload-time = "2026-02-11T04:21:21.378Z" }, + { url = "https://files.pythonhosted.org/packages/94/0e/58cb1a6bc48f746bc4cb3adb8cabff73e2742c92b3bf7a220b7cf69b9177/pillow-12.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:518a48c2aab7ce596d3bf79d0e275661b846e86e4d0e7dec34712c30fe07f02a", size = 6460040, upload-time = "2026-02-11T04:21:23.148Z" }, + { url = "https://files.pythonhosted.org/packages/6c/57/9045cb3ff11eeb6c1adce3b2d60d7d299d7b273a2e6c8381a524abfdc474/pillow-12.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a550ae29b95c6dc13cf69e2c9dc5747f814c54eeb2e32d683e5e93af56caa029", size = 7164523, upload-time = "2026-02-11T04:21:25.01Z" }, + { url = "https://files.pythonhosted.org/packages/73/f2/9be9cb99f2175f0d4dbadd6616ce1bf068ee54a28277ea1bf1fbf729c250/pillow-12.1.1-cp313-cp313-win32.whl", hash = "sha256:a003d7422449f6d1e3a34e3dd4110c22148336918ddbfc6a32581cd54b2e0b2b", size = 6332552, upload-time = "2026-02-11T04:21:27.238Z" }, + { url = "https://files.pythonhosted.org/packages/3f/eb/b0834ad8b583d7d9d42b80becff092082a1c3c156bb582590fcc973f1c7c/pillow-12.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:344cf1e3dab3be4b1fa08e449323d98a2a3f819ad20f4b22e77a0ede31f0faa1", size = 7040108, upload-time = "2026-02-11T04:21:29.462Z" }, + { url = "https://files.pythonhosted.org/packages/d5/7d/fc09634e2aabdd0feabaff4a32f4a7d97789223e7c2042fd805ea4b4d2c2/pillow-12.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:5c0dd1636633e7e6a0afe7bf6a51a14992b7f8e60de5789018ebbdfae55b040a", size = 2453712, upload-time = "2026-02-11T04:21:31.072Z" }, + { url = "https://files.pythonhosted.org/packages/19/2a/b9d62794fc8a0dd14c1943df68347badbd5511103e0d04c035ffe5cf2255/pillow-12.1.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0330d233c1a0ead844fc097a7d16c0abff4c12e856c0b325f231820fee1f39da", size = 5264880, upload-time = "2026-02-11T04:21:32.865Z" }, + { url = "https://files.pythonhosted.org/packages/26/9d/e03d857d1347fa5ed9247e123fcd2a97b6220e15e9cb73ca0a8d91702c6e/pillow-12.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5dae5f21afb91322f2ff791895ddd8889e5e947ff59f71b46041c8ce6db790bc", size = 4660616, upload-time = "2026-02-11T04:21:34.97Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ec/8a6d22afd02570d30954e043f09c32772bfe143ba9285e2fdb11284952cd/pillow-12.1.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2e0c664be47252947d870ac0d327fea7e63985a08794758aa8af5b6cb6ec0c9c", size = 6269008, upload-time = "2026-02-11T04:21:36.623Z" }, + { url = "https://files.pythonhosted.org/packages/3d/1d/6d875422c9f28a4a361f495a5f68d9de4a66941dc2c619103ca335fa6446/pillow-12.1.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:691ab2ac363b8217f7d31b3497108fb1f50faab2f75dfb03284ec2f217e87bf8", size = 8073226, upload-time = "2026-02-11T04:21:38.585Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cd/134b0b6ee5eda6dc09e25e24b40fdafe11a520bc725c1d0bbaa5e00bf95b/pillow-12.1.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9e8064fb1cc019296958595f6db671fba95209e3ceb0c4734c9baf97de04b20", size = 6380136, upload-time = "2026-02-11T04:21:40.562Z" }, + { url = "https://files.pythonhosted.org/packages/7a/a9/7628f013f18f001c1b98d8fffe3452f306a70dc6aba7d931019e0492f45e/pillow-12.1.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:472a8d7ded663e6162dafdf20015c486a7009483ca671cece7a9279b512fcb13", size = 7067129, upload-time = "2026-02-11T04:21:42.521Z" }, + { url = "https://files.pythonhosted.org/packages/1e/f8/66ab30a2193b277785601e82ee2d49f68ea575d9637e5e234faaa98efa4c/pillow-12.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:89b54027a766529136a06cfebeecb3a04900397a3590fd252160b888479517bf", size = 6491807, upload-time = "2026-02-11T04:21:44.22Z" }, + { url = "https://files.pythonhosted.org/packages/da/0b/a877a6627dc8318fdb84e357c5e1a758c0941ab1ddffdafd231983788579/pillow-12.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:86172b0831b82ce4f7877f280055892b31179e1576aa00d0df3bb1bbf8c3e524", size = 7190954, upload-time = "2026-02-11T04:21:46.114Z" }, + { url = "https://files.pythonhosted.org/packages/83/43/6f732ff85743cf746b1361b91665d9f5155e1483817f693f8d57ea93147f/pillow-12.1.1-cp313-cp313t-win32.whl", hash = "sha256:44ce27545b6efcf0fdbdceb31c9a5bdea9333e664cda58a7e674bb74608b3986", size = 6336441, upload-time = "2026-02-11T04:21:48.22Z" }, + { url = "https://files.pythonhosted.org/packages/3b/44/e865ef3986611bb75bfabdf94a590016ea327833f434558801122979cd0e/pillow-12.1.1-cp313-cp313t-win_amd64.whl", hash = "sha256:a285e3eb7a5a45a2ff504e31f4a8d1b12ef62e84e5411c6804a42197c1cf586c", size = 7045383, upload-time = "2026-02-11T04:21:50.015Z" }, + { url = "https://files.pythonhosted.org/packages/a8/c6/f4fb24268d0c6908b9f04143697ea18b0379490cb74ba9e8d41b898bd005/pillow-12.1.1-cp313-cp313t-win_arm64.whl", hash = "sha256:cc7d296b5ea4d29e6570dabeaed58d31c3fea35a633a69679fb03d7664f43fb3", size = 2456104, upload-time = "2026-02-11T04:21:51.633Z" }, + { url = "https://files.pythonhosted.org/packages/03/d0/bebb3ffbf31c5a8e97241476c4cf8b9828954693ce6744b4a2326af3e16b/pillow-12.1.1-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:417423db963cb4be8bac3fc1204fe61610f6abeed1580a7a2cbb2fbda20f12af", size = 4062652, upload-time = "2026-02-11T04:21:53.19Z" }, + { url = "https://files.pythonhosted.org/packages/2d/c0/0e16fb0addda4851445c28f8350d8c512f09de27bbb0d6d0bbf8b6709605/pillow-12.1.1-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:b957b71c6b2387610f556a7eb0828afbe40b4a98036fc0d2acfa5a44a0c2036f", size = 4138823, upload-time = "2026-02-11T04:22:03.088Z" }, + { url = "https://files.pythonhosted.org/packages/6b/fb/6170ec655d6f6bb6630a013dd7cf7bc218423d7b5fa9071bf63dc32175ae/pillow-12.1.1-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:097690ba1f2efdeb165a20469d59d8bb03c55fb6621eb2041a060ae8ea3e9642", size = 3601143, upload-time = "2026-02-11T04:22:04.909Z" }, + { url = "https://files.pythonhosted.org/packages/59/04/dc5c3f297510ba9a6837cbb318b87dd2b8f73eb41a43cc63767f65cb599c/pillow-12.1.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:2815a87ab27848db0321fb78c7f0b2c8649dee134b7f2b80c6a45c6831d75ccd", size = 5266254, upload-time = "2026-02-11T04:22:07.656Z" }, + { url = "https://files.pythonhosted.org/packages/05/30/5db1236b0d6313f03ebf97f5e17cda9ca060f524b2fcc875149a8360b21c/pillow-12.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f7ed2c6543bad5a7d5530eb9e78c53132f93dfa44a28492db88b41cdab885202", size = 4657499, upload-time = "2026-02-11T04:22:09.613Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/008d2ca0eb612e81968e8be0bbae5051efba24d52debf930126d7eaacbba/pillow-12.1.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:652a2c9ccfb556235b2b501a3a7cf3742148cd22e04b5625c5fe057ea3e3191f", size = 6232137, upload-time = "2026-02-11T04:22:11.434Z" }, + { url = "https://files.pythonhosted.org/packages/70/f1/f14d5b8eeb4b2cd62b9f9f847eb6605f103df89ef619ac68f92f748614ea/pillow-12.1.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d6e4571eedf43af33d0fc233a382a76e849badbccdf1ac438841308652a08e1f", size = 8042721, upload-time = "2026-02-11T04:22:13.321Z" }, + { url = "https://files.pythonhosted.org/packages/5a/d6/17824509146e4babbdabf04d8171491fa9d776f7061ff6e727522df9bd03/pillow-12.1.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b574c51cf7d5d62e9be37ba446224b59a2da26dc4c1bb2ecbe936a4fb1a7cb7f", size = 6347798, upload-time = "2026-02-11T04:22:15.449Z" }, + { url = "https://files.pythonhosted.org/packages/d1/ee/c85a38a9ab92037a75615aba572c85ea51e605265036e00c5b67dfafbfe2/pillow-12.1.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a37691702ed687799de29a518d63d4682d9016932db66d4e90c345831b02fb4e", size = 7039315, upload-time = "2026-02-11T04:22:17.24Z" }, + { url = "https://files.pythonhosted.org/packages/ec/f3/bc8ccc6e08a148290d7523bde4d9a0d6c981db34631390dc6e6ec34cacf6/pillow-12.1.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f95c00d5d6700b2b890479664a06e754974848afaae5e21beb4d83c106923fd0", size = 6462360, upload-time = "2026-02-11T04:22:19.111Z" }, + { url = "https://files.pythonhosted.org/packages/f6/ab/69a42656adb1d0665ab051eec58a41f169ad295cf81ad45406963105408f/pillow-12.1.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:559b38da23606e68681337ad74622c4dbba02254fc9cb4488a305dd5975c7eeb", size = 7165438, upload-time = "2026-02-11T04:22:21.041Z" }, + { url = "https://files.pythonhosted.org/packages/02/46/81f7aa8941873f0f01d4b55cc543b0a3d03ec2ee30d617a0448bf6bd6dec/pillow-12.1.1-cp314-cp314-win32.whl", hash = "sha256:03edcc34d688572014ff223c125a3f77fb08091e4607e7745002fc214070b35f", size = 6431503, upload-time = "2026-02-11T04:22:22.833Z" }, + { url = "https://files.pythonhosted.org/packages/40/72/4c245f7d1044b67affc7f134a09ea619d4895333d35322b775b928180044/pillow-12.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:50480dcd74fa63b8e78235957d302d98d98d82ccbfac4c7e12108ba9ecbdba15", size = 7176748, upload-time = "2026-02-11T04:22:24.64Z" }, + { url = "https://files.pythonhosted.org/packages/e4/ad/8a87bdbe038c5c698736e3348af5c2194ffb872ea52f11894c95f9305435/pillow-12.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:5cb1785d97b0c3d1d1a16bc1d710c4a0049daefc4935f3a8f31f827f4d3d2e7f", size = 2544314, upload-time = "2026-02-11T04:22:26.685Z" }, + { url = "https://files.pythonhosted.org/packages/6c/9d/efd18493f9de13b87ede7c47e69184b9e859e4427225ea962e32e56a49bc/pillow-12.1.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1f90cff8aa76835cba5769f0b3121a22bd4eb9e6884cfe338216e557a9a548b8", size = 5268612, upload-time = "2026-02-11T04:22:29.884Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f1/4f42eb2b388eb2ffc660dcb7f7b556c1015c53ebd5f7f754965ef997585b/pillow-12.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1f1be78ce9466a7ee64bfda57bdba0f7cc499d9794d518b854816c41bf0aa4e9", size = 4660567, upload-time = "2026-02-11T04:22:31.799Z" }, + { url = "https://files.pythonhosted.org/packages/01/54/df6ef130fa43e4b82e32624a7b821a2be1c5653a5fdad8469687a7db4e00/pillow-12.1.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:42fc1f4677106188ad9a55562bbade416f8b55456f522430fadab3cef7cd4e60", size = 6269951, upload-time = "2026-02-11T04:22:33.921Z" }, + { url = "https://files.pythonhosted.org/packages/a9/48/618752d06cc44bb4aae8ce0cd4e6426871929ed7b46215638088270d9b34/pillow-12.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:98edb152429ab62a1818039744d8fbb3ccab98a7c29fc3d5fcef158f3f1f68b7", size = 8074769, upload-time = "2026-02-11T04:22:35.877Z" }, + { url = "https://files.pythonhosted.org/packages/c3/bd/f1d71eb39a72fa088d938655afba3e00b38018d052752f435838961127d8/pillow-12.1.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d470ab1178551dd17fdba0fef463359c41aaa613cdcd7ff8373f54be629f9f8f", size = 6381358, upload-time = "2026-02-11T04:22:37.698Z" }, + { url = "https://files.pythonhosted.org/packages/64/ef/c784e20b96674ed36a5af839305f55616f8b4f8aa8eeccf8531a6e312243/pillow-12.1.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6408a7b064595afcab0a49393a413732a35788f2a5092fdc6266952ed67de586", size = 7068558, upload-time = "2026-02-11T04:22:39.597Z" }, + { url = "https://files.pythonhosted.org/packages/73/cb/8059688b74422ae61278202c4e1ad992e8a2e7375227be0a21c6b87ca8d5/pillow-12.1.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5d8c41325b382c07799a3682c1c258469ea2ff97103c53717b7893862d0c98ce", size = 6493028, upload-time = "2026-02-11T04:22:42.73Z" }, + { url = "https://files.pythonhosted.org/packages/c6/da/e3c008ed7d2dd1f905b15949325934510b9d1931e5df999bb15972756818/pillow-12.1.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c7697918b5be27424e9ce568193efd13d925c4481dd364e43f5dff72d33e10f8", size = 7191940, upload-time = "2026-02-11T04:22:44.543Z" }, + { url = "https://files.pythonhosted.org/packages/01/4a/9202e8d11714c1fc5951f2e1ef362f2d7fbc595e1f6717971d5dd750e969/pillow-12.1.1-cp314-cp314t-win32.whl", hash = "sha256:d2912fd8114fc5545aa3a4b5576512f64c55a03f3ebcca4c10194d593d43ea36", size = 6438736, upload-time = "2026-02-11T04:22:46.347Z" }, + { url = "https://files.pythonhosted.org/packages/f3/ca/cbce2327eb9885476b3957b2e82eb12c866a8b16ad77392864ad601022ce/pillow-12.1.1-cp314-cp314t-win_amd64.whl", hash = "sha256:4ceb838d4bd9dab43e06c363cab2eebf63846d6a4aeaea283bbdfd8f1a8ed58b", size = 7182894, upload-time = "2026-02-11T04:22:48.114Z" }, + { url = "https://files.pythonhosted.org/packages/ec/d2/de599c95ba0a973b94410477f8bf0b6f0b5e67360eb89bcb1ad365258beb/pillow-12.1.1-cp314-cp314t-win_arm64.whl", hash = "sha256:7b03048319bfc6170e93bd60728a1af51d3dd7704935feb228c4d4faab35d334", size = 2546446, upload-time = "2026-02-11T04:22:50.342Z" }, + { url = "https://files.pythonhosted.org/packages/56/11/5d43209aa4cb58e0cc80127956ff1796a68b928e6324bbf06ef4db34367b/pillow-12.1.1-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:600fd103672b925fe62ed08e0d874ea34d692474df6f4bf7ebe148b30f89f39f", size = 5228606, upload-time = "2026-02-11T04:22:52.106Z" }, + { url = "https://files.pythonhosted.org/packages/5f/d5/3b005b4e4fda6698b371fa6c21b097d4707585d7db99e98d9b0b87ac612a/pillow-12.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:665e1b916b043cef294bc54d47bf02d87e13f769bc4bc5fa225a24b3a6c5aca9", size = 4622321, upload-time = "2026-02-11T04:22:53.827Z" }, + { url = "https://files.pythonhosted.org/packages/df/36/ed3ea2d594356fd8037e5a01f6156c74bc8d92dbb0fa60746cc96cabb6e8/pillow-12.1.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:495c302af3aad1ca67420ddd5c7bd480c8867ad173528767d906428057a11f0e", size = 5247579, upload-time = "2026-02-11T04:22:56.094Z" }, + { url = "https://files.pythonhosted.org/packages/54/9a/9cc3e029683cf6d20ae5085da0dafc63148e3252c2f13328e553aaa13cfb/pillow-12.1.1-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8fd420ef0c52c88b5a035a0886f367748c72147b2b8f384c9d12656678dfdfa9", size = 6989094, upload-time = "2026-02-11T04:22:58.288Z" }, + { url = "https://files.pythonhosted.org/packages/00/98/fc53ab36da80b88df0967896b6c4b4cd948a0dc5aa40a754266aa3ae48b3/pillow-12.1.1-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f975aa7ef9684ce7e2c18a3aa8f8e2106ce1e46b94ab713d156b2898811651d3", size = 5313850, upload-time = "2026-02-11T04:23:00.554Z" }, + { url = "https://files.pythonhosted.org/packages/30/02/00fa585abfd9fe9d73e5f6e554dc36cc2b842898cbfc46d70353dae227f8/pillow-12.1.1-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8089c852a56c2966cf18835db62d9b34fef7ba74c726ad943928d494fa7f4735", size = 5963343, upload-time = "2026-02-11T04:23:02.934Z" }, + { url = "https://files.pythonhosted.org/packages/f2/26/c56ce33ca856e358d27fda9676c055395abddb82c35ac0f593877ed4562e/pillow-12.1.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:cb9bb857b2d057c6dfc72ac5f3b44836924ba15721882ef103cecb40d002d80e", size = 7029880, upload-time = "2026-02-11T04:23:04.783Z" }, ] [[package]] name = "platformdirs" -version = "4.3.6" +version = "4.9.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", size = 21302, upload-time = "2024-09-17T19:06:50.688Z" } +sdist = { url = "https://files.pythonhosted.org/packages/19/56/8d4c30c8a1d07013911a8fdbd8f89440ef9f08d07a1b50ab8ca8be5a20f9/platformdirs-4.9.4.tar.gz", hash = "sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934", size = 28737, upload-time = "2026-03-05T18:34:13.271Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439, upload-time = "2024-09-17T19:06:49.212Z" }, + { url = "https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl", hash = "sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868", size = 21216, upload-time = "2026-03-05T18:34:12.172Z" }, ] [[package]] name = "pluggy" -version = "1.5.0" +version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955, upload-time = "2024-04-20T21:34:42.531Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556, upload-time = "2024-04-20T21:34:40.434Z" }, + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] [[package]] name = "prompt-toolkit" -version = "3.0.48" +version = "3.0.52" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "wcwidth" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2d/4f/feb5e137aff82f7c7f3248267b97451da3644f6cdc218edfe549fb354127/prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90", size = 424684, upload-time = "2024-09-25T10:20:57.609Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a9/6a/fd08d94654f7e67c52ca30523a178b3f8ccc4237fce4be90d39c938a831a/prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e", size = 386595, upload-time = "2024-09-25T10:20:53.932Z" }, + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, ] [[package]] name = "protobuf" -version = "5.29.6" +version = "6.33.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7e/57/394a763c103e0edf87f0938dafcd918d53b4c011dfc5c8ae80f3b0452dbb/protobuf-5.29.6.tar.gz", hash = "sha256:da9ee6a5424b6b30fd5e45c5ea663aef540ca95f9ad99d1e887e819cdf9b8723", size = 425623, upload-time = "2026-02-04T22:54:40.584Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/25/7c72c307aafc96fa87062aa6291d9f7c94836e43214d43722e86037aac02/protobuf-6.33.5.tar.gz", hash = "sha256:6ddcac2a081f8b7b9642c09406bc6a4290128fce5f471cddd165960bb9119e5c", size = 444465, upload-time = "2026-01-29T21:51:33.494Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d4/88/9ee58ff7863c479d6f8346686d4636dd4c415b0cbeed7a6a7d0617639c2a/protobuf-5.29.6-cp310-abi3-win32.whl", hash = "sha256:62e8a3114992c7c647bce37dcc93647575fc52d50e48de30c6fcb28a6a291eb1", size = 423357, upload-time = "2026-02-04T22:54:25.805Z" }, - { url = "https://files.pythonhosted.org/packages/1c/66/2dc736a4d576847134fb6d80bd995c569b13cdc7b815d669050bf0ce2d2c/protobuf-5.29.6-cp310-abi3-win_amd64.whl", hash = "sha256:7e6ad413275be172f67fdee0f43484b6de5a904cc1c3ea9804cb6fe2ff366eda", size = 435175, upload-time = "2026-02-04T22:54:28.592Z" }, - { url = "https://files.pythonhosted.org/packages/06/db/49b05966fd208ae3f44dcd33837b6243b4915c57561d730a43f881f24dea/protobuf-5.29.6-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:b5a169e664b4057183a34bdc424540e86eea47560f3c123a0d64de4e137f9269", size = 418619, upload-time = "2026-02-04T22:54:30.266Z" }, - { url = "https://files.pythonhosted.org/packages/b7/d7/48cbf6b0c3c39761e47a99cb483405f0fde2be22cf00d71ef316ce52b458/protobuf-5.29.6-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:a8866b2cff111f0f863c1b3b9e7572dc7eaea23a7fae27f6fc613304046483e6", size = 320284, upload-time = "2026-02-04T22:54:31.782Z" }, - { url = "https://files.pythonhosted.org/packages/e3/dd/cadd6ec43069247d91f6345fa7a0d2858bef6af366dbd7ba8f05d2c77d3b/protobuf-5.29.6-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:e3387f44798ac1106af0233c04fb8abf543772ff241169946f698b3a9a3d3ab9", size = 320478, upload-time = "2026-02-04T22:54:32.909Z" }, - { url = "https://files.pythonhosted.org/packages/59/10/45084b81d758f6290579390cbbfdd42610bae27f2facfb3a357aea5e3fc5/protobuf-5.29.6-cp38-cp38-win32.whl", hash = "sha256:36ade6ff88212e91aef4e687a971a11d7d24d6948a66751abc1b3238648f5d05", size = 423297, upload-time = "2026-02-04T22:54:35.053Z" }, - { url = "https://files.pythonhosted.org/packages/7a/fb/8c51a0d8ce92d8bfb6eb05278b806a5fbf574ffd62e68046dc49f3166a20/protobuf-5.29.6-cp38-cp38-win_amd64.whl", hash = "sha256:831e2da16b6cc9d8f1654c041dd594eda43391affd3c03a91bea7f7f6da106d6", size = 435285, upload-time = "2026-02-04T22:54:36.1Z" }, - { url = "https://files.pythonhosted.org/packages/30/a4/ff263f5687815e1a10a9243a3a6463af42ca251224bf4b8fc4c93b9f5b80/protobuf-5.29.6-cp39-cp39-win32.whl", hash = "sha256:cb4c86de9cd8a7f3a256b9744220d87b847371c6b2f10bde87768918ef33ba49", size = 423352, upload-time = "2026-02-04T22:54:37.375Z" }, - { url = "https://files.pythonhosted.org/packages/5c/64/e943206d3b5069050d570a2c53a90631240d99adcc9a91c6ff7b41876f4d/protobuf-5.29.6-cp39-cp39-win_amd64.whl", hash = "sha256:76e07e6567f8baf827137e8d5b8204b6c7b6488bbbff1bf0a72b383f77999c18", size = 435222, upload-time = "2026-02-04T22:54:38.418Z" }, - { url = "https://files.pythonhosted.org/packages/5a/cb/e3065b447186cb70aa65acc70c86baf482d82bf75625bf5a2c4f6919c6a3/protobuf-5.29.6-py3-none-any.whl", hash = "sha256:6b9edb641441b2da9fa8f428760fc136a49cf97a52076010cf22a2ff73438a86", size = 173126, upload-time = "2026-02-04T22:54:39.462Z" }, + { url = "https://files.pythonhosted.org/packages/b1/79/af92d0a8369732b027e6d6084251dd8e782c685c72da161bd4a2e00fbabb/protobuf-6.33.5-cp310-abi3-win32.whl", hash = "sha256:d71b040839446bac0f4d162e758bea99c8251161dae9d0983a3b88dee345153b", size = 425769, upload-time = "2026-01-29T21:51:21.751Z" }, + { url = "https://files.pythonhosted.org/packages/55/75/bb9bc917d10e9ee13dee8607eb9ab963b7cf8be607c46e7862c748aa2af7/protobuf-6.33.5-cp310-abi3-win_amd64.whl", hash = "sha256:3093804752167bcab3998bec9f1048baae6e29505adaf1afd14a37bddede533c", size = 437118, upload-time = "2026-01-29T21:51:24.022Z" }, + { url = "https://files.pythonhosted.org/packages/a2/6b/e48dfc1191bc5b52950246275bf4089773e91cb5ba3592621723cdddca62/protobuf-6.33.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:a5cb85982d95d906df1e2210e58f8e4f1e3cdc088e52c921a041f9c9a0386de5", size = 427766, upload-time = "2026-01-29T21:51:25.413Z" }, + { url = "https://files.pythonhosted.org/packages/4e/b1/c79468184310de09d75095ed1314b839eb2f72df71097db9d1404a1b2717/protobuf-6.33.5-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:9b71e0281f36f179d00cbcb119cb19dec4d14a81393e5ea220f64b286173e190", size = 324638, upload-time = "2026-01-29T21:51:26.423Z" }, + { url = "https://files.pythonhosted.org/packages/c5/f5/65d838092fd01c44d16037953fd4c2cc851e783de9b8f02b27ec4ffd906f/protobuf-6.33.5-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:8afa18e1d6d20af15b417e728e9f60f3aa108ee76f23c3b2c07a2c3b546d3afd", size = 339411, upload-time = "2026-01-29T21:51:27.446Z" }, + { url = "https://files.pythonhosted.org/packages/9b/53/a9443aa3ca9ba8724fdfa02dd1887c1bcd8e89556b715cfbacca6b63dbec/protobuf-6.33.5-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:cbf16ba3350fb7b889fca858fb215967792dc125b35c7976ca4818bee3521cf0", size = 323465, upload-time = "2026-01-29T21:51:28.925Z" }, + { url = "https://files.pythonhosted.org/packages/57/bf/2086963c69bdac3d7cff1cc7ff79b8ce5ea0bec6797a017e1be338a46248/protobuf-6.33.5-py3-none-any.whl", hash = "sha256:69915a973dd0f60f31a08b8318b73eab2bd6a392c79184b3612226b0a3f8ec02", size = 170687, upload-time = "2026-01-29T21:51:32.557Z" }, ] [[package]] name = "psutil" -version = "6.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/c7/8c6872f7372eb6a6b2e4708b88419fb46b857f7a2e1892966b851cc79fc9/psutil-6.0.0.tar.gz", hash = "sha256:8faae4f310b6d969fa26ca0545338b21f73c6b15db7c4a8d934a5482faa818f2", size = 508067, upload-time = "2024-06-18T21:40:10.559Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/37/f8da2fbd29690b3557cca414c1949f92162981920699cd62095a984983bf/psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0", size = 250961, upload-time = "2024-06-18T21:41:11.662Z" }, - { url = "https://files.pythonhosted.org/packages/35/56/72f86175e81c656a01c4401cd3b1c923f891b31fbcebe98985894176d7c9/psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0", size = 287478, upload-time = "2024-06-18T21:41:16.18Z" }, - { url = "https://files.pythonhosted.org/packages/19/74/f59e7e0d392bc1070e9a70e2f9190d652487ac115bb16e2eff6b22ad1d24/psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd", size = 290455, upload-time = "2024-06-18T21:41:29.048Z" }, - { url = "https://files.pythonhosted.org/packages/cd/5f/60038e277ff0a9cc8f0c9ea3d0c5eb6ee1d2470ea3f9389d776432888e47/psutil-6.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e8d0054fc88153ca0544f5c4d554d42e33df2e009c4ff42284ac9ebdef4132", size = 292046, upload-time = "2024-06-18T21:41:33.53Z" }, - { url = "https://files.pythonhosted.org/packages/8b/20/2ff69ad9c35c3df1858ac4e094f20bd2374d33c8643cf41da8fd7cdcb78b/psutil-6.0.0-cp37-abi3-win32.whl", hash = "sha256:a495580d6bae27291324fe60cea0b5a7c23fa36a7cd35035a16d93bdcf076b9d", size = 253560, upload-time = "2024-06-18T21:41:46.067Z" }, - { url = "https://files.pythonhosted.org/packages/73/44/561092313ae925f3acfaace6f9ddc4f6a9c748704317bad9c8c8f8a36a79/psutil-6.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:33ea5e1c975250a720b3a6609c490db40dae5d83a4eb315170c4fe0d8b1f34b3", size = 257399, upload-time = "2024-06-18T21:41:52.1Z" }, - { url = "https://files.pythonhosted.org/packages/7c/06/63872a64c312a24fb9b4af123ee7007a306617da63ff13bcc1432386ead7/psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:ffe7fc9b6b36beadc8c322f84e1caff51e8703b88eee1da46d1e3a6ae11b4fd0", size = 251988, upload-time = "2024-06-18T21:41:57.337Z" }, +version = "7.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595, upload-time = "2026-01-28T18:14:57.293Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082, upload-time = "2026-01-28T18:14:59.732Z" }, + { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476, upload-time = "2026-01-28T18:15:01.884Z" }, + { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062, upload-time = "2026-01-28T18:15:04.436Z" }, + { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893, upload-time = "2026-01-28T18:15:06.378Z" }, + { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589, upload-time = "2026-01-28T18:15:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, + { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, ] [[package]] @@ -1557,107 +1660,109 @@ wheels = [ [[package]] name = "pycparser" -version = "2.22" +version = "3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736, upload-time = "2024-03-30T13:22:22.564Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552, upload-time = "2024-03-30T13:22:20.476Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, ] [[package]] name = "pygments" -version = "2.18.0" +version = "2.19.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", size = 4891905, upload-time = "2024-05-04T13:42:02.013Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513, upload-time = "2024-05-04T13:41:57.345Z" }, + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, ] [[package]] name = "pymongo" -version = "4.10.1" +version = "4.16.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "dnspython" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1a/35/b62a3139f908c68b69aac6a6a3f8cc146869de0a7929b994600e2c587c77/pymongo-4.10.1.tar.gz", hash = "sha256:a9de02be53b6bb98efe0b9eda84ffa1ec027fcb23a2de62c4f941d9a2f2f3330", size = 1903902, upload-time = "2024-10-01T23:07:58.525Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/ca/f56b1dd84541de658d246f86828be27e32285f2151fab97efbce1db3ed57/pymongo-4.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e699aa68c4a7dea2ab5a27067f7d3e08555f8d2c0dc6a0c8c60cfd9ff2e6a4b1", size = 835459, upload-time = "2024-10-01T23:06:19.654Z" }, - { url = "https://files.pythonhosted.org/packages/97/01/fe4ee34b33c6863be6a09d1e805ceb1122d9cd5d4a5d1664e360b91adf7e/pymongo-4.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:70645abc714f06b4ad6b72d5bf73792eaad14e3a2cfe29c62a9c81ada69d9e4b", size = 835716, upload-time = "2024-10-01T23:06:22.252Z" }, - { url = "https://files.pythonhosted.org/packages/46/ff/9eb21c1d5861729ae1c91669b02f5bfbd23221ba9809fb97fade761f3f3b/pymongo-4.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae2fd94c9fe048c94838badcc6e992d033cb9473eb31e5710b3707cba5e8aee2", size = 1407173, upload-time = "2024-10-01T23:06:24.204Z" }, - { url = "https://files.pythonhosted.org/packages/e5/d9/8cf042449d6804e00e38d3bb138b0e9acb8a8e0c9dd9dd989ffffd481c3b/pymongo-4.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ded27a4a5374dae03a92e084a60cdbcecd595306555bda553b833baf3fc4868", size = 1456455, upload-time = "2024-10-01T23:06:26.125Z" }, - { url = "https://files.pythonhosted.org/packages/37/9a/da0d121f98c1413853e1172e2095fe77c1629c83a1db107d45a37ca935c2/pymongo-4.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ecc2455e3974a6c429687b395a0bc59636f2d6aedf5785098cf4e1f180f1c71", size = 1433360, upload-time = "2024-10-01T23:06:27.898Z" }, - { url = "https://files.pythonhosted.org/packages/7d/6d/50480f0452e2fb59256d9d641d192366c0079920c36851b818ebeff0cec9/pymongo-4.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a920fee41f7d0259f5f72c1f1eb331bc26ffbdc952846f9bd8c3b119013bb52c", size = 1410758, upload-time = "2024-10-01T23:06:29.546Z" }, - { url = "https://files.pythonhosted.org/packages/cd/8f/b83b9910c54f63bfff34305074e79cd08cf5e12dda22d1a2b4ad009b32b3/pymongo-4.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0a15665b2d6cf364f4cd114d62452ce01d71abfbd9c564ba8c74dcd7bbd6822", size = 1380257, upload-time = "2024-10-01T23:06:30.895Z" }, - { url = "https://files.pythonhosted.org/packages/ed/e3/8f381b576e5f912cf0fe34218c6b0ef23d7afdef13fed592900fb52f0ed4/pymongo-4.10.1-cp310-cp310-win32.whl", hash = "sha256:29e1c323c28a4584b7095378ff046815e39ff82cdb8dc4cc6dfe3acf6f9ad1f8", size = 812324, upload-time = "2024-10-01T23:06:32.717Z" }, - { url = "https://files.pythonhosted.org/packages/ab/14/1cae5359e2c4677856527a2965c999c23f596cced4b7828d880cb8fc0f54/pymongo-4.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:88dc4aa45f8744ccfb45164aedb9a4179c93567bbd98a33109d7dc400b00eb08", size = 826774, upload-time = "2024-10-01T23:06:34.386Z" }, - { url = "https://files.pythonhosted.org/packages/e4/a3/d6403ec53fa2fe922b4a5c86388ea5fada01dd51d803e17bb2a7c9cda839/pymongo-4.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:57ee6becae534e6d47848c97f6a6dff69e3cce7c70648d6049bd586764febe59", size = 889238, upload-time = "2024-10-01T23:06:36.03Z" }, - { url = "https://files.pythonhosted.org/packages/29/a2/9643450424bcf241e80bb713497ec2e3273c183d548b4eca357f75d71885/pymongo-4.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6f437a612f4d4f7aca1812311b1e84477145e950fdafe3285b687ab8c52541f3", size = 889504, upload-time = "2024-10-01T23:06:37.328Z" }, - { url = "https://files.pythonhosted.org/packages/ec/40/4759984f34415509e9111be8ee863034611affdc1e0b41016c9d53b2f1b3/pymongo-4.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a970fd3117ab40a4001c3dad333bbf3c43687d90f35287a6237149b5ccae61d", size = 1649069, upload-time = "2024-10-01T23:06:38.553Z" }, - { url = "https://files.pythonhosted.org/packages/56/0f/b6e917478a3ada81e768475516cd544982cc42cbb7d3be325182768139e1/pymongo-4.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7c4d0e7cd08ef9f8fbf2d15ba281ed55604368a32752e476250724c3ce36c72e", size = 1714927, upload-time = "2024-10-01T23:06:40.292Z" }, - { url = "https://files.pythonhosted.org/packages/56/c5/4237d94dfa19ebdf9a92b1071e2139c91f48908c5782e592c571c33b67ab/pymongo-4.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca6f700cff6833de4872a4e738f43123db34400173558b558ae079b5535857a4", size = 1683454, upload-time = "2024-10-01T23:06:42.257Z" }, - { url = "https://files.pythonhosted.org/packages/9a/16/dbffca9d4ad66f2a325c280f1177912fa23235987f7b9033e283da889b7a/pymongo-4.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cec237c305fcbeef75c0bcbe9d223d1e22a6e3ba1b53b2f0b79d3d29c742b45b", size = 1653840, upload-time = "2024-10-01T23:06:43.991Z" }, - { url = "https://files.pythonhosted.org/packages/2b/4d/21df934ef5cf8f0e587bac922a129e13d4c0346c54e9bf2371b90dd31112/pymongo-4.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3337804ea0394a06e916add4e5fac1c89902f1b6f33936074a12505cab4ff05", size = 1613233, upload-time = "2024-10-01T23:06:46.113Z" }, - { url = "https://files.pythonhosted.org/packages/24/07/dd9c3db30e754680606295d5574521956898005db0629411a89163cc6eee/pymongo-4.10.1-cp311-cp311-win32.whl", hash = "sha256:778ac646ce6ac1e469664062dfe9ae1f5c9961f7790682809f5ec3b8fda29d65", size = 857331, upload-time = "2024-10-01T23:06:47.812Z" }, - { url = "https://files.pythonhosted.org/packages/02/68/b71c4106d03eef2482eade440c6f5737c2a4a42f6155726009f80ea38d06/pymongo-4.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:9df4ab5594fdd208dcba81be815fa8a8a5d8dedaf3b346cbf8b61c7296246a7a", size = 876473, upload-time = "2024-10-01T23:06:49.201Z" }, - { url = "https://files.pythonhosted.org/packages/10/d1/60ad99fe3f64d45e6c71ac0e3078e88d9b64112b1bae571fc3707344d6d1/pymongo-4.10.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fbedc4617faa0edf423621bb0b3b8707836687161210d470e69a4184be9ca011", size = 943356, upload-time = "2024-10-01T23:06:50.9Z" }, - { url = "https://files.pythonhosted.org/packages/ca/9b/21d4c6b4ee9c1fa9691c68dc2a52565e0acb644b9e95148569b4736a4ebd/pymongo-4.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7bd26b2aec8ceeb95a5d948d5cc0f62b0eb6d66f3f4230705c1e3d3d2c04ec76", size = 943142, upload-time = "2024-10-01T23:06:52.146Z" }, - { url = "https://files.pythonhosted.org/packages/07/af/691b7454e219a8eb2d1641aecedd607e3a94b93650c2011ad8a8fd74ef9f/pymongo-4.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb104c3c2a78d9d85571c8ac90ec4f95bca9b297c6eee5ada71fabf1129e1674", size = 1909129, upload-time = "2024-10-01T23:06:53.551Z" }, - { url = "https://files.pythonhosted.org/packages/0c/74/fd75d5ad4181d6e71ce0fca32404fb71b5046ac84d9a1a2f0862262dd032/pymongo-4.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4924355245a9c79f77b5cda2db36e0f75ece5faf9f84d16014c0a297f6d66786", size = 1987763, upload-time = "2024-10-01T23:06:55.304Z" }, - { url = "https://files.pythonhosted.org/packages/8a/56/6d3d0ef63c6d8cb98c7c653a3a2e617675f77a95f3853851d17a7664876a/pymongo-4.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:11280809e5dacaef4971113f0b4ff4696ee94cfdb720019ff4fa4f9635138252", size = 1950821, upload-time = "2024-10-01T23:06:57.541Z" }, - { url = "https://files.pythonhosted.org/packages/70/ed/1603fa0c0e51444752c3fa91f16c3a97e6d92eb9fe5e553dae4f18df16f6/pymongo-4.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5d55f2a82e5eb23795f724991cac2bffbb1c0f219c0ba3bf73a835f97f1bb2e", size = 1912247, upload-time = "2024-10-01T23:06:59.023Z" }, - { url = "https://files.pythonhosted.org/packages/c1/66/e98b2308971d45667cb8179d4d66deca47336c90663a7e0527589f1038b7/pymongo-4.10.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e974ab16a60be71a8dfad4e5afccf8dd05d41c758060f5d5bda9a758605d9a5d", size = 1862230, upload-time = "2024-10-01T23:07:01.407Z" }, - { url = "https://files.pythonhosted.org/packages/6c/80/ba9b7ed212a5f8cf8ad7037ed5bbebc1c587fc09242108f153776e4a338b/pymongo-4.10.1-cp312-cp312-win32.whl", hash = "sha256:544890085d9641f271d4f7a47684450ed4a7344d6b72d5968bfae32203b1bb7c", size = 903045, upload-time = "2024-10-01T23:07:02.973Z" }, - { url = "https://files.pythonhosted.org/packages/76/8b/5afce891d78159912c43726fab32641e3f9718f14be40f978c148ea8db48/pymongo-4.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:dcc07b1277e8b4bf4d7382ca133850e323b7ab048b8353af496d050671c7ac52", size = 926686, upload-time = "2024-10-01T23:07:04.403Z" }, - { url = "https://files.pythonhosted.org/packages/83/76/df0fd0622a85b652ad0f91ec8a0ebfd0cb86af6caec8999a22a1f7481203/pymongo-4.10.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:90bc6912948dfc8c363f4ead54d54a02a15a7fee6cfafb36dc450fc8962d2cb7", size = 996981, upload-time = "2024-10-01T23:07:06.001Z" }, - { url = "https://files.pythonhosted.org/packages/4c/39/fa50531de8d1d8af8c253caeed20c18ccbf1de5d970119c4a42c89f2bd09/pymongo-4.10.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:594dd721b81f301f33e843453638e02d92f63c198358e5a0fa8b8d0b1218dabc", size = 996769, upload-time = "2024-10-01T23:07:07.855Z" }, - { url = "https://files.pythonhosted.org/packages/bf/50/6936612c1b2e32d95c30e860552d3bc9e55cfa79a4f73b73225fa05a028c/pymongo-4.10.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0783e0c8e95397c84e9cf8ab092ab1e5dd7c769aec0ef3a5838ae7173b98dea0", size = 2169159, upload-time = "2024-10-01T23:07:09.963Z" }, - { url = "https://files.pythonhosted.org/packages/78/8c/45cb23096e66c7b1da62bb8d9c7ac2280e7c1071e13841e7fb71bd44fd9f/pymongo-4.10.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6fb6a72e88df46d1c1040fd32cd2d2c5e58722e5d3e31060a0393f04ad3283de", size = 2260569, upload-time = "2024-10-01T23:07:11.856Z" }, - { url = "https://files.pythonhosted.org/packages/29/b6/e5ec697087e527a6a15c5f8daa5bcbd641edb8813487345aaf963d3537dc/pymongo-4.10.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e3a593333e20c87415420a4fb76c00b7aae49b6361d2e2205b6fece0563bf40", size = 2218142, upload-time = "2024-10-01T23:07:13.61Z" }, - { url = "https://files.pythonhosted.org/packages/ad/8a/c0b45bee0f0c57732c5c36da5122c1796efd5a62d585fbc504e2f1401244/pymongo-4.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72e2ace7456167c71cfeca7dcb47bd5dceda7db2231265b80fc625c5e8073186", size = 2170623, upload-time = "2024-10-01T23:07:15.319Z" }, - { url = "https://files.pythonhosted.org/packages/3b/26/6c0a5360a571df24c9bfbd51b1dae279f4f0c511bdbc0906f6df6d1543fa/pymongo-4.10.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ad05eb9c97e4f589ed9e74a00fcaac0d443ccd14f38d1258eb4c39a35dd722b", size = 2111112, upload-time = "2024-10-01T23:07:16.859Z" }, - { url = "https://files.pythonhosted.org/packages/38/bc/5b91b728e1cf505d931f04e24cbac71ae519523785570ed046cdc31e6efc/pymongo-4.10.1-cp313-cp313-win32.whl", hash = "sha256:ee4c86d8e6872a61f7888fc96577b0ea165eb3bdb0d841962b444fa36001e2bb", size = 948727, upload-time = "2024-10-01T23:07:18.275Z" }, - { url = "https://files.pythonhosted.org/packages/0d/2a/7c24a6144eaa06d18ed52822ea2b0f119fd9267cd1abbb75dae4d89a3803/pymongo-4.10.1-cp313-cp313-win_amd64.whl", hash = "sha256:45ee87a4e12337353242bc758accc7fb47a2f2d9ecc0382a61e64c8f01e86708", size = 976873, upload-time = "2024-10-01T23:07:19.721Z" }, - { url = "https://files.pythonhosted.org/packages/31/22/0580e055aa609ae61c5c054afc746968be771d75d42b6a43f3979fa1c20e/pymongo-4.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:442ca247f53ad24870a01e80a71cd81b3f2318655fd9d66748ee2bd1b1569d9e", size = 727824, upload-time = "2024-10-01T23:07:21.15Z" }, - { url = "https://files.pythonhosted.org/packages/82/9f/62599a11b2371ea176ddc4444fe9cef7bb1b8d8c2ba3ec2fce03a63f6b37/pymongo-4.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:23e1d62df5592518204943b507be7b457fb8a4ad95a349440406fd42db5d0923", size = 728136, upload-time = "2024-10-01T23:07:22.995Z" }, - { url = "https://files.pythonhosted.org/packages/7f/87/ea553a6b3e2607d409ffcb8958153e84370f1cd54e1f2191b16dcc28b408/pymongo-4.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6131bc6568b26e7495a9f3ef2b1700566b76bbecd919f4472bfe90038a61f425", size = 928973, upload-time = "2024-10-01T23:07:24.577Z" }, - { url = "https://files.pythonhosted.org/packages/6e/be/f7d3df1415af12200b63b3cfebd2d156ea3215f3ce054bf3f73d81e0be73/pymongo-4.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fdeba88c540c9ed0338c0b2062d9f81af42b18d6646b3e6dda05cf6edd46ada9", size = 945186, upload-time = "2024-10-01T23:07:26.005Z" }, - { url = "https://files.pythonhosted.org/packages/f6/0c/8b3981432b8d635763aef504475c1f1ec51447889fd13ac30676cecf1229/pymongo-4.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15a624d752dd3c89d10deb0ef6431559b6d074703cab90a70bb849ece02adc6b", size = 938573, upload-time = "2024-10-01T23:07:27.486Z" }, - { url = "https://files.pythonhosted.org/packages/5f/54/7da021c70dbac3e993aee5544398f6c1ec58d0aaaf6f91de555e4b6a6e29/pymongo-4.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba164e73fdade9b4614a2497321c5b7512ddf749ed508950bdecc28d8d76a2d9", size = 930164, upload-time = "2024-10-01T23:07:29.073Z" }, - { url = "https://files.pythonhosted.org/packages/bb/f1/848132a5db3f5fba1928018d53d990f4ba81db9126129f2e5a99d9da8d55/pymongo-4.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9235fa319993405ae5505bf1333366388add2e06848db7b3deee8f990b69808e", size = 919676, upload-time = "2024-10-01T23:07:30.841Z" }, - { url = "https://files.pythonhosted.org/packages/ad/31/9b5a831f7bd96e932c0b6e234a154896fe0373c19ba32054e959ae258b57/pymongo-4.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e4a65567bd17d19f03157c7ec992c6530eafd8191a4e5ede25566792c4fe3fa2", size = 920828, upload-time = "2024-10-01T23:07:32.388Z" }, - { url = "https://files.pythonhosted.org/packages/65/5b/d134139e96fa085ebc7545a7bfb335606e7ee3ae403c170a3fe64ba7b854/pymongo-4.10.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:f1945d48fb9b8a87d515da07f37e5b2c35b364a435f534c122e92747881f4a7c", size = 928386, upload-time = "2024-10-01T23:07:33.982Z" }, - { url = "https://files.pythonhosted.org/packages/9e/35/b932c0db60508971701ef42c47ab6db3e60497f0821da4f340ecff9eebf0/pymongo-4.10.1-cp38-cp38-win32.whl", hash = "sha256:345f8d340802ebce509f49d5833cc913da40c82f2e0daf9f60149cacc9ca680f", size = 722400, upload-time = "2024-10-01T23:07:35.537Z" }, - { url = "https://files.pythonhosted.org/packages/38/52/a58196a45232e9046c8b13f4fa3d89cca0e462b5c6d28969759226f781ee/pymongo-4.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:3a70d5efdc0387ac8cd50f9a5f379648ecfc322d14ec9e1ba8ec957e5d08c372", size = 727386, upload-time = "2024-10-01T23:07:37.295Z" }, - { url = "https://files.pythonhosted.org/packages/39/69/a13a61fd9a19e659cb43cb98240a75dab2f8e7b60bee568c309a123f8edc/pymongo-4.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15b1492cc5c7cd260229590be7218261e81684b8da6d6de2660cf743445500ce", size = 781650, upload-time = "2024-10-01T23:07:39.173Z" }, - { url = "https://files.pythonhosted.org/packages/14/13/a5a3da69ee146bac81baacc7b27995849bfbb89eaabfb3d19824c7056fb4/pymongo-4.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:95207503c41b97e7ecc7e596d84a61f441b4935f11aa8332828a754e7ada8c82", size = 781929, upload-time = "2024-10-01T23:07:40.666Z" }, - { url = "https://files.pythonhosted.org/packages/b0/65/118bc20fc66451ae4b8ceafbd9aab1168bb13cf4e5699b81807bb911a443/pymongo-4.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb99f003c720c6d83be02c8f1a7787c22384a8ca9a4181e406174db47a048619", size = 1167200, upload-time = "2024-10-01T23:07:42.37Z" }, - { url = "https://files.pythonhosted.org/packages/d1/4a/19c3d45659835f814efef8b250456923899cc7542c52f8beb1a6a164106f/pymongo-4.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f2bc1ee4b1ca2c4e7e6b7a5e892126335ec8d9215bcd3ac2fe075870fefc3358", size = 1200021, upload-time = "2024-10-01T23:07:44.061Z" }, - { url = "https://files.pythonhosted.org/packages/1c/03/69cee6f23463251a8f6de6670fb665e2531cc0df500d61150e57d1aedf70/pymongo-4.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:93a0833c10a967effcd823b4e7445ec491f0bf6da5de0ca33629c0528f42b748", size = 1185518, upload-time = "2024-10-01T23:07:45.613Z" }, - { url = "https://files.pythonhosted.org/packages/00/58/01d8b3b374e45931581364752bf7a4693e9c7422704f81e6e91ffa42c38d/pymongo-4.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f56707497323150bd2ed5d63067f4ffce940d0549d4ea2dfae180deec7f9363", size = 1169799, upload-time = "2024-10-01T23:07:47.656Z" }, - { url = "https://files.pythonhosted.org/packages/be/6f/9aa0ba2f4cfa4c30c962bd1f5a38b2eb95b23e3965918d211da82ebaacf6/pymongo-4.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:409ab7d6c4223e5c85881697f365239dd3ed1b58f28e4124b846d9d488c86880", size = 1149344, upload-time = "2024-10-01T23:07:49.945Z" }, - { url = "https://files.pythonhosted.org/packages/fc/af/40f0112605f75f5ae5da554b2f779a83c40ecf2298c57e120e6d7bfcff65/pymongo-4.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dac78a650dc0637d610905fd06b5fa6419ae9028cf4d04d6a2657bc18a66bbce", size = 1134277, upload-time = "2024-10-01T23:07:51.544Z" }, - { url = "https://files.pythonhosted.org/packages/a1/92/9a4afaf02d4d633c3211b7535e6bfbb2527524ca8ac8039b8d7eb3c765eb/pymongo-4.10.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1ec3fa88b541e0481aff3c35194c9fac96e4d57ec5d1c122376000eb28c01431", size = 1167588, upload-time = "2024-10-01T23:07:53.31Z" }, - { url = "https://files.pythonhosted.org/packages/29/de/3c23e7739b0d0dafa4d802e9773011cf54e305c7cb788a52d50c3ef585d2/pymongo-4.10.1-cp39-cp39-win32.whl", hash = "sha256:e0e961923a7b8a1c801c43552dcb8153e45afa41749d9efbd3a6d33f45489f7a", size = 767325, upload-time = "2024-10-01T23:07:54.92Z" }, - { url = "https://files.pythonhosted.org/packages/36/d4/49198168f296838c49d732743ae073f9ca9e8f65f15f5209637456892968/pymongo-4.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:dabe8bf1ad644e6b93f3acf90ff18536d94538ca4d27e583c6db49889e98e48f", size = 777078, upload-time = "2024-10-01T23:07:56.542Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/65/9c/a4895c4b785fc9865a84a56e14b5bd21ca75aadc3dab79c14187cdca189b/pymongo-4.16.0.tar.gz", hash = "sha256:8ba8405065f6e258a6f872fe62d797a28f383a12178c7153c01ed04e845c600c", size = 2495323, upload-time = "2026-01-07T18:05:48.107Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/93/c36c0998dd91ad8b5031d2e77a903d5cd705b5ba05ca92bcc8731a2c3a8d/pymongo-4.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ed162b2227f98d5b270ecbe1d53be56c8c81db08a1a8f5f02d89c7bb4d19591d", size = 807993, upload-time = "2026-01-07T18:03:40.302Z" }, + { url = "https://files.pythonhosted.org/packages/f3/96/d2117d792fa9fedb2f6ccf0608db31f851e8382706d7c3c88c6ac92cc958/pymongo-4.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4a9390dce61d705a88218f0d7b54d7e1fa1b421da8129fc7c009e029a9a6b81e", size = 808355, upload-time = "2026-01-07T18:03:42.13Z" }, + { url = "https://files.pythonhosted.org/packages/ae/2e/e79b7b86c0dd6323d0985c201583c7921d67b842b502aae3f3327cbe3935/pymongo-4.16.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:92a232af9927710de08a6c16a9710cc1b175fb9179c0d946cd4e213b92b2a69a", size = 1182337, upload-time = "2026-01-07T18:03:44.126Z" }, + { url = "https://files.pythonhosted.org/packages/7b/82/07ec9966381c57d941fddc52637e9c9653e63773be410bd8605f74683084/pymongo-4.16.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4d79aa147ce86aef03079096d83239580006ffb684eead593917186aee407767", size = 1200928, upload-time = "2026-01-07T18:03:45.52Z" }, + { url = "https://files.pythonhosted.org/packages/44/15/9d45e3cc6fa428b0a3600b0c1c86b310f28c91251c41493460695ab40b6b/pymongo-4.16.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:19a1c96e7f39c7a59a9cfd4d17920cf9382f6f684faeff4649bf587dc59f8edc", size = 1239418, upload-time = "2026-01-07T18:03:47.03Z" }, + { url = "https://files.pythonhosted.org/packages/c8/b3/f35ee51e2a3f05f673ad4f5e803ae1284c42f4413e8d121c4958f1af4eb9/pymongo-4.16.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efe020c46ce3c3a89af6baec6569635812129df6fb6cf76d4943af3ba6ee2069", size = 1229045, upload-time = "2026-01-07T18:03:48.377Z" }, + { url = "https://files.pythonhosted.org/packages/18/2d/1688b88d7c0a5c01da8c703dea831419435d9ce67c6ddbb0ac629c9c72d2/pymongo-4.16.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9dc2c00bed568732b89e211b6adca389053d5e6d2d5a8979e80b813c3ec4d1f9", size = 1196517, upload-time = "2026-01-07T18:03:50.205Z" }, + { url = "https://files.pythonhosted.org/packages/e6/c6/e89db0f23bd20757b627a5d8c73a609ffd6741887b9004ab229208a79764/pymongo-4.16.0-cp310-cp310-win32.whl", hash = "sha256:5b9c6d689bbe5beb156374508133218610e14f8c81e35bc17d7a14e30ab593e6", size = 794911, upload-time = "2026-01-07T18:03:52.701Z" }, + { url = "https://files.pythonhosted.org/packages/37/54/e00a5e517153f310a33132375159e42dceb12bee45b51b35aa0df14f1866/pymongo-4.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:2290909275c9b8f637b0a92eb9b89281e18a72922749ebb903403ab6cc7da914", size = 804801, upload-time = "2026-01-07T18:03:57.671Z" }, + { url = "https://files.pythonhosted.org/packages/e5/0a/2572faf89195a944c99c6d756227019c8c5f4b5658ecc261c303645dfe69/pymongo-4.16.0-cp310-cp310-win_arm64.whl", hash = "sha256:6af1aaa26f0835175d2200e62205b78e7ec3ffa430682e322cc91aaa1a0dbf28", size = 797579, upload-time = "2026-01-07T18:03:59.1Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3a/907414a763c4270b581ad6d960d0c6221b74a70eda216a1fdd8fa82ba89f/pymongo-4.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6f2077ec24e2f1248f9cac7b9a2dfb894e50cc7939fcebfb1759f99304caabef", size = 862561, upload-time = "2026-01-07T18:04:00.628Z" }, + { url = "https://files.pythonhosted.org/packages/8c/58/787d8225dd65cb2383c447346ea5e200ecfde89962d531111521e3b53018/pymongo-4.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4d4f7ba040f72a9f43a44059872af5a8c8c660aa5d7f90d5344f2ed1c3c02721", size = 862923, upload-time = "2026-01-07T18:04:02.213Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a7/cc2865aae32bc77ade7b35f957a58df52680d7f8506f93c6edbf458e5738/pymongo-4.16.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8a0f73af1ea56c422b2dcfc0437459148a799ef4231c6aee189d2d4c59d6728f", size = 1426779, upload-time = "2026-01-07T18:04:03.942Z" }, + { url = "https://files.pythonhosted.org/packages/81/25/3e96eb7998eec05382174da2fefc58d28613f46bbdf821045539d0ed60ab/pymongo-4.16.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa30cd16ddd2f216d07ba01d9635c873e97ddb041c61cf0847254edc37d1c60e", size = 1454207, upload-time = "2026-01-07T18:04:05.387Z" }, + { url = "https://files.pythonhosted.org/packages/86/7b/8e817a7df8c5d565d39dd4ca417a5e0ef46cc5cc19aea9405f403fec6449/pymongo-4.16.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d638b0b1b294d95d0fdc73688a3b61e05cc4188872818cd240d51460ccabcb5", size = 1511654, upload-time = "2026-01-07T18:04:08.458Z" }, + { url = "https://files.pythonhosted.org/packages/39/7a/50c4d075ccefcd281cdcfccc5494caa5665b096b85e65a5d6afabb80e09e/pymongo-4.16.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:21d02cc10a158daa20cb040985e280e7e439832fc6b7857bff3d53ef6914ad50", size = 1496794, upload-time = "2026-01-07T18:04:10.355Z" }, + { url = "https://files.pythonhosted.org/packages/0f/cd/ebdc1aaca5deeaf47310c369ef4083e8550e04e7bf7e3752cfb7d95fcdb8/pymongo-4.16.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4fbb8d3552c2ad99d9e236003c0b5f96d5f05e29386ba7abae73949bfebc13dd", size = 1448371, upload-time = "2026-01-07T18:04:11.76Z" }, + { url = "https://files.pythonhosted.org/packages/3d/c9/50fdd78c37f68ea49d590c027c96919fbccfd98f3a4cb39f84f79970bd37/pymongo-4.16.0-cp311-cp311-win32.whl", hash = "sha256:be1099a8295b1a722d03fb7b48be895d30f4301419a583dcf50e9045968a041c", size = 841024, upload-time = "2026-01-07T18:04:13.522Z" }, + { url = "https://files.pythonhosted.org/packages/4a/dd/a3aa1ade0cf9980744db703570afac70a62c85b432c391dea0577f6da7bb/pymongo-4.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:61567f712bda04c7545a037e3284b4367cad8d29b3dec84b4bf3b2147020a75b", size = 855838, upload-time = "2026-01-07T18:04:14.923Z" }, + { url = "https://files.pythonhosted.org/packages/bf/10/9ad82593ccb895e8722e4884bad4c5ce5e8ff6683b740d7823a6c2bcfacf/pymongo-4.16.0-cp311-cp311-win_arm64.whl", hash = "sha256:c53338613043038005bf2e41a2fafa08d29cdbc0ce80891b5366c819456c1ae9", size = 845007, upload-time = "2026-01-07T18:04:17.099Z" }, + { url = "https://files.pythonhosted.org/packages/6a/03/6dd7c53cbde98de469a3e6fb893af896dca644c476beb0f0c6342bcc368b/pymongo-4.16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bd4911c40a43a821dfd93038ac824b756b6e703e26e951718522d29f6eb166a8", size = 917619, upload-time = "2026-01-07T18:04:19.173Z" }, + { url = "https://files.pythonhosted.org/packages/73/e1/328915f2734ea1f355dc9b0e98505ff670f5fab8be5e951d6ed70971c6aa/pymongo-4.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25a6b03a68f9907ea6ec8bc7cf4c58a1b51a18e23394f962a6402f8e46d41211", size = 917364, upload-time = "2026-01-07T18:04:20.861Z" }, + { url = "https://files.pythonhosted.org/packages/41/fe/4769874dd9812a1bc2880a9785e61eba5340da966af888dd430392790ae0/pymongo-4.16.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:91ac0cb0fe2bf17616c2039dac88d7c9a5088f5cb5829b27c9d250e053664d31", size = 1686901, upload-time = "2026-01-07T18:04:22.219Z" }, + { url = "https://files.pythonhosted.org/packages/fa/8d/15707b9669fdc517bbc552ac60da7124dafe7ac1552819b51e97ed4038b4/pymongo-4.16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cf0ec79e8ca7077f455d14d915d629385153b6a11abc0b93283ed73a8013e376", size = 1723034, upload-time = "2026-01-07T18:04:24.055Z" }, + { url = "https://files.pythonhosted.org/packages/5b/af/3d5d16ff11d447d40c1472da1b366a31c7380d7ea2922a449c7f7f495567/pymongo-4.16.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2d0082631a7510318befc2b4fdab140481eb4b9dd62d9245e042157085da2a70", size = 1797161, upload-time = "2026-01-07T18:04:25.964Z" }, + { url = "https://files.pythonhosted.org/packages/fb/04/725ab8664eeec73ec125b5a873448d80f5d8cf2750aaaf804cbc538a50a5/pymongo-4.16.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:85dc2f3444c346ea019a371e321ac868a4fab513b7a55fe368f0cc78de8177cc", size = 1780938, upload-time = "2026-01-07T18:04:28.745Z" }, + { url = "https://files.pythonhosted.org/packages/22/50/dd7e9095e1ca35f93c3c844c92eb6eb0bc491caeb2c9bff3b32fe3c9b18f/pymongo-4.16.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dabbf3c14de75a20cc3c30bf0c6527157224a93dfb605838eabb1a2ee3be008d", size = 1714342, upload-time = "2026-01-07T18:04:30.331Z" }, + { url = "https://files.pythonhosted.org/packages/03/c9/542776987d5c31ae8e93e92680ea2b6e5a2295f398b25756234cabf38a39/pymongo-4.16.0-cp312-cp312-win32.whl", hash = "sha256:60307bb91e0ab44e560fe3a211087748b2b5f3e31f403baf41f5b7b0a70bd104", size = 887868, upload-time = "2026-01-07T18:04:32.124Z" }, + { url = "https://files.pythonhosted.org/packages/2e/d4/b4045a7ccc5680fb496d01edf749c7a9367cc8762fbdf7516cf807ef679b/pymongo-4.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:f513b2c6c0d5c491f478422f6b5b5c27ac1af06a54c93ef8631806f7231bd92e", size = 907554, upload-time = "2026-01-07T18:04:33.685Z" }, + { url = "https://files.pythonhosted.org/packages/60/4c/33f75713d50d5247f2258405142c0318ff32c6f8976171c4fcae87a9dbdf/pymongo-4.16.0-cp312-cp312-win_arm64.whl", hash = "sha256:dfc320f08ea9a7ec5b2403dc4e8150636f0d6150f4b9792faaae539c88e7db3b", size = 892971, upload-time = "2026-01-07T18:04:35.594Z" }, + { url = "https://files.pythonhosted.org/packages/47/84/148d8b5da8260f4679d6665196ae04ab14ffdf06f5fe670b0ab11942951f/pymongo-4.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d15f060bc6d0964a8bb70aba8f0cb6d11ae99715438f640cff11bbcf172eb0e8", size = 972009, upload-time = "2026-01-07T18:04:38.303Z" }, + { url = "https://files.pythonhosted.org/packages/1e/5e/9f3a8daf583d0adaaa033a3e3e58194d2282737dc164014ff33c7a081103/pymongo-4.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a19ea46a0fe71248965305a020bc076a163311aefbaa1d83e47d06fa30ac747", size = 971784, upload-time = "2026-01-07T18:04:39.669Z" }, + { url = "https://files.pythonhosted.org/packages/ad/f2/b6c24361fcde24946198573c0176406bfd5f7b8538335f3d939487055322/pymongo-4.16.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:311d4549d6bf1f8c61d025965aebb5ba29d1481dc6471693ab91610aaffbc0eb", size = 1947174, upload-time = "2026-01-07T18:04:41.368Z" }, + { url = "https://files.pythonhosted.org/packages/47/1a/8634192f98cf740b3d174e1018dd0350018607d5bd8ac35a666dc49c732b/pymongo-4.16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:46ffb728d92dd5b09fc034ed91acf5595657c7ca17d4cf3751322cd554153c17", size = 1991727, upload-time = "2026-01-07T18:04:42.965Z" }, + { url = "https://files.pythonhosted.org/packages/5a/2f/0c47ac84572b28e23028a23a3798a1f725e1c23b0cf1c1424678d16aff42/pymongo-4.16.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:acda193f440dd88c2023cb00aa8bd7b93a9df59978306d14d87a8b12fe426b05", size = 2082497, upload-time = "2026-01-07T18:04:44.652Z" }, + { url = "https://files.pythonhosted.org/packages/ba/57/9f46ef9c862b2f0cf5ce798f3541c201c574128d31ded407ba4b3918d7b6/pymongo-4.16.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5d9fdb386cf958e6ef6ff537d6149be7edb76c3268cd6833e6c36aa447e4443f", size = 2064947, upload-time = "2026-01-07T18:04:46.228Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/5421c0998f38e32288100a07f6cb2f5f9f352522157c901910cb2927e211/pymongo-4.16.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:91899dd7fb9a8c50f09c3c1cf0cb73bfbe2737f511f641f19b9650deb61c00ca", size = 1980478, upload-time = "2026-01-07T18:04:48.017Z" }, + { url = "https://files.pythonhosted.org/packages/92/93/bfc448d025e12313a937d6e1e0101b50cc9751636b4b170e600fe3203063/pymongo-4.16.0-cp313-cp313-win32.whl", hash = "sha256:2cd60cd1e05de7f01927f8e25ca26b3ea2c09de8723241e5d3bcfdc70eaff76b", size = 934672, upload-time = "2026-01-07T18:04:49.538Z" }, + { url = "https://files.pythonhosted.org/packages/96/10/12710a5e01218d50c3dd165fd72c5ed2699285f77348a3b1a119a191d826/pymongo-4.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3ead8a0050c53eaa55935895d6919d393d0328ec24b2b9115bdbe881aa222673", size = 959237, upload-time = "2026-01-07T18:04:51.382Z" }, + { url = "https://files.pythonhosted.org/packages/0c/56/d288bcd1d05bc17ec69df1d0b1d67bc710c7c5dbef86033a5a4d2e2b08e6/pymongo-4.16.0-cp313-cp313-win_arm64.whl", hash = "sha256:dbbc5b254c36c37d10abb50e899bc3939bbb7ab1e7c659614409af99bd3e7675", size = 940909, upload-time = "2026-01-07T18:04:52.904Z" }, + { url = "https://files.pythonhosted.org/packages/30/9e/4d343f8d0512002fce17915a89477b9f916bda1205729e042d8f23acf194/pymongo-4.16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:8a254d49a9ffe9d7f888e3c677eed3729b14ce85abb08cd74732cead6ccc3c66", size = 1026634, upload-time = "2026-01-07T18:04:54.359Z" }, + { url = "https://files.pythonhosted.org/packages/c3/e3/341f88c5535df40c0450fda915f582757bb7d988cdfc92990a5e27c4c324/pymongo-4.16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a1bf44e13cf2d44d2ea2e928a8140d5d667304abe1a61c4d55b4906f389fbe64", size = 1026252, upload-time = "2026-01-07T18:04:56.642Z" }, + { url = "https://files.pythonhosted.org/packages/af/64/9471b22eb98f0a2ca0b8e09393de048502111b2b5b14ab1bd9e39708aab5/pymongo-4.16.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f1c5f1f818b669875d191323a48912d3fcd2e4906410e8297bb09ac50c4d5ccc", size = 2207399, upload-time = "2026-01-07T18:04:58.255Z" }, + { url = "https://files.pythonhosted.org/packages/87/ac/47c4d50b25a02f21764f140295a2efaa583ee7f17992a5e5fa542b3a690f/pymongo-4.16.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:77cfd37a43a53b02b7bd930457c7994c924ad8bbe8dff91817904bcbf291b371", size = 2260595, upload-time = "2026-01-07T18:04:59.788Z" }, + { url = "https://files.pythonhosted.org/packages/ee/1b/0ce1ce9dd036417646b2fe6f63b58127acff3cf96eeb630c34ec9cd675ff/pymongo-4.16.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:36ef2fee50eee669587d742fb456e349634b4fcf8926208766078b089054b24b", size = 2366958, upload-time = "2026-01-07T18:05:01.942Z" }, + { url = "https://files.pythonhosted.org/packages/3e/3c/a5a17c0d413aa9d6c17bc35c2b472e9e79cda8068ba8e93433b5f43028e9/pymongo-4.16.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:55f8d5a6fe2fa0b823674db2293f92d74cd5f970bc0360f409a1fc21003862d3", size = 2346081, upload-time = "2026-01-07T18:05:03.576Z" }, + { url = "https://files.pythonhosted.org/packages/65/19/f815533d1a88fb8a3b6c6e895bb085ffdae68ccb1e6ed7102202a307f8e2/pymongo-4.16.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9caacac0dd105e2555521002e2d17afc08665187017b466b5753e84c016628e6", size = 2246053, upload-time = "2026-01-07T18:05:05.459Z" }, + { url = "https://files.pythonhosted.org/packages/c6/88/4be3ec78828dc64b212c123114bd6ae8db5b7676085a7b43cc75d0131bd2/pymongo-4.16.0-cp314-cp314-win32.whl", hash = "sha256:c789236366525c3ee3cd6e4e450a9ff629a7d1f4d88b8e18a0aea0615fd7ecf8", size = 989461, upload-time = "2026-01-07T18:05:07.018Z" }, + { url = "https://files.pythonhosted.org/packages/af/5a/ab8d5af76421b34db483c9c8ebc3a2199fb80ae63dc7e18f4cf1df46306a/pymongo-4.16.0-cp314-cp314-win_amd64.whl", hash = "sha256:2b0714d7764efb29bf9d3c51c964aed7c4c7237b341f9346f15ceaf8321fdb35", size = 1017803, upload-time = "2026-01-07T18:05:08.499Z" }, + { url = "https://files.pythonhosted.org/packages/f6/f4/98d68020728ac6423cf02d17cfd8226bf6cce5690b163d30d3f705e8297e/pymongo-4.16.0-cp314-cp314-win_arm64.whl", hash = "sha256:12762e7cc0f8374a8cae3b9f9ed8dabb5d438c7b33329232dd9b7de783454033", size = 997184, upload-time = "2026-01-07T18:05:09.944Z" }, + { url = "https://files.pythonhosted.org/packages/50/00/dc3a271daf06401825b9c1f4f76f018182c7738281ea54b9762aea0560c1/pymongo-4.16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1c01e8a7cd0ea66baf64a118005535ab5bf9f9eb63a1b50ac3935dccf9a54abe", size = 1083303, upload-time = "2026-01-07T18:05:11.702Z" }, + { url = "https://files.pythonhosted.org/packages/b8/4b/b5375ee21d12eababe46215011ebc63801c0d2c5ffdf203849d0d79f9852/pymongo-4.16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:4c4872299ebe315a79f7f922051061634a64fda95b6b17677ba57ef00b2ba2a4", size = 1083233, upload-time = "2026-01-07T18:05:13.182Z" }, + { url = "https://files.pythonhosted.org/packages/ee/e3/52efa3ca900622c7dcb56c5e70f15c906816d98905c22d2ee1f84d9a7b60/pymongo-4.16.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:78037d02389745e247fe5ab0bcad5d1ab30726eaac3ad79219c7d6bbb07eec53", size = 2527438, upload-time = "2026-01-07T18:05:14.981Z" }, + { url = "https://files.pythonhosted.org/packages/cb/96/43b1be151c734e7766c725444bcbfa1de6b60cc66bfb406203746839dd25/pymongo-4.16.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c126fb72be2518395cc0465d4bae03125119136462e1945aea19840e45d89cfc", size = 2600399, upload-time = "2026-01-07T18:05:16.794Z" }, + { url = "https://files.pythonhosted.org/packages/e7/62/fa64a5045dfe3a1cd9217232c848256e7bc0136cffb7da4735c5e0d30e40/pymongo-4.16.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f3867dc225d9423c245a51eaac2cfcd53dde8e0a8d8090bb6aed6e31bd6c2d4f", size = 2720960, upload-time = "2026-01-07T18:05:18.498Z" }, + { url = "https://files.pythonhosted.org/packages/54/7b/01577eb97e605502821273a5bc16ce0fb0be5c978fe03acdbff471471202/pymongo-4.16.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f25001a955073b80510c0c3db0e043dbbc36904fd69e511c74e3d8640b8a5111", size = 2699344, upload-time = "2026-01-07T18:05:20.073Z" }, + { url = "https://files.pythonhosted.org/packages/55/68/6ef6372d516f703479c3b6cbbc45a5afd307173b1cbaccd724e23919bb1a/pymongo-4.16.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d9885aad05f82fd7ea0c9ca505d60939746b39263fa273d0125170da8f59098", size = 2577133, upload-time = "2026-01-07T18:05:22.052Z" }, + { url = "https://files.pythonhosted.org/packages/15/c7/b5337093bb01da852f945802328665f85f8109dbe91d81ea2afe5ff059b9/pymongo-4.16.0-cp314-cp314t-win32.whl", hash = "sha256:948152b30eddeae8355495f9943a3bf66b708295c0b9b6f467de1c620f215487", size = 1040560, upload-time = "2026-01-07T18:05:23.888Z" }, + { url = "https://files.pythonhosted.org/packages/96/8c/5b448cd1b103f3889d5713dda37304c81020ff88e38a826e8a75ddff4610/pymongo-4.16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:f6e42c1bc985d9beee884780ae6048790eb4cd565c46251932906bdb1630034a", size = 1075081, upload-time = "2026-01-07T18:05:26.874Z" }, + { url = "https://files.pythonhosted.org/packages/32/cd/ddc794cdc8500f6f28c119c624252fb6dfb19481c6d7ed150f13cf468a6d/pymongo-4.16.0-cp314-cp314t-win_arm64.whl", hash = "sha256:6b2a20edb5452ac8daa395890eeb076c570790dfce6b7a44d788af74c2f8cf96", size = 1047725, upload-time = "2026-01-07T18:05:28.47Z" }, ] [[package]] name = "pyright" -version = "1.1.382.post1" +version = "1.1.408" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nodeenv" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1b/d3/fbf59f51cb74fc62a0c2b791aaa6242c8004db551b30c726783ba4432f05/pyright-1.1.382.post1.tar.gz", hash = "sha256:66a5d4e83be9452853d73e9dd9e95ba0ac3061845270e4e331d0070a597d3445", size = 21965, upload-time = "2024-09-27T13:36:45.072Z" } +sdist = { url = "https://files.pythonhosted.org/packages/74/b2/5db700e52554b8f025faa9c3c624c59f1f6c8841ba81ab97641b54322f16/pyright-1.1.408.tar.gz", hash = "sha256:f28f2321f96852fa50b5829ea492f6adb0e6954568d1caa3f3af3a5f555eb684", size = 4400578, upload-time = "2026-01-08T08:07:38.795Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/e2/7661f69927bf052e36d9c162c5087a02c346d0269be238cea2f5ae1e80f2/pyright-1.1.382.post1-py3-none-any.whl", hash = "sha256:21a4749dd1740e209f88d3a601e9f40748670d39481ea32b9d77edf7f3f1fb2e", size = 18669, upload-time = "2024-09-27T13:36:43.209Z" }, + { url = "https://files.pythonhosted.org/packages/0c/82/a2c93e32800940d9573fb28c346772a14778b84ba7524e691b324620ab89/pyright-1.1.408-py3-none-any.whl", hash = "sha256:090b32865f4fdb1e0e6cd82bf5618480d48eecd2eb2e70f960982a3d9a4c17c1", size = 6399144, upload-time = "2026-01-08T08:07:37.082Z" }, ] [[package]] name = "pytest" -version = "8.3.3" +version = "9.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -1665,23 +1770,26 @@ dependencies = [ { name = "iniconfig" }, { name = "packaging" }, { name = "pluggy" }, + { name = "pygments" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8b/6c/62bbd536103af674e227c41a8f3dcd022d591f6eed5facb5a0f31ee33bbc/pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181", size = 1442487, upload-time = "2024-09-10T10:52:15.003Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/77/7440a06a8ead44c7757a64362dd22df5760f9b12dc5f11b6188cd2fc27a0/pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2", size = 342341, upload-time = "2024-09-10T10:52:12.54Z" }, + { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, ] [[package]] name = "pytest-asyncio" -version = "0.24.0" +version = "1.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "backports-asyncio-runner", marker = "python_full_version < '3.11'" }, { name = "pytest" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/52/6d/c6cf50ce320cf8611df7a1254d86233b3df7cc07f9b5f5cbcb82e08aa534/pytest_asyncio-0.24.0.tar.gz", hash = "sha256:d081d828e576d85f875399194281e92bf8a68d60d72d1a2faf2feddb6c46b276", size = 49855, upload-time = "2024-08-22T08:03:18.145Z" } +sdist = { url = "https://files.pythonhosted.org/packages/90/2c/8af215c0f776415f3590cac4f9086ccefd6fd463befeae41cd4d3f193e5a/pytest_asyncio-1.3.0.tar.gz", hash = "sha256:d7f52f36d231b80ee124cd216ffb19369aa168fc10095013c6b014a34d3ee9e5", size = 50087, upload-time = "2025-11-10T16:07:47.256Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/96/31/6607dab48616902f76885dfcf62c08d929796fc3b2d2318faf9fd54dbed9/pytest_asyncio-0.24.0-py3-none-any.whl", hash = "sha256:a811296ed596b69bf0b6f3dc40f83bcaf341b155a269052d82efa2b25ac7037b", size = 18024, upload-time = "2024-08-22T08:03:15.536Z" }, + { url = "https://files.pythonhosted.org/packages/e5/35/f8b19922b6a25bc0880171a2f1a003eaeb93657475193ab516fd87cac9da/pytest_asyncio-1.3.0-py3-none-any.whl", hash = "sha256:611e26147c7f77640e6d0a92a38ed17c3e9848063698d5c93d5aa7aa11cebff5", size = 15075, upload-time = "2025-11-10T16:07:45.537Z" }, ] [[package]] @@ -1696,525 +1804,498 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, ] -[[package]] -name = "pytz" -version = "2024.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", size = 319692, upload-time = "2024-09-11T02:24:47.91Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002, upload-time = "2024-09-11T02:24:45.8Z" }, -] - -[[package]] -name = "pywin32" -version = "306" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/08/dc/28c668097edfaf4eac4617ef7adf081b9cf50d254672fcf399a70f5efc41/pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d", size = 8506422, upload-time = "2023-03-26T03:27:46.303Z" }, - { url = "https://files.pythonhosted.org/packages/d3/d6/891894edec688e72c2e308b3243fad98b4066e1839fd2fe78f04129a9d31/pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8", size = 9226392, upload-time = "2023-03-26T03:27:53.591Z" }, - { url = "https://files.pythonhosted.org/packages/8b/1e/fc18ad83ca553e01b97aa8393ff10e33c1fb57801db05488b83282ee9913/pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407", size = 8507689, upload-time = "2023-03-25T23:50:08.499Z" }, - { url = "https://files.pythonhosted.org/packages/7e/9e/ad6b1ae2a5ad1066dc509350e0fbf74d8d50251a51e420a2a8feaa0cecbd/pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e", size = 9227547, upload-time = "2023-03-25T23:50:20.331Z" }, - { url = "https://files.pythonhosted.org/packages/91/20/f744bff1da8f43388498503634378dbbefbe493e65675f2cc52f7185c2c2/pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a", size = 10388324, upload-time = "2023-03-25T23:50:30.904Z" }, - { url = "https://files.pythonhosted.org/packages/14/91/17e016d5923e178346aabda3dfec6629d1a26efe587d19667542105cf0a6/pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b", size = 8507705, upload-time = "2023-03-25T23:50:40.279Z" }, - { url = "https://files.pythonhosted.org/packages/83/1c/25b79fc3ec99b19b0a0730cc47356f7e2959863bf9f3cd314332bddb4f68/pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e", size = 9227429, upload-time = "2023-03-25T23:50:50.222Z" }, - { url = "https://files.pythonhosted.org/packages/1c/43/e3444dc9a12f8365d9603c2145d16bf0a2f8180f343cf87be47f5579e547/pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040", size = 10388145, upload-time = "2023-03-25T23:51:01.401Z" }, - { url = "https://files.pythonhosted.org/packages/0e/57/c3ec32b498f24a2392404d1f0fd29f47a3f7339d7d579df7a0560cff337c/pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a", size = 8632118, upload-time = "2023-03-25T23:51:29.387Z" }, - { url = "https://files.pythonhosted.org/packages/fa/80/a6b22e031590cc5f4fcbd5bf4bcf63a9dabce9d59065f53add99a8caaec5/pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0", size = 9373699, upload-time = "2023-03-25T23:51:39.175Z" }, - { url = "https://files.pythonhosted.org/packages/7e/7f/419c4fcadcaa374a0ae41cbdf6c3a81452892dd6c523aea629d17e49146e/pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802", size = 8573451, upload-time = "2023-03-25T23:51:47.59Z" }, - { url = "https://files.pythonhosted.org/packages/1c/f7/24d8ed4fd9c43b90354df7764f81f0dd5e623f9a50f1538f90fe085d6dff/pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4", size = 9312883, upload-time = "2023-03-25T23:51:56.688Z" }, -] - [[package]] name = "pyyaml" -version = "6.0.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631, upload-time = "2024-08-06T20:33:50.674Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/95/a3fac87cb7158e231b5a6012e438c647e1a87f09f8e0d123acec8ab8bf71/PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", size = 184199, upload-time = "2024-08-06T20:31:40.178Z" }, - { url = "https://files.pythonhosted.org/packages/c7/7a/68bd47624dab8fd4afbfd3c48e3b79efe09098ae941de5b58abcbadff5cb/PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", size = 171758, upload-time = "2024-08-06T20:31:42.173Z" }, - { url = "https://files.pythonhosted.org/packages/49/ee/14c54df452143b9ee9f0f29074d7ca5516a36edb0b4cc40c3f280131656f/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", size = 718463, upload-time = "2024-08-06T20:31:44.263Z" }, - { url = "https://files.pythonhosted.org/packages/4d/61/de363a97476e766574650d742205be468921a7b532aa2499fcd886b62530/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", size = 719280, upload-time = "2024-08-06T20:31:50.199Z" }, - { url = "https://files.pythonhosted.org/packages/6b/4e/1523cb902fd98355e2e9ea5e5eb237cbc5f3ad5f3075fa65087aa0ecb669/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", size = 751239, upload-time = "2024-08-06T20:31:52.292Z" }, - { url = "https://files.pythonhosted.org/packages/b7/33/5504b3a9a4464893c32f118a9cc045190a91637b119a9c881da1cf6b7a72/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", size = 695802, upload-time = "2024-08-06T20:31:53.836Z" }, - { url = "https://files.pythonhosted.org/packages/5c/20/8347dcabd41ef3a3cdc4f7b7a2aff3d06598c8779faa189cdbf878b626a4/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", size = 720527, upload-time = "2024-08-06T20:31:55.565Z" }, - { url = "https://files.pythonhosted.org/packages/be/aa/5afe99233fb360d0ff37377145a949ae258aaab831bde4792b32650a4378/PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", size = 144052, upload-time = "2024-08-06T20:31:56.914Z" }, - { url = "https://files.pythonhosted.org/packages/b5/84/0fa4b06f6d6c958d207620fc60005e241ecedceee58931bb20138e1e5776/PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", size = 161774, upload-time = "2024-08-06T20:31:58.304Z" }, - { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612, upload-time = "2024-08-06T20:32:03.408Z" }, - { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040, upload-time = "2024-08-06T20:32:04.926Z" }, - { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829, upload-time = "2024-08-06T20:32:06.459Z" }, - { url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167, upload-time = "2024-08-06T20:32:08.338Z" }, - { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952, upload-time = "2024-08-06T20:32:14.124Z" }, - { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301, upload-time = "2024-08-06T20:32:16.17Z" }, - { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638, upload-time = "2024-08-06T20:32:18.555Z" }, - { url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850, upload-time = "2024-08-06T20:32:19.889Z" }, - { url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980, upload-time = "2024-08-06T20:32:21.273Z" }, - { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873, upload-time = "2024-08-06T20:32:25.131Z" }, - { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302, upload-time = "2024-08-06T20:32:26.511Z" }, - { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154, upload-time = "2024-08-06T20:32:28.363Z" }, - { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223, upload-time = "2024-08-06T20:32:30.058Z" }, - { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542, upload-time = "2024-08-06T20:32:31.881Z" }, - { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164, upload-time = "2024-08-06T20:32:37.083Z" }, - { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611, upload-time = "2024-08-06T20:32:38.898Z" }, - { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591, upload-time = "2024-08-06T20:32:40.241Z" }, - { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338, upload-time = "2024-08-06T20:32:41.93Z" }, - { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309, upload-time = "2024-08-06T20:32:43.4Z" }, - { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679, upload-time = "2024-08-06T20:32:44.801Z" }, - { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428, upload-time = "2024-08-06T20:32:46.432Z" }, - { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361, upload-time = "2024-08-06T20:32:51.188Z" }, - { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523, upload-time = "2024-08-06T20:32:53.019Z" }, - { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660, upload-time = "2024-08-06T20:32:54.708Z" }, - { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597, upload-time = "2024-08-06T20:32:56.985Z" }, - { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527, upload-time = "2024-08-06T20:33:03.001Z" }, - { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446, upload-time = "2024-08-06T20:33:04.33Z" }, - { url = "https://files.pythonhosted.org/packages/74/d9/323a59d506f12f498c2097488d80d16f4cf965cee1791eab58b56b19f47a/PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a", size = 183218, upload-time = "2024-08-06T20:33:06.411Z" }, - { url = "https://files.pythonhosted.org/packages/74/cc/20c34d00f04d785f2028737e2e2a8254e1425102e730fee1d6396f832577/PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5", size = 728067, upload-time = "2024-08-06T20:33:07.879Z" }, - { url = "https://files.pythonhosted.org/packages/20/52/551c69ca1501d21c0de51ddafa8c23a0191ef296ff098e98358f69080577/PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d", size = 757812, upload-time = "2024-08-06T20:33:12.542Z" }, - { url = "https://files.pythonhosted.org/packages/fd/7f/2c3697bba5d4aa5cc2afe81826d73dfae5f049458e44732c7a0938baa673/PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083", size = 746531, upload-time = "2024-08-06T20:33:14.391Z" }, - { url = "https://files.pythonhosted.org/packages/8c/ab/6226d3df99900e580091bb44258fde77a8433511a86883bd4681ea19a858/PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706", size = 800820, upload-time = "2024-08-06T20:33:16.586Z" }, - { url = "https://files.pythonhosted.org/packages/a0/99/a9eb0f3e710c06c5d922026f6736e920d431812ace24aae38228d0d64b04/PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a", size = 145514, upload-time = "2024-08-06T20:33:22.414Z" }, - { url = "https://files.pythonhosted.org/packages/75/8a/ee831ad5fafa4431099aa4e078d4c8efd43cd5e48fbc774641d233b683a9/PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff", size = 162702, upload-time = "2024-08-06T20:33:23.813Z" }, - { url = "https://files.pythonhosted.org/packages/65/d8/b7a1db13636d7fb7d4ff431593c510c8b8fca920ade06ca8ef20015493c5/PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d", size = 184777, upload-time = "2024-08-06T20:33:25.896Z" }, - { url = "https://files.pythonhosted.org/packages/0a/02/6ec546cd45143fdf9840b2c6be8d875116a64076218b61d68e12548e5839/PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f", size = 172318, upload-time = "2024-08-06T20:33:27.212Z" }, - { url = "https://files.pythonhosted.org/packages/0e/9a/8cc68be846c972bda34f6c2a93abb644fb2476f4dcc924d52175786932c9/PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290", size = 720891, upload-time = "2024-08-06T20:33:28.974Z" }, - { url = "https://files.pythonhosted.org/packages/e9/6c/6e1b7f40181bc4805e2e07f4abc10a88ce4648e7e95ff1abe4ae4014a9b2/PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12", size = 722614, upload-time = "2024-08-06T20:33:34.157Z" }, - { url = "https://files.pythonhosted.org/packages/3d/32/e7bd8535d22ea2874cef6a81021ba019474ace0d13a4819c2a4bce79bd6a/PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19", size = 737360, upload-time = "2024-08-06T20:33:35.84Z" }, - { url = "https://files.pythonhosted.org/packages/d7/12/7322c1e30b9be969670b672573d45479edef72c9a0deac3bb2868f5d7469/PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e", size = 699006, upload-time = "2024-08-06T20:33:37.501Z" }, - { url = "https://files.pythonhosted.org/packages/82/72/04fcad41ca56491995076630c3ec1e834be241664c0c09a64c9a2589b507/PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725", size = 723577, upload-time = "2024-08-06T20:33:39.389Z" }, - { url = "https://files.pythonhosted.org/packages/ed/5e/46168b1f2757f1fcd442bc3029cd8767d88a98c9c05770d8b420948743bb/PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631", size = 144593, upload-time = "2024-08-06T20:33:46.63Z" }, - { url = "https://files.pythonhosted.org/packages/19/87/5124b1c1f2412bb95c59ec481eaf936cd32f0fe2a7b16b97b81c4c017a6a/PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", size = 162312, upload-time = "2024-08-06T20:33:49.073Z" }, +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, ] [[package]] name = "pyzmq" -version = "26.2.0" +version = "27.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "implementation_name == 'pypy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fd/05/bed626b9f7bb2322cdbbf7b4bd8f54b1b617b0d2ab2d3547d6e39428a48e/pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f", size = 271975, upload-time = "2024-08-22T09:02:03.351Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/a8/9837c39aba390eb7d01924ace49d761c8dbe7bc2d6082346d00c8332e431/pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629", size = 1340058, upload-time = "2024-08-22T08:59:17.749Z" }, - { url = "https://files.pythonhosted.org/packages/a2/1f/a006f2e8e4f7d41d464272012695da17fb95f33b54342612a6890da96ff6/pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b", size = 1008818, upload-time = "2024-08-22T08:59:19.43Z" }, - { url = "https://files.pythonhosted.org/packages/b6/09/b51b6683fde5ca04593a57bbe81788b6b43114d8f8ee4e80afc991e14760/pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764", size = 673199, upload-time = "2024-08-22T08:59:20.957Z" }, - { url = "https://files.pythonhosted.org/packages/c9/78/486f3e2e824f3a645238332bf5a4c4b4477c3063033a27c1e4052358dee2/pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c", size = 911762, upload-time = "2024-08-22T08:59:22.007Z" }, - { url = "https://files.pythonhosted.org/packages/5e/3b/2eb1667c9b866f53e76ee8b0c301b0469745a23bd5a87b7ee3d5dd9eb6e5/pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a", size = 868773, upload-time = "2024-08-22T08:59:23.242Z" }, - { url = "https://files.pythonhosted.org/packages/16/29/ca99b4598a9dc7e468b5417eda91f372b595be1e3eec9b7cbe8e5d3584e8/pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88", size = 868834, upload-time = "2024-08-22T08:59:24.674Z" }, - { url = "https://files.pythonhosted.org/packages/ad/e5/9efaeb1d2f4f8c50da04144f639b042bc52869d3a206d6bf672ab3522163/pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f", size = 1202861, upload-time = "2024-08-22T08:59:26.326Z" }, - { url = "https://files.pythonhosted.org/packages/c3/62/c721b5608a8ac0a69bb83cbb7d07a56f3ff00b3991a138e44198a16f94c7/pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282", size = 1515304, upload-time = "2024-08-22T08:59:27.851Z" }, - { url = "https://files.pythonhosted.org/packages/87/84/e8bd321aa99b72f48d4606fc5a0a920154125bd0a4608c67eab742dab087/pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea", size = 1414712, upload-time = "2024-08-22T08:59:29.611Z" }, - { url = "https://files.pythonhosted.org/packages/cd/cd/420e3fd1ac6977b008b72e7ad2dae6350cc84d4c5027fc390b024e61738f/pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2", size = 578113, upload-time = "2024-08-22T08:59:31.055Z" }, - { url = "https://files.pythonhosted.org/packages/5c/57/73930d56ed45ae0cb4946f383f985c855c9b3d4063f26416998f07523c0e/pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971", size = 641631, upload-time = "2024-08-22T08:59:32.248Z" }, - { url = "https://files.pythonhosted.org/packages/61/d2/ae6ac5c397f1ccad59031c64beaafce7a0d6182e0452cc48f1c9c87d2dd0/pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa", size = 543528, upload-time = "2024-08-22T08:59:33.698Z" }, - { url = "https://files.pythonhosted.org/packages/12/20/de7442172f77f7c96299a0ac70e7d4fb78cd51eca67aa2cf552b66c14196/pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218", size = 1340639, upload-time = "2024-08-22T08:59:35.163Z" }, - { url = "https://files.pythonhosted.org/packages/98/4d/5000468bd64c7910190ed0a6c76a1ca59a68189ec1f007c451dc181a22f4/pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4", size = 1008710, upload-time = "2024-08-22T08:59:36.775Z" }, - { url = "https://files.pythonhosted.org/packages/e1/bf/c67fd638c2f9fbbab8090a3ee779370b97c82b84cc12d0c498b285d7b2c0/pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef", size = 673129, upload-time = "2024-08-22T08:59:38.012Z" }, - { url = "https://files.pythonhosted.org/packages/86/94/99085a3f492aa538161cbf27246e8886ff850e113e0c294a5b8245f13b52/pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317", size = 910107, upload-time = "2024-08-22T08:59:39.437Z" }, - { url = "https://files.pythonhosted.org/packages/31/1d/346809e8a9b999646d03f21096428453465b1bca5cd5c64ecd048d9ecb01/pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf", size = 867960, upload-time = "2024-08-22T08:59:40.606Z" }, - { url = "https://files.pythonhosted.org/packages/ab/68/6fb6ae5551846ad5beca295b7bca32bf0a7ce19f135cb30e55fa2314e6b6/pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e", size = 869204, upload-time = "2024-08-22T08:59:42.782Z" }, - { url = "https://files.pythonhosted.org/packages/0f/f9/18417771dee223ccf0f48e29adf8b4e25ba6d0e8285e33bcbce078070bc3/pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37", size = 1203351, upload-time = "2024-08-22T08:59:44.443Z" }, - { url = "https://files.pythonhosted.org/packages/e0/46/f13e67fe0d4f8a2315782cbad50493de6203ea0d744610faf4d5f5b16e90/pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3", size = 1514204, upload-time = "2024-08-22T08:59:45.913Z" }, - { url = "https://files.pythonhosted.org/packages/50/11/ddcf7343b7b7a226e0fc7b68cbf5a5bb56291fac07f5c3023bb4c319ebb4/pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6", size = 1414339, upload-time = "2024-08-22T08:59:47.702Z" }, - { url = "https://files.pythonhosted.org/packages/01/14/1c18d7d5b7be2708f513f37c61bfadfa62161c10624f8733f1c8451b3509/pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4", size = 576928, upload-time = "2024-08-22T08:59:48.856Z" }, - { url = "https://files.pythonhosted.org/packages/3b/1b/0a540edd75a41df14ec416a9a500b9fec66e554aac920d4c58fbd5756776/pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5", size = 642317, upload-time = "2024-08-22T08:59:50.561Z" }, - { url = "https://files.pythonhosted.org/packages/98/77/1cbfec0358078a4c5add529d8a70892db1be900980cdb5dd0898b3d6ab9d/pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003", size = 543834, upload-time = "2024-08-22T08:59:51.997Z" }, - { url = "https://files.pythonhosted.org/packages/28/2f/78a766c8913ad62b28581777ac4ede50c6d9f249d39c2963e279524a1bbe/pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9", size = 1343105, upload-time = "2024-08-22T08:59:53.18Z" }, - { url = "https://files.pythonhosted.org/packages/b7/9c/4b1e2d3d4065be715e007fe063ec7885978fad285f87eae1436e6c3201f4/pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52", size = 1008365, upload-time = "2024-08-22T08:59:54.4Z" }, - { url = "https://files.pythonhosted.org/packages/4f/ef/5a23ec689ff36d7625b38d121ef15abfc3631a9aecb417baf7a4245e4124/pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08", size = 665923, upload-time = "2024-08-22T08:59:55.568Z" }, - { url = "https://files.pythonhosted.org/packages/ae/61/d436461a47437d63c6302c90724cf0981883ec57ceb6073873f32172d676/pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5", size = 903400, upload-time = "2024-08-22T08:59:57.001Z" }, - { url = "https://files.pythonhosted.org/packages/47/42/fc6d35ecefe1739a819afaf6f8e686f7f02a4dd241c78972d316f403474c/pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae", size = 860034, upload-time = "2024-08-22T08:59:58.259Z" }, - { url = "https://files.pythonhosted.org/packages/07/3b/44ea6266a6761e9eefaa37d98fabefa112328808ac41aa87b4bbb668af30/pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711", size = 860579, upload-time = "2024-08-22T08:59:59.514Z" }, - { url = "https://files.pythonhosted.org/packages/38/6f/4df2014ab553a6052b0e551b37da55166991510f9e1002c89cab7ce3b3f2/pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6", size = 1196246, upload-time = "2024-08-22T09:00:01.117Z" }, - { url = "https://files.pythonhosted.org/packages/38/9d/ee240fc0c9fe9817f0c9127a43238a3e28048795483c403cc10720ddef22/pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3", size = 1507441, upload-time = "2024-08-22T09:00:02.851Z" }, - { url = "https://files.pythonhosted.org/packages/85/4f/01711edaa58d535eac4a26c294c617c9a01f09857c0ce191fd574d06f359/pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b", size = 1406498, upload-time = "2024-08-22T09:00:04.907Z" }, - { url = "https://files.pythonhosted.org/packages/07/18/907134c85c7152f679ed744e73e645b365f3ad571f38bdb62e36f347699a/pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7", size = 575533, upload-time = "2024-08-22T09:00:06.326Z" }, - { url = "https://files.pythonhosted.org/packages/ce/2c/a6f4a20202a4d3c582ad93f95ee78d79bbdc26803495aec2912b17dbbb6c/pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a", size = 637768, upload-time = "2024-08-22T09:00:08.137Z" }, - { url = "https://files.pythonhosted.org/packages/5f/0e/eb16ff731632d30554bf5af4dbba3ffcd04518219d82028aea4ae1b02ca5/pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b", size = 540675, upload-time = "2024-08-22T09:00:09.479Z" }, - { url = "https://files.pythonhosted.org/packages/04/a7/0f7e2f6c126fe6e62dbae0bc93b1bd3f1099cf7fea47a5468defebe3f39d/pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726", size = 1006564, upload-time = "2024-08-22T09:00:11.054Z" }, - { url = "https://files.pythonhosted.org/packages/31/b6/a187165c852c5d49f826a690857684333a6a4a065af0a6015572d2284f6a/pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3", size = 1340447, upload-time = "2024-08-22T09:00:12.547Z" }, - { url = "https://files.pythonhosted.org/packages/68/ba/f4280c58ff71f321602a6e24fd19879b7e79793fb8ab14027027c0fb58ef/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50", size = 665485, upload-time = "2024-08-22T09:00:14.205Z" }, - { url = "https://files.pythonhosted.org/packages/77/b5/c987a5c53c7d8704216f29fc3d810b32f156bcea488a940e330e1bcbb88d/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb", size = 903484, upload-time = "2024-08-22T09:00:16.148Z" }, - { url = "https://files.pythonhosted.org/packages/29/c9/07da157d2db18c72a7eccef8e684cefc155b712a88e3d479d930aa9eceba/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187", size = 859981, upload-time = "2024-08-22T09:00:17.443Z" }, - { url = "https://files.pythonhosted.org/packages/43/09/e12501bd0b8394b7d02c41efd35c537a1988da67fc9c745cae9c6c776d31/pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b", size = 860334, upload-time = "2024-08-22T09:00:18.65Z" }, - { url = "https://files.pythonhosted.org/packages/eb/ff/f5ec1d455f8f7385cc0a8b2acd8c807d7fade875c14c44b85c1bddabae21/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18", size = 1196179, upload-time = "2024-08-22T09:00:19.981Z" }, - { url = "https://files.pythonhosted.org/packages/ec/8a/bb2ac43295b1950fe436a81fc5b298be0b96ac76fb029b514d3ed58f7b27/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115", size = 1507668, upload-time = "2024-08-22T09:00:21.249Z" }, - { url = "https://files.pythonhosted.org/packages/a9/49/dbc284ebcfd2dca23f6349227ff1616a7ee2c4a35fe0a5d6c3deff2b4fed/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e", size = 1406539, upload-time = "2024-08-22T09:00:22.742Z" }, - { url = "https://files.pythonhosted.org/packages/00/68/093cdce3fe31e30a341d8e52a1ad86392e13c57970d722c1f62a1d1a54b6/pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5", size = 575567, upload-time = "2024-08-22T09:00:24.2Z" }, - { url = "https://files.pythonhosted.org/packages/92/ae/6cc4657148143412b5819b05e362ae7dd09fb9fe76e2a539dcff3d0386bc/pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad", size = 637551, upload-time = "2024-08-22T09:00:25.58Z" }, - { url = "https://files.pythonhosted.org/packages/6c/67/fbff102e201688f97c8092e4c3445d1c1068c2f27bbd45a578df97ed5f94/pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797", size = 540378, upload-time = "2024-08-22T09:00:27.572Z" }, - { url = "https://files.pythonhosted.org/packages/3f/fe/2d998380b6e0122c6c4bdf9b6caf490831e5f5e2d08a203b5adff060c226/pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a", size = 1007378, upload-time = "2024-08-22T09:00:29.274Z" }, - { url = "https://files.pythonhosted.org/packages/4a/f4/30d6e7157f12b3a0390bde94d6a8567cdb88846ed068a6e17238a4ccf600/pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc", size = 1329532, upload-time = "2024-08-22T09:00:30.683Z" }, - { url = "https://files.pythonhosted.org/packages/82/86/3fe917870e15ee1c3ad48229a2a64458e36036e64b4afa9659045d82bfa8/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5", size = 653242, upload-time = "2024-08-22T09:00:32.562Z" }, - { url = "https://files.pythonhosted.org/packages/50/2d/242e7e6ef6c8c19e6cb52d095834508cd581ffb925699fd3c640cdc758f1/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672", size = 888404, upload-time = "2024-08-22T09:00:33.982Z" }, - { url = "https://files.pythonhosted.org/packages/ac/11/7270566e1f31e4ea73c81ec821a4b1688fd551009a3d2bab11ec66cb1e8f/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797", size = 845858, upload-time = "2024-08-22T09:00:35.251Z" }, - { url = "https://files.pythonhosted.org/packages/91/d5/72b38fbc69867795c8711bdd735312f9fef1e3d9204e2f63ab57085434b9/pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386", size = 847375, upload-time = "2024-08-22T09:00:36.546Z" }, - { url = "https://files.pythonhosted.org/packages/dd/9a/10ed3c7f72b4c24e719c59359fbadd1a27556a28b36cdf1cd9e4fb7845d5/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306", size = 1183489, upload-time = "2024-08-22T09:00:37.819Z" }, - { url = "https://files.pythonhosted.org/packages/72/2d/8660892543fabf1fe41861efa222455811adac9f3c0818d6c3170a1153e3/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6", size = 1492932, upload-time = "2024-08-22T09:00:39.127Z" }, - { url = "https://files.pythonhosted.org/packages/7b/d6/32fd69744afb53995619bc5effa2a405ae0d343cd3e747d0fbc43fe894ee/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0", size = 1392485, upload-time = "2024-08-22T09:00:40.432Z" }, - { url = "https://files.pythonhosted.org/packages/64/e7/d5d59205d446c299001d27bfc18702c5353512c5485b11ec7cf6df9552d7/pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f", size = 1340492, upload-time = "2024-08-22T09:00:56.006Z" }, - { url = "https://files.pythonhosted.org/packages/59/bb/aa6616a83694ab43cfb3bdb868d194a5ee2fa24b49e6ec7ec4400691ac3b/pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2", size = 1008257, upload-time = "2024-08-22T09:00:57.43Z" }, - { url = "https://files.pythonhosted.org/packages/a6/b6/e578e6c08970df0daa08b7c54e82b606211f9a7e61317ef2db79cc334389/pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6", size = 907602, upload-time = "2024-08-22T09:00:58.768Z" }, - { url = "https://files.pythonhosted.org/packages/ab/3a/a26b98aebeb7924b24e9973a2f5bf8974201bb5a3f6ed06ddc3bac19372d/pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289", size = 862291, upload-time = "2024-08-22T09:01:00.247Z" }, - { url = "https://files.pythonhosted.org/packages/c1/b5/7eedb8d63af13c2858beb9c1f58e90e7e00929176b57f45e3592fccd56dc/pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732", size = 673879, upload-time = "2024-08-22T09:01:01.646Z" }, - { url = "https://files.pythonhosted.org/packages/af/22/38734f47543e61b4eb97eee476f0f7ae544988533215eea22fc65e1ca1d7/pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780", size = 1207011, upload-time = "2024-08-22T09:01:03.264Z" }, - { url = "https://files.pythonhosted.org/packages/59/a4/104cc979ae88ed948ef829db5fb49bca4a771891125fa4166bba1598b2ec/pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640", size = 1516183, upload-time = "2024-08-22T09:01:04.837Z" }, - { url = "https://files.pythonhosted.org/packages/52/8f/73a8e08897f8ed21fe44fc73b5faf3ea4cacb97bfd219a63ee5f3ea203a8/pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd", size = 1417481, upload-time = "2024-08-22T09:01:06.294Z" }, - { url = "https://files.pythonhosted.org/packages/67/cf/f418670a83fb3a91e2d6d26f271a828a58e0265199944a76e4ef274f9ba7/pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988", size = 577930, upload-time = "2024-08-22T09:01:07.653Z" }, - { url = "https://files.pythonhosted.org/packages/f0/51/1f2b47c8d8fb85c07f088e21df6364b8b5e8298e75bb23ea0e65340ebd82/pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f", size = 642503, upload-time = "2024-08-22T09:01:08.965Z" }, - { url = "https://files.pythonhosted.org/packages/ac/9e/ad5fbbe1bcc7a9d1e8c5f4f7de48f2c1dc481e151ef80cc1ce9a7fe67b55/pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2", size = 1341256, upload-time = "2024-08-22T09:01:10.314Z" }, - { url = "https://files.pythonhosted.org/packages/4c/d9/d7a8022108c214803a82b0b69d4885cee00933d21928f1f09dca371cf4bf/pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c", size = 1009385, upload-time = "2024-08-22T09:01:11.815Z" }, - { url = "https://files.pythonhosted.org/packages/ed/69/0529b59ac667ea8bfe8796ac71796b688fbb42ff78e06525dabfed3bc7ae/pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98", size = 908009, upload-time = "2024-08-22T09:01:13.235Z" }, - { url = "https://files.pythonhosted.org/packages/6e/bd/3ff3e1172f12f55769793a3a334e956ec2886805ebfb2f64756b6b5c6a1a/pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9", size = 862078, upload-time = "2024-08-22T09:01:14.713Z" }, - { url = "https://files.pythonhosted.org/packages/c3/ec/ab13585c3a1f48e2874253844c47b194d56eb25c94718691349c646f336f/pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db", size = 673756, upload-time = "2024-08-22T09:01:16.158Z" }, - { url = "https://files.pythonhosted.org/packages/1e/be/febcd4b04dd50ee6d514dfbc33a3d5d9cb38ec9516e02bbfc929baa0f141/pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073", size = 1203684, upload-time = "2024-08-22T09:01:17.695Z" }, - { url = "https://files.pythonhosted.org/packages/16/28/304150e71afd2df3b82f52f66c0d8ab9ac6fe1f1ffdf92bad4c8cc91d557/pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc", size = 1515864, upload-time = "2024-08-22T09:01:19.142Z" }, - { url = "https://files.pythonhosted.org/packages/18/89/8d48d8cd505c12a1f5edee597cc32ffcedc65fd8d2603aebaaedc38a7041/pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940", size = 1415383, upload-time = "2024-08-22T09:01:21.67Z" }, - { url = "https://files.pythonhosted.org/packages/d4/7e/43a60c3b179f7da0cbc2b649bd2702fd6a39bff5f72aa38d6e1aeb00256d/pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44", size = 578540, upload-time = "2024-08-22T09:01:23.147Z" }, - { url = "https://files.pythonhosted.org/packages/3a/55/8841dcd28f783ad06674c8fe8d7d72794b548d0bff8829aaafeb72e8b44d/pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec", size = 642147, upload-time = "2024-08-22T09:01:24.533Z" }, - { url = "https://files.pythonhosted.org/packages/b4/78/b3c31ccfcfcdd6ea50b6abc8f46a2a7aadb9c3d40531d1b908d834aaa12e/pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb", size = 543903, upload-time = "2024-08-22T09:01:25.931Z" }, - { url = "https://files.pythonhosted.org/packages/53/fb/36b2b2548286e9444e52fcd198760af99fd89102b5be50f0660fcfe902df/pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072", size = 906955, upload-time = "2024-08-22T09:01:27.361Z" }, - { url = "https://files.pythonhosted.org/packages/77/8f/6ce54f8979a01656e894946db6299e2273fcee21c8e5fa57c6295ef11f57/pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1", size = 565701, upload-time = "2024-08-22T09:01:28.842Z" }, - { url = "https://files.pythonhosted.org/packages/ee/1c/bf8cd66730a866b16db8483286078892b7f6536f8c389fb46e4beba0a970/pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d", size = 794312, upload-time = "2024-08-22T09:01:30.592Z" }, - { url = "https://files.pythonhosted.org/packages/71/43/91fa4ff25bbfdc914ab6bafa0f03241d69370ef31a761d16bb859f346582/pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca", size = 752775, upload-time = "2024-08-22T09:01:32.459Z" }, - { url = "https://files.pythonhosted.org/packages/ec/d2/3b2ab40f455a256cb6672186bea95cd97b459ce4594050132d71e76f0d6f/pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c", size = 550762, upload-time = "2024-08-22T09:01:34.136Z" }, - { url = "https://files.pythonhosted.org/packages/38/a7/1c80b0c8013befad391b92ba8a8e597de8884605ad5ad8ab943c888eb3ca/pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20", size = 906946, upload-time = "2024-08-22T09:01:44.671Z" }, - { url = "https://files.pythonhosted.org/packages/9c/ac/34a7ee2e7edb07c7222752096650313424eb05f18401ed0a964e996088fb/pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919", size = 802021, upload-time = "2024-08-22T09:01:46.278Z" }, - { url = "https://files.pythonhosted.org/packages/cd/70/c65ddccfb88b469b6044f9664c81f0b7f649711e0dc172cba8b2a968ad99/pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5", size = 756818, upload-time = "2024-08-22T09:01:47.798Z" }, - { url = "https://files.pythonhosted.org/packages/07/7a/fc77f6d57f592207403eab2deca4c6f1ffa9c78b0f03b59e69069a12a1a1/pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc", size = 565698, upload-time = "2024-08-22T09:01:49.52Z" }, - { url = "https://files.pythonhosted.org/packages/dc/13/e8494ba2d161fb471955fadbef7f48076bd29b19a4dd3c5d61d22e500505/pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277", size = 550757, upload-time = "2024-08-22T09:01:50.997Z" }, - { url = "https://files.pythonhosted.org/packages/6c/78/3096d72581365dfb0081ac9512a3b53672fa69854aa174d78636510c4db8/pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3", size = 906945, upload-time = "2024-08-22T09:01:52.577Z" }, - { url = "https://files.pythonhosted.org/packages/da/f2/8054574d77c269c31d055d4daf3d8407adf61ea384a50c8d14b158551d09/pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a", size = 565698, upload-time = "2024-08-22T09:01:54.381Z" }, - { url = "https://files.pythonhosted.org/packages/77/21/c3ad93236d1d60eea10b67528f55e7db115a9d32e2bf163fcf601f85e9cc/pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6", size = 794307, upload-time = "2024-08-22T09:01:55.876Z" }, - { url = "https://files.pythonhosted.org/packages/6a/49/e95b491724500fcb760178ce8db39b923429e328e57bcf9162e32c2c187c/pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a", size = 752769, upload-time = "2024-08-22T09:01:57.636Z" }, - { url = "https://files.pythonhosted.org/packages/9b/a9/50c9c06762b30792f71aaad8d1886748d39c4bffedc1171fbc6ad2b92d67/pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4", size = 751338, upload-time = "2024-08-22T09:01:59.666Z" }, - { url = "https://files.pythonhosted.org/packages/ca/63/27e6142b4f67a442ee480986ca5b88edb01462dd2319843057683a5148bd/pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f", size = 550757, upload-time = "2024-08-22T09:02:01.576Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/67/b9/52aa9ec2867528b54f1e60846728d8b4d84726630874fee3a91e66c7df81/pyzmq-27.1.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:508e23ec9bc44c0005c4946ea013d9317ae00ac67778bd47519fdf5a0e930ff4", size = 1329850, upload-time = "2025-09-08T23:07:26.274Z" }, + { url = "https://files.pythonhosted.org/packages/99/64/5653e7b7425b169f994835a2b2abf9486264401fdef18df91ddae47ce2cc/pyzmq-27.1.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:507b6f430bdcf0ee48c0d30e734ea89ce5567fd7b8a0f0044a369c176aa44556", size = 906380, upload-time = "2025-09-08T23:07:29.78Z" }, + { url = "https://files.pythonhosted.org/packages/73/78/7d713284dbe022f6440e391bd1f3c48d9185673878034cfb3939cdf333b2/pyzmq-27.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf7b38f9fd7b81cb6d9391b2946382c8237fd814075c6aa9c3b746d53076023b", size = 666421, upload-time = "2025-09-08T23:07:31.263Z" }, + { url = "https://files.pythonhosted.org/packages/30/76/8f099f9d6482450428b17c4d6b241281af7ce6a9de8149ca8c1c649f6792/pyzmq-27.1.0-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03ff0b279b40d687691a6217c12242ee71f0fba28bf8626ff50e3ef0f4410e1e", size = 854149, upload-time = "2025-09-08T23:07:33.17Z" }, + { url = "https://files.pythonhosted.org/packages/59/f0/37fbfff06c68016019043897e4c969ceab18bde46cd2aca89821fcf4fb2e/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:677e744fee605753eac48198b15a2124016c009a11056f93807000ab11ce6526", size = 1655070, upload-time = "2025-09-08T23:07:35.205Z" }, + { url = "https://files.pythonhosted.org/packages/47/14/7254be73f7a8edc3587609554fcaa7bfd30649bf89cd260e4487ca70fdaa/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dd2fec2b13137416a1c5648b7009499bcc8fea78154cd888855fa32514f3dad1", size = 2033441, upload-time = "2025-09-08T23:07:37.432Z" }, + { url = "https://files.pythonhosted.org/packages/22/dc/49f2be26c6f86f347e796a4d99b19167fc94503f0af3fd010ad262158822/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:08e90bb4b57603b84eab1d0ca05b3bbb10f60c1839dc471fc1c9e1507bef3386", size = 1891529, upload-time = "2025-09-08T23:07:39.047Z" }, + { url = "https://files.pythonhosted.org/packages/a3/3e/154fb963ae25be70c0064ce97776c937ecc7d8b0259f22858154a9999769/pyzmq-27.1.0-cp310-cp310-win32.whl", hash = "sha256:a5b42d7a0658b515319148875fcb782bbf118dd41c671b62dae33666c2213bda", size = 567276, upload-time = "2025-09-08T23:07:40.695Z" }, + { url = "https://files.pythonhosted.org/packages/62/b2/f4ab56c8c595abcb26b2be5fd9fa9e6899c1e5ad54964e93ae8bb35482be/pyzmq-27.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:c0bb87227430ee3aefcc0ade2088100e528d5d3298a0a715a64f3d04c60ba02f", size = 632208, upload-time = "2025-09-08T23:07:42.298Z" }, + { url = "https://files.pythonhosted.org/packages/3b/e3/be2cc7ab8332bdac0522fdb64c17b1b6241a795bee02e0196636ec5beb79/pyzmq-27.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:9a916f76c2ab8d045b19f2286851a38e9ac94ea91faf65bd64735924522a8b32", size = 559766, upload-time = "2025-09-08T23:07:43.869Z" }, + { url = "https://files.pythonhosted.org/packages/06/5d/305323ba86b284e6fcb0d842d6adaa2999035f70f8c38a9b6d21ad28c3d4/pyzmq-27.1.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:226b091818d461a3bef763805e75685e478ac17e9008f49fce2d3e52b3d58b86", size = 1333328, upload-time = "2025-09-08T23:07:45.946Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a0/fc7e78a23748ad5443ac3275943457e8452da67fda347e05260261108cbc/pyzmq-27.1.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0790a0161c281ca9723f804871b4027f2e8b5a528d357c8952d08cd1a9c15581", size = 908803, upload-time = "2025-09-08T23:07:47.551Z" }, + { url = "https://files.pythonhosted.org/packages/7e/22/37d15eb05f3bdfa4abea6f6d96eb3bb58585fbd3e4e0ded4e743bc650c97/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c895a6f35476b0c3a54e3eb6ccf41bf3018de937016e6e18748317f25d4e925f", size = 668836, upload-time = "2025-09-08T23:07:49.436Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c4/2a6fe5111a01005fc7af3878259ce17684fabb8852815eda6225620f3c59/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bbf8d3630bf96550b3be8e1fc0fea5cbdc8d5466c1192887bd94869da17a63e", size = 857038, upload-time = "2025-09-08T23:07:51.234Z" }, + { url = "https://files.pythonhosted.org/packages/cb/eb/bfdcb41d0db9cd233d6fb22dc131583774135505ada800ebf14dfb0a7c40/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15c8bd0fe0dabf808e2d7a681398c4e5ded70a551ab47482067a572c054c8e2e", size = 1657531, upload-time = "2025-09-08T23:07:52.795Z" }, + { url = "https://files.pythonhosted.org/packages/ab/21/e3180ca269ed4a0de5c34417dfe71a8ae80421198be83ee619a8a485b0c7/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bafcb3dd171b4ae9f19ee6380dfc71ce0390fefaf26b504c0e5f628d7c8c54f2", size = 2034786, upload-time = "2025-09-08T23:07:55.047Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b1/5e21d0b517434b7f33588ff76c177c5a167858cc38ef740608898cd329f2/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e829529fcaa09937189178115c49c504e69289abd39967cd8a4c215761373394", size = 1894220, upload-time = "2025-09-08T23:07:57.172Z" }, + { url = "https://files.pythonhosted.org/packages/03/f2/44913a6ff6941905efc24a1acf3d3cb6146b636c546c7406c38c49c403d4/pyzmq-27.1.0-cp311-cp311-win32.whl", hash = "sha256:6df079c47d5902af6db298ec92151db82ecb557af663098b92f2508c398bb54f", size = 567155, upload-time = "2025-09-08T23:07:59.05Z" }, + { url = "https://files.pythonhosted.org/packages/23/6d/d8d92a0eb270a925c9b4dd039c0b4dc10abc2fcbc48331788824ef113935/pyzmq-27.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:190cbf120fbc0fc4957b56866830def56628934a9d112aec0e2507aa6a032b97", size = 633428, upload-time = "2025-09-08T23:08:00.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/14/01afebc96c5abbbd713ecfc7469cfb1bc801c819a74ed5c9fad9a48801cb/pyzmq-27.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:eca6b47df11a132d1745eb3b5b5e557a7dae2c303277aa0e69c6ba91b8736e07", size = 559497, upload-time = "2025-09-08T23:08:02.15Z" }, + { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, + { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, + { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, + { url = "https://files.pythonhosted.org/packages/60/cb/84a13459c51da6cec1b7b1dc1a47e6db6da50b77ad7fd9c145842750a011/pyzmq-27.1.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:93ad4b0855a664229559e45c8d23797ceac03183c7b6f5b4428152a6b06684a5", size = 1122436, upload-time = "2025-09-08T23:08:20.801Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b6/94414759a69a26c3dd674570a81813c46a078767d931a6c70ad29fc585cb/pyzmq-27.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fbb4f2400bfda24f12f009cba62ad5734148569ff4949b1b6ec3b519444342e6", size = 1156301, upload-time = "2025-09-08T23:08:22.47Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ad/15906493fd40c316377fd8a8f6b1f93104f97a752667763c9b9c1b71d42d/pyzmq-27.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:e343d067f7b151cfe4eb3bb796a7752c9d369eed007b91231e817071d2c2fec7", size = 1341197, upload-time = "2025-09-08T23:08:24.286Z" }, + { url = "https://files.pythonhosted.org/packages/14/1d/d343f3ce13db53a54cb8946594e567410b2125394dafcc0268d8dda027e0/pyzmq-27.1.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:08363b2011dec81c354d694bdecaef4770e0ae96b9afea70b3f47b973655cc05", size = 897275, upload-time = "2025-09-08T23:08:26.063Z" }, + { url = "https://files.pythonhosted.org/packages/69/2d/d83dd6d7ca929a2fc67d2c3005415cdf322af7751d773524809f9e585129/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d54530c8c8b5b8ddb3318f481297441af102517602b569146185fa10b63f4fa9", size = 660469, upload-time = "2025-09-08T23:08:27.623Z" }, + { url = "https://files.pythonhosted.org/packages/3e/cd/9822a7af117f4bc0f1952dbe9ef8358eb50a24928efd5edf54210b850259/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f3afa12c392f0a44a2414056d730eebc33ec0926aae92b5ad5cf26ebb6cc128", size = 847961, upload-time = "2025-09-08T23:08:29.672Z" }, + { url = "https://files.pythonhosted.org/packages/9a/12/f003e824a19ed73be15542f172fd0ec4ad0b60cf37436652c93b9df7c585/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c65047adafe573ff023b3187bb93faa583151627bc9c51fc4fb2c561ed689d39", size = 1650282, upload-time = "2025-09-08T23:08:31.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4a/e82d788ed58e9a23995cee70dbc20c9aded3d13a92d30d57ec2291f1e8a3/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:90e6e9441c946a8b0a667356f7078d96411391a3b8f80980315455574177ec97", size = 2024468, upload-time = "2025-09-08T23:08:33.543Z" }, + { url = "https://files.pythonhosted.org/packages/d9/94/2da0a60841f757481e402b34bf4c8bf57fa54a5466b965de791b1e6f747d/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:add071b2d25f84e8189aaf0882d39a285b42fa3853016ebab234a5e78c7a43db", size = 1885394, upload-time = "2025-09-08T23:08:35.51Z" }, + { url = "https://files.pythonhosted.org/packages/4f/6f/55c10e2e49ad52d080dc24e37adb215e5b0d64990b57598abc2e3f01725b/pyzmq-27.1.0-cp313-cp313t-win32.whl", hash = "sha256:7ccc0700cfdf7bd487bea8d850ec38f204478681ea02a582a8da8171b7f90a1c", size = 574964, upload-time = "2025-09-08T23:08:37.178Z" }, + { url = "https://files.pythonhosted.org/packages/87/4d/2534970ba63dd7c522d8ca80fb92777f362c0f321900667c615e2067cb29/pyzmq-27.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8085a9fba668216b9b4323be338ee5437a235fe275b9d1610e422ccc279733e2", size = 641029, upload-time = "2025-09-08T23:08:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/f6/fa/f8aea7a28b0641f31d40dea42d7ef003fded31e184ef47db696bc74cd610/pyzmq-27.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6bb54ca21bcfe361e445256c15eedf083f153811c37be87e0514934d6913061e", size = 561541, upload-time = "2025-09-08T23:08:42.668Z" }, + { url = "https://files.pythonhosted.org/packages/87/45/19efbb3000956e82d0331bafca5d9ac19ea2857722fa2caacefb6042f39d/pyzmq-27.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ce980af330231615756acd5154f29813d553ea555485ae712c491cd483df6b7a", size = 1341197, upload-time = "2025-09-08T23:08:44.973Z" }, + { url = "https://files.pythonhosted.org/packages/48/43/d72ccdbf0d73d1343936296665826350cb1e825f92f2db9db3e61c2162a2/pyzmq-27.1.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1779be8c549e54a1c38f805e56d2a2e5c009d26de10921d7d51cfd1c8d4632ea", size = 897175, upload-time = "2025-09-08T23:08:46.601Z" }, + { url = "https://files.pythonhosted.org/packages/2f/2e/a483f73a10b65a9ef0161e817321d39a770b2acf8bcf3004a28d90d14a94/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7200bb0f03345515df50d99d3db206a0a6bee1955fbb8c453c76f5bf0e08fb96", size = 660427, upload-time = "2025-09-08T23:08:48.187Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d2/5f36552c2d3e5685abe60dfa56f91169f7a2d99bbaf67c5271022ab40863/pyzmq-27.1.0-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01c0e07d558b06a60773744ea6251f769cd79a41a97d11b8bf4ab8f034b0424d", size = 847929, upload-time = "2025-09-08T23:08:49.76Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2a/404b331f2b7bf3198e9945f75c4c521f0c6a3a23b51f7a4a401b94a13833/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:80d834abee71f65253c91540445d37c4c561e293ba6e741b992f20a105d69146", size = 1650193, upload-time = "2025-09-08T23:08:51.7Z" }, + { url = "https://files.pythonhosted.org/packages/1c/0b/f4107e33f62a5acf60e3ded67ed33d79b4ce18de432625ce2fc5093d6388/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:544b4e3b7198dde4a62b8ff6685e9802a9a1ebf47e77478a5eb88eca2a82f2fd", size = 2024388, upload-time = "2025-09-08T23:08:53.393Z" }, + { url = "https://files.pythonhosted.org/packages/0d/01/add31fe76512642fd6e40e3a3bd21f4b47e242c8ba33efb6809e37076d9b/pyzmq-27.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cedc4c68178e59a4046f97eca31b148ddcf51e88677de1ef4e78cf06c5376c9a", size = 1885316, upload-time = "2025-09-08T23:08:55.702Z" }, + { url = "https://files.pythonhosted.org/packages/c4/59/a5f38970f9bf07cee96128de79590bb354917914a9be11272cfc7ff26af0/pyzmq-27.1.0-cp314-cp314t-win32.whl", hash = "sha256:1f0b2a577fd770aa6f053211a55d1c47901f4d537389a034c690291485e5fe92", size = 587472, upload-time = "2025-09-08T23:08:58.18Z" }, + { url = "https://files.pythonhosted.org/packages/70/d8/78b1bad170f93fcf5e3536e70e8fadac55030002275c9a29e8f5719185de/pyzmq-27.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:19c9468ae0437f8074af379e986c5d3d7d7bfe033506af442e8c879732bedbe0", size = 661401, upload-time = "2025-09-08T23:08:59.802Z" }, + { url = "https://files.pythonhosted.org/packages/81/d6/4bfbb40c9a0b42fc53c7cf442f6385db70b40f74a783130c5d0a5aa62228/pyzmq-27.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dc5dbf68a7857b59473f7df42650c621d7e8923fb03fa74a526890f4d33cc4d7", size = 575170, upload-time = "2025-09-08T23:09:01.418Z" }, + { url = "https://files.pythonhosted.org/packages/f3/81/a65e71c1552f74dec9dff91d95bafb6e0d33338a8dfefbc88aa562a20c92/pyzmq-27.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c17e03cbc9312bee223864f1a2b13a99522e0dc9f7c5df0177cd45210ac286e6", size = 836266, upload-time = "2025-09-08T23:09:40.048Z" }, + { url = "https://files.pythonhosted.org/packages/58/ed/0202ca350f4f2b69faa95c6d931e3c05c3a397c184cacb84cb4f8f42f287/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:f328d01128373cb6763823b2b4e7f73bdf767834268c565151eacb3b7a392f90", size = 800206, upload-time = "2025-09-08T23:09:41.902Z" }, + { url = "https://files.pythonhosted.org/packages/47/42/1ff831fa87fe8f0a840ddb399054ca0009605d820e2b44ea43114f5459f4/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c1790386614232e1b3a40a958454bdd42c6d1811837b15ddbb052a032a43f62", size = 567747, upload-time = "2025-09-08T23:09:43.741Z" }, + { url = "https://files.pythonhosted.org/packages/d1/db/5c4d6807434751e3f21231bee98109aa57b9b9b55e058e450d0aef59b70f/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:448f9cb54eb0cee4732b46584f2710c8bc178b0e5371d9e4fc8125201e413a74", size = 747371, upload-time = "2025-09-08T23:09:45.575Z" }, + { url = "https://files.pythonhosted.org/packages/26/af/78ce193dbf03567eb8c0dc30e3df2b9e56f12a670bf7eb20f9fb532c7e8a/pyzmq-27.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:05b12f2d32112bf8c95ef2e74ec4f1d4beb01f8b5e703b38537f8849f92cb9ba", size = 544862, upload-time = "2025-09-08T23:09:47.448Z" }, + { url = "https://files.pythonhosted.org/packages/4c/c6/c4dcdecdbaa70969ee1fdced6d7b8f60cfabe64d25361f27ac4665a70620/pyzmq-27.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:18770c8d3563715387139060d37859c02ce40718d1faf299abddcdcc6a649066", size = 836265, upload-time = "2025-09-08T23:09:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/3e/79/f38c92eeaeb03a2ccc2ba9866f0439593bb08c5e3b714ac1d553e5c96e25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ac25465d42f92e990f8d8b0546b01c391ad431c3bf447683fdc40565941d0604", size = 800208, upload-time = "2025-09-08T23:09:51.073Z" }, + { url = "https://files.pythonhosted.org/packages/49/0e/3f0d0d335c6b3abb9b7b723776d0b21fa7f3a6c819a0db6097059aada160/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53b40f8ae006f2734ee7608d59ed661419f087521edbfc2149c3932e9c14808c", size = 567747, upload-time = "2025-09-08T23:09:52.698Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cf/f2b3784d536250ffd4be70e049f3b60981235d70c6e8ce7e3ef21e1adb25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f605d884e7c8be8fe1aa94e0a783bf3f591b84c24e4bc4f3e7564c82ac25e271", size = 747371, upload-time = "2025-09-08T23:09:54.563Z" }, + { url = "https://files.pythonhosted.org/packages/01/1b/5dbe84eefc86f48473947e2f41711aded97eecef1231f4558f1f02713c12/pyzmq-27.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c9f7f6e13dff2e44a6afeaf2cf54cee5929ad64afaf4d40b50f93c58fc687355", size = 544862, upload-time = "2025-09-08T23:09:56.509Z" }, ] [[package]] name = "referencing" -version = "0.35.1" +version = "0.37.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/99/5b/73ca1f8e72fff6fa52119dbd185f73a907b1989428917b24cff660129b6d/referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c", size = 62991, upload-time = "2024-05-01T20:26:04.574Z" } +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/59/2056f61236782a2c86b33906c025d4f4a0b17be0161b63b70fd9e8775d36/referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de", size = 26684, upload-time = "2024-05-01T20:26:02.078Z" }, + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, ] [[package]] name = "requests" -version = "2.32.4" +version = "2.32.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, { name = "charset-normalizer" }, { name = "idna" }, - { name = "urllib3", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "urllib3", version = "2.6.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258, upload-time = "2025-06-09T16:43:07.34Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847, upload-time = "2025-06-09T16:43:05.728Z" }, + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "roman-numerals" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/f9/41dc953bbeb056c17d5f7a519f50fdf010bd0553be2d630bc69d1e022703/roman_numerals-4.1.0.tar.gz", hash = "sha256:1af8b147eb1405d5839e78aeb93131690495fe9da5c91856cb33ad55a7f1e5b2", size = 9077, upload-time = "2025-12-17T18:25:34.381Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/54/6f679c435d28e0a568d8e8a7c0a93a09010818634c3c3907fc98d8983770/roman_numerals-4.1.0-py3-none-any.whl", hash = "sha256:647ba99caddc2cc1e55a51e4360689115551bf4476d90e8162cf8c345fe233c7", size = 7676, upload-time = "2025-12-17T18:25:33.098Z" }, ] [[package]] name = "rpds-py" -version = "0.20.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/55/64/b693f262791b818880d17268f3f8181ef799b0d187f6f731b1772e05a29a/rpds_py-0.20.0.tar.gz", hash = "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121", size = 25814, upload-time = "2024-08-06T17:01:23.777Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/71/2d/a7e60483b72b91909e18f29a5c5ae847bac4e2ae95b77bb77e1f41819a58/rpds_py-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3ad0fda1635f8439cde85c700f964b23ed5fc2d28016b32b9ee5fe30da5c84e2", size = 318432, upload-time = "2024-08-06T16:58:12.763Z" }, - { url = "https://files.pythonhosted.org/packages/b5/b4/f15b0c55a6d880ce74170e7e28c3ed6c5acdbbd118df50b91d1dabf86008/rpds_py-0.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9bb4a0d90fdb03437c109a17eade42dfbf6190408f29b2744114d11586611d6f", size = 311333, upload-time = "2024-08-06T16:58:14.776Z" }, - { url = "https://files.pythonhosted.org/packages/36/10/3f4e490fe6eb069c07c22357d0b4804cd94cb9f8d01345ef9b1d93482b9d/rpds_py-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6377e647bbfd0a0b159fe557f2c6c602c159fc752fa316572f012fc0bf67150", size = 366697, upload-time = "2024-08-06T16:58:16.195Z" }, - { url = "https://files.pythonhosted.org/packages/f5/c8/cd6ab31b4424c7fab3b17e153b6ea7d1bb0d7cabea5c1ef683cc8adb8bc2/rpds_py-0.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb851b7df9dda52dc1415ebee12362047ce771fc36914586b2e9fcbd7d293b3e", size = 368386, upload-time = "2024-08-06T16:58:17.87Z" }, - { url = "https://files.pythonhosted.org/packages/60/5e/642a44fda6dda90b5237af7a0ef1d088159c30a504852b94b0396eb62125/rpds_py-0.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e0f80b739e5a8f54837be5d5c924483996b603d5502bfff79bf33da06164ee2", size = 395374, upload-time = "2024-08-06T16:58:19.396Z" }, - { url = "https://files.pythonhosted.org/packages/7c/b5/ff18c093c9e72630f6d6242e5ccb0728ef8265ba0a154b5972f89d23790a/rpds_py-0.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5a8c94dad2e45324fc74dce25e1645d4d14df9a4e54a30fa0ae8bad9a63928e3", size = 433189, upload-time = "2024-08-06T16:58:21.337Z" }, - { url = "https://files.pythonhosted.org/packages/4a/6d/1166a157b227f2333f8e8ae320b6b7ea2a6a38fbe7a3563ad76dffc8608d/rpds_py-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8e604fe73ba048c06085beaf51147eaec7df856824bfe7b98657cf436623daf", size = 354849, upload-time = "2024-08-06T16:58:22.742Z" }, - { url = "https://files.pythonhosted.org/packages/70/a4/70ea49863ea09ae4c2971f2eef58e80b757e3c0f2f618c5815bb751f7847/rpds_py-0.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:df3de6b7726b52966edf29663e57306b23ef775faf0ac01a3e9f4012a24a4140", size = 373233, upload-time = "2024-08-06T16:58:24.793Z" }, - { url = "https://files.pythonhosted.org/packages/3b/d3/822a28152a1e7e2ba0dc5d06cf8736f4cd64b191bb6ec47fb51d1c3c5ccf/rpds_py-0.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf258ede5bc22a45c8e726b29835b9303c285ab46fc7c3a4cc770736b5304c9f", size = 541852, upload-time = "2024-08-06T16:58:27.867Z" }, - { url = "https://files.pythonhosted.org/packages/c6/a5/6ef91e4425dc8b3445ff77d292fc4c5e37046462434a0423c4e0a596a8bd/rpds_py-0.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:55fea87029cded5df854ca7e192ec7bdb7ecd1d9a3f63d5c4eb09148acf4a7ce", size = 547630, upload-time = "2024-08-06T16:58:29.852Z" }, - { url = "https://files.pythonhosted.org/packages/72/f8/d5625ee05c4e5c478954a16d9359069c66fe8ac8cd5ddf28f80d3b321837/rpds_py-0.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae94bd0b2f02c28e199e9bc51485d0c5601f58780636185660f86bf80c89af94", size = 525766, upload-time = "2024-08-06T16:58:31.851Z" }, - { url = "https://files.pythonhosted.org/packages/94/3c/1ff1ed6ae323b3e16fdfcdae0f0a67f373a6c3d991229dc32b499edeffb7/rpds_py-0.20.0-cp310-none-win32.whl", hash = "sha256:28527c685f237c05445efec62426d285e47a58fb05ba0090a4340b73ecda6dee", size = 199174, upload-time = "2024-08-06T16:58:33.769Z" }, - { url = "https://files.pythonhosted.org/packages/ec/ba/5762c0aee2403dfea14ed74b0f8a2415cfdbb21cf745d600d9a8ac952c5b/rpds_py-0.20.0-cp310-none-win_amd64.whl", hash = "sha256:238a2d5b1cad28cdc6ed15faf93a998336eb041c4e440dd7f902528b8891b399", size = 213543, upload-time = "2024-08-06T16:58:35.172Z" }, - { url = "https://files.pythonhosted.org/packages/ab/2a/191374c52d7be0b056cc2a04d718d2244c152f915d4a8d2db2aacc526189/rpds_py-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac2f4f7a98934c2ed6505aead07b979e6f999389f16b714448fb39bbaa86a489", size = 318369, upload-time = "2024-08-06T16:58:36.944Z" }, - { url = "https://files.pythonhosted.org/packages/0e/6a/2c9fdcc6d235ac0d61ec4fd9981184689c3e682abd05e3caa49bccb9c298/rpds_py-0.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:220002c1b846db9afd83371d08d239fdc865e8f8c5795bbaec20916a76db3318", size = 311303, upload-time = "2024-08-06T16:58:38.361Z" }, - { url = "https://files.pythonhosted.org/packages/d2/b2/725487d29633f64ef8f9cbf4729111a0b61702c8f8e94db1653930f52cce/rpds_py-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d7919548df3f25374a1f5d01fbcd38dacab338ef5f33e044744b5c36729c8db", size = 366424, upload-time = "2024-08-06T16:58:39.765Z" }, - { url = "https://files.pythonhosted.org/packages/7a/8c/668195ab9226d01b7cf7cd9e59c1c0be1df05d602df7ec0cf46f857dcf59/rpds_py-0.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:758406267907b3781beee0f0edfe4a179fbd97c0be2e9b1154d7f0a1279cf8e5", size = 368359, upload-time = "2024-08-06T16:58:41.548Z" }, - { url = "https://files.pythonhosted.org/packages/52/28/356f6a39c1adeb02cf3e5dd526f5e8e54e17899bef045397abcfbf50dffa/rpds_py-0.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d61339e9f84a3f0767b1995adfb171a0d00a1185192718a17af6e124728e0f5", size = 394886, upload-time = "2024-08-06T16:58:42.859Z" }, - { url = "https://files.pythonhosted.org/packages/a2/65/640fb1a89080a8fb6f4bebd3dafb65a2edba82e2e44c33e6eb0f3e7956f1/rpds_py-0.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1259c7b3705ac0a0bd38197565a5d603218591d3f6cee6e614e380b6ba61c6f6", size = 432416, upload-time = "2024-08-06T16:58:44.753Z" }, - { url = "https://files.pythonhosted.org/packages/a7/e8/85835077b782555d6b3416874b702ea6ebd7db1f145283c9252968670dd5/rpds_py-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c1dc0f53856b9cc9a0ccca0a7cc61d3d20a7088201c0937f3f4048c1718a209", size = 354819, upload-time = "2024-08-06T16:58:46.409Z" }, - { url = "https://files.pythonhosted.org/packages/4f/87/1ac631e923d65cbf36fbcfc6eaa702a169496de1311e54be142f178e53ee/rpds_py-0.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7e60cb630f674a31f0368ed32b2a6b4331b8350d67de53c0359992444b116dd3", size = 373282, upload-time = "2024-08-06T16:58:48.469Z" }, - { url = "https://files.pythonhosted.org/packages/e4/ce/cb316f7970189e217b998191c7cf0da2ede3d5437932c86a7210dc1e9994/rpds_py-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dbe982f38565bb50cb7fb061ebf762c2f254ca3d8c20d4006878766e84266272", size = 541540, upload-time = "2024-08-06T16:58:50.433Z" }, - { url = "https://files.pythonhosted.org/packages/90/d7/4112d7655ec8aff168ecc91d4ceb51c557336edde7e6ccf6463691a2f253/rpds_py-0.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:514b3293b64187172bc77c8fb0cdae26981618021053b30d8371c3a902d4d5ad", size = 547640, upload-time = "2024-08-06T16:58:51.857Z" }, - { url = "https://files.pythonhosted.org/packages/ab/44/4f61d64dfed98cc71623f3a7fcb612df636a208b4b2c6611eaa985e130a9/rpds_py-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d0a26ffe9d4dd35e4dfdd1e71f46401cff0181c75ac174711ccff0459135fa58", size = 525555, upload-time = "2024-08-06T16:58:53.568Z" }, - { url = "https://files.pythonhosted.org/packages/35/f2/a862d81eacb21f340d584cd1c749c289979f9a60e9229f78bffc0418a199/rpds_py-0.20.0-cp311-none-win32.whl", hash = "sha256:89c19a494bf3ad08c1da49445cc5d13d8fefc265f48ee7e7556839acdacf69d0", size = 199338, upload-time = "2024-08-06T16:58:55.548Z" }, - { url = "https://files.pythonhosted.org/packages/cc/ec/77d0674f9af4872919f3738018558dd9d37ad3f7ad792d062eadd4af7cba/rpds_py-0.20.0-cp311-none-win_amd64.whl", hash = "sha256:c638144ce971df84650d3ed0096e2ae7af8e62ecbbb7b201c8935c370df00a2c", size = 213585, upload-time = "2024-08-06T16:58:56.858Z" }, - { url = "https://files.pythonhosted.org/packages/89/b7/f9682c5cc37fcc035f4a0fc33c1fe92ec9cbfdee0cdfd071cf948f53e0df/rpds_py-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a84ab91cbe7aab97f7446652d0ed37d35b68a465aeef8fc41932a9d7eee2c1a6", size = 321468, upload-time = "2024-08-06T16:58:58.143Z" }, - { url = "https://files.pythonhosted.org/packages/b8/ad/fc82be4eaceb8d444cb6fc1956ce972b3a0795104279de05e0e4131d0a47/rpds_py-0.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:56e27147a5a4c2c21633ff8475d185734c0e4befd1c989b5b95a5d0db699b21b", size = 313062, upload-time = "2024-08-06T16:59:00.586Z" }, - { url = "https://files.pythonhosted.org/packages/0e/1c/6039e80b13a08569a304dc13476dc986352dca4598e909384db043b4e2bb/rpds_py-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2580b0c34583b85efec8c5c5ec9edf2dfe817330cc882ee972ae650e7b5ef739", size = 370168, upload-time = "2024-08-06T16:59:02.104Z" }, - { url = "https://files.pythonhosted.org/packages/dc/c9/5b9aa35acfb58946b4b785bc8e700ac313669e02fb100f3efa6176a83e81/rpds_py-0.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b80d4a7900cf6b66bb9cee5c352b2d708e29e5a37fe9bf784fa97fc11504bf6c", size = 371376, upload-time = "2024-08-06T16:59:03.894Z" }, - { url = "https://files.pythonhosted.org/packages/7b/dd/0e0dbeb70d8a5357d2814764d467ded98d81d90d3570de4fb05ec7224f6b/rpds_py-0.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50eccbf054e62a7b2209b28dc7a22d6254860209d6753e6b78cfaeb0075d7bee", size = 397200, upload-time = "2024-08-06T16:59:05.445Z" }, - { url = "https://files.pythonhosted.org/packages/e4/da/a47d931eb688ccfd77a7389e45935c79c41e8098d984d87335004baccb1d/rpds_py-0.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:49a8063ea4296b3a7e81a5dfb8f7b2d73f0b1c20c2af401fb0cdf22e14711a96", size = 426824, upload-time = "2024-08-06T16:59:07.329Z" }, - { url = "https://files.pythonhosted.org/packages/0f/f7/a59a673594e6c2ff2dbc44b00fd4ecdec2fc399bb6a7bd82d612699a0121/rpds_py-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea438162a9fcbee3ecf36c23e6c68237479f89f962f82dae83dc15feeceb37e4", size = 357967, upload-time = "2024-08-06T16:59:08.898Z" }, - { url = "https://files.pythonhosted.org/packages/5f/61/3ba1905396b2cb7088f9503a460b87da33452da54d478cb9241f6ad16d00/rpds_py-0.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:18d7585c463087bddcfa74c2ba267339f14f2515158ac4db30b1f9cbdb62c8ef", size = 378905, upload-time = "2024-08-06T16:59:10.503Z" }, - { url = "https://files.pythonhosted.org/packages/08/31/6d0df9356b4edb0a3a077f1ef714e25ad21f9f5382fc490c2383691885ea/rpds_py-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d4c7d1a051eeb39f5c9547e82ea27cbcc28338482242e3e0b7768033cb083821", size = 546348, upload-time = "2024-08-06T16:59:12.582Z" }, - { url = "https://files.pythonhosted.org/packages/ae/15/d33c021de5cb793101df9961c3c746dfc476953dbbf5db337d8010dffd4e/rpds_py-0.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4df1e3b3bec320790f699890d41c59d250f6beda159ea3c44c3f5bac1976940", size = 553152, upload-time = "2024-08-06T16:59:14.472Z" }, - { url = "https://files.pythonhosted.org/packages/70/2d/5536d28c507a4679179ab15aa0049440e4d3dd6752050fa0843ed11e9354/rpds_py-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2cf126d33a91ee6eedc7f3197b53e87a2acdac63602c0f03a02dd69e4b138174", size = 528807, upload-time = "2024-08-06T16:59:16.401Z" }, - { url = "https://files.pythonhosted.org/packages/e3/62/7ebe6ec0d3dd6130921f8cffb7e34afb7f71b3819aa0446a24c5e81245ec/rpds_py-0.20.0-cp312-none-win32.whl", hash = "sha256:8bc7690f7caee50b04a79bf017a8d020c1f48c2a1077ffe172abec59870f1139", size = 200993, upload-time = "2024-08-06T16:59:18.083Z" }, - { url = "https://files.pythonhosted.org/packages/ec/2f/b938864d66b86a6e4acadefdc56de75ef56f7cafdfd568a6464605457bd5/rpds_py-0.20.0-cp312-none-win_amd64.whl", hash = "sha256:0e13e6952ef264c40587d510ad676a988df19adea20444c2b295e536457bc585", size = 214458, upload-time = "2024-08-06T16:59:19.783Z" }, - { url = "https://files.pythonhosted.org/packages/99/32/43b919a0a423c270a838ac2726b1c7168b946f2563fd99a51aaa9692d00f/rpds_py-0.20.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:aa9a0521aeca7d4941499a73ad7d4f8ffa3d1affc50b9ea11d992cd7eff18a29", size = 321465, upload-time = "2024-08-06T16:59:21.899Z" }, - { url = "https://files.pythonhosted.org/packages/58/a9/c4d899cb28e9e47b0ff12462e8f827381f243176036f17bef9c1604667f2/rpds_py-0.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1f1d51eccb7e6c32ae89243cb352389228ea62f89cd80823ea7dd1b98e0b91", size = 312900, upload-time = "2024-08-06T16:59:23.566Z" }, - { url = "https://files.pythonhosted.org/packages/8f/90/9e51670575b5dfaa8c823369ef7d943087bfb73d4f124a99ad6ef19a2b26/rpds_py-0.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a86a9b96070674fc88b6f9f71a97d2c1d3e5165574615d1f9168ecba4cecb24", size = 370973, upload-time = "2024-08-06T16:59:25.396Z" }, - { url = "https://files.pythonhosted.org/packages/fc/c1/523f2a03f853fc0d4c1acbef161747e9ab7df0a8abf6236106e333540921/rpds_py-0.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6c8ef2ebf76df43f5750b46851ed1cdf8f109d7787ca40035fe19fbdc1acc5a7", size = 370890, upload-time = "2024-08-06T16:59:27.407Z" }, - { url = "https://files.pythonhosted.org/packages/51/ca/2458a771f16b0931de4d384decbe43016710bc948036c8f4562d6e063437/rpds_py-0.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b25f024b421d5859d156750ea9a65651793d51b76a2e9238c05c9d5f203a9", size = 397174, upload-time = "2024-08-06T16:59:29.047Z" }, - { url = "https://files.pythonhosted.org/packages/00/7d/6e06807f6305ea2408b364efb0eef83a6e21b5e7b5267ad6b473b9a7e416/rpds_py-0.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57eb94a8c16ab08fef6404301c38318e2c5a32216bf5de453e2714c964c125c8", size = 426449, upload-time = "2024-08-06T16:59:30.558Z" }, - { url = "https://files.pythonhosted.org/packages/8c/d1/6c9e65260a819a1714510a7d69ac1d68aa23ee9ce8a2d9da12187263c8fc/rpds_py-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1940dae14e715e2e02dfd5b0f64a52e8374a517a1e531ad9412319dc3ac7879", size = 357698, upload-time = "2024-08-06T16:59:32.77Z" }, - { url = "https://files.pythonhosted.org/packages/5d/fb/ecea8b5286d2f03eec922be7173a03ed17278944f7c124348f535116db15/rpds_py-0.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d20277fd62e1b992a50c43f13fbe13277a31f8c9f70d59759c88f644d66c619f", size = 378530, upload-time = "2024-08-06T16:59:34.282Z" }, - { url = "https://files.pythonhosted.org/packages/e3/e3/ac72f858957f52a109c588589b73bd2fad4a0fc82387fb55fb34aeb0f9cd/rpds_py-0.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:06db23d43f26478303e954c34c75182356ca9aa7797d22c5345b16871ab9c45c", size = 545753, upload-time = "2024-08-06T16:59:35.783Z" }, - { url = "https://files.pythonhosted.org/packages/b2/a4/a27683b519d5fc98e4390a3b130117d80fd475c67aeda8aac83c0e8e326a/rpds_py-0.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b2a5db5397d82fa847e4c624b0c98fe59d2d9b7cf0ce6de09e4d2e80f8f5b3f2", size = 552443, upload-time = "2024-08-06T16:59:37.772Z" }, - { url = "https://files.pythonhosted.org/packages/a1/ed/c074d248409b4432b1ccb2056974175fa0af2d1bc1f9c21121f80a358fa3/rpds_py-0.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a35df9f5548fd79cb2f52d27182108c3e6641a4feb0f39067911bf2adaa3e57", size = 528380, upload-time = "2024-08-06T16:59:39.528Z" }, - { url = "https://files.pythonhosted.org/packages/d5/bd/04caf938895d2d78201e89c0c8a94dfd9990c34a19ff52fb01d0912343e3/rpds_py-0.20.0-cp313-none-win32.whl", hash = "sha256:fd2d84f40633bc475ef2d5490b9c19543fbf18596dcb1b291e3a12ea5d722f7a", size = 200540, upload-time = "2024-08-06T16:59:41.065Z" }, - { url = "https://files.pythonhosted.org/packages/95/cc/109eb8b9863680411ae703664abacaa035820c7755acc9686d5dd02cdd2e/rpds_py-0.20.0-cp313-none-win_amd64.whl", hash = "sha256:9bc2d153989e3216b0559251b0c260cfd168ec78b1fac33dd485750a228db5a2", size = 214111, upload-time = "2024-08-06T16:59:42.679Z" }, - { url = "https://files.pythonhosted.org/packages/37/cf/0081318cde7d7e89f802b4939ec8d079d7b59b0ee3fc168435bde31e861c/rpds_py-0.20.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:f2fbf7db2012d4876fb0d66b5b9ba6591197b0f165db8d99371d976546472a24", size = 319397, upload-time = "2024-08-06T16:59:44.141Z" }, - { url = "https://files.pythonhosted.org/packages/09/4e/ea988bb4fe0f39613dd2b868fc698c19fd970e33dfe4f1bd90658f94fed3/rpds_py-0.20.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1e5f3cd7397c8f86c8cc72d5a791071431c108edd79872cdd96e00abd8497d29", size = 311674, upload-time = "2024-08-06T16:59:46.29Z" }, - { url = "https://files.pythonhosted.org/packages/9e/38/d4a1f901068dfcb51183266a91bcef614f616d4d820a4dd288ccaff83cbb/rpds_py-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce9845054c13696f7af7f2b353e6b4f676dab1b4b215d7fe5e05c6f8bb06f965", size = 367607, upload-time = "2024-08-06T16:59:48.067Z" }, - { url = "https://files.pythonhosted.org/packages/7a/e3/dc75f3f118f3dc29be962f68729b2d203be9ad52ad34b1ae907c60271302/rpds_py-0.20.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c3e130fd0ec56cb76eb49ef52faead8ff09d13f4527e9b0c400307ff72b408e1", size = 367870, upload-time = "2024-08-06T16:59:49.566Z" }, - { url = "https://files.pythonhosted.org/packages/8d/23/2b6acbc76fddb7f89ef2382f136a7a4cf10e078e6e149508a59d7448e2e1/rpds_py-0.20.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b16aa0107ecb512b568244ef461f27697164d9a68d8b35090e9b0c1c8b27752", size = 395245, upload-time = "2024-08-06T16:59:51.103Z" }, - { url = "https://files.pythonhosted.org/packages/53/21/9d405f690986f0215d655c2980de10f63c073e66c56bd5f4d039214d1624/rpds_py-0.20.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aa7f429242aae2947246587d2964fad750b79e8c233a2367f71b554e9447949c", size = 431699, upload-time = "2024-08-06T16:59:52.622Z" }, - { url = "https://files.pythonhosted.org/packages/88/9d/07fedb6afebe0fe6f1c2981223ffa82c3ff3cc09ffeab8c9859b4852d7e3/rpds_py-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af0fc424a5842a11e28956e69395fbbeab2c97c42253169d87e90aac2886d751", size = 355123, upload-time = "2024-08-06T16:59:54.155Z" }, - { url = "https://files.pythonhosted.org/packages/16/80/857ed7ca6dbb33805f2c8298868d029f9cf0a06f182d7058c8484b47941b/rpds_py-0.20.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b8c00a3b1e70c1d3891f0db1b05292747f0dbcfb49c43f9244d04c70fbc40eb8", size = 373349, upload-time = "2024-08-06T16:59:56.073Z" }, - { url = "https://files.pythonhosted.org/packages/97/69/ae242d3c59f04ca3f56d9dbd768e7cabfc093cfb9e030dfc8fbd7fadbc4d/rpds_py-0.20.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:40ce74fc86ee4645d0a225498d091d8bc61f39b709ebef8204cb8b5a464d3c0e", size = 542737, upload-time = "2024-08-06T16:59:57.775Z" }, - { url = "https://files.pythonhosted.org/packages/9f/c1/06d6c461c41e73c8187471595ce1c9a67c280d533fbd705889e6a0e9da2f/rpds_py-0.20.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:4fe84294c7019456e56d93e8ababdad5a329cd25975be749c3f5f558abb48253", size = 547562, upload-time = "2024-08-06T16:59:59.614Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0b/918acbb2aa360822f18c6bc8672ee3c231d357f55d5e7f980d8207360742/rpds_py-0.20.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:338ca4539aad4ce70a656e5187a3a31c5204f261aef9f6ab50e50bcdffaf050a", size = 525769, upload-time = "2024-08-06T17:00:01.671Z" }, - { url = "https://files.pythonhosted.org/packages/0e/7f/446eb1f1ed22ca855e3966e1b97e10f68f3a40578d9596a4b83323456cef/rpds_py-0.20.0-cp38-none-win32.whl", hash = "sha256:54b43a2b07db18314669092bb2de584524d1ef414588780261e31e85846c26a5", size = 199321, upload-time = "2024-08-06T17:00:03.74Z" }, - { url = "https://files.pythonhosted.org/packages/3d/c7/ae73dfcf417fa1bb087341b670083afc3228d6a496d0d2221afd5b20d95f/rpds_py-0.20.0-cp38-none-win_amd64.whl", hash = "sha256:a1862d2d7ce1674cffa6d186d53ca95c6e17ed2b06b3f4c476173565c862d232", size = 213048, upload-time = "2024-08-06T17:00:05.447Z" }, - { url = "https://files.pythonhosted.org/packages/a1/55/228f6d9a8c6940c8d5e49db5e0434ffcbad669c33509ac39cb0af061b0fa/rpds_py-0.20.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3fde368e9140312b6e8b6c09fb9f8c8c2f00999d1823403ae90cc00480221b22", size = 319496, upload-time = "2024-08-06T17:00:07.167Z" }, - { url = "https://files.pythonhosted.org/packages/68/61/074236253586feb550954f8b4359d38eefb45bafcbbb7d2e74062a82f386/rpds_py-0.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9824fb430c9cf9af743cf7aaf6707bf14323fb51ee74425c380f4c846ea70789", size = 311837, upload-time = "2024-08-06T17:00:08.973Z" }, - { url = "https://files.pythonhosted.org/packages/03/67/ed6c2fe076bf78296934d4356145fedf3c7c2f8d490e099bcf6f31794dc0/rpds_py-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:11ef6ce74616342888b69878d45e9f779b95d4bd48b382a229fe624a409b72c5", size = 367819, upload-time = "2024-08-06T17:00:10.604Z" }, - { url = "https://files.pythonhosted.org/packages/30/25/4a9e7b89b6760ac032f375cb236e4f8e518ad1fad685c40b6a9752056d6f/rpds_py-0.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c52d3f2f82b763a24ef52f5d24358553e8403ce05f893b5347098014f2d9eff2", size = 368322, upload-time = "2024-08-06T17:00:12.342Z" }, - { url = "https://files.pythonhosted.org/packages/67/17/0255bb0e564517b53343ea672ebec9fb7ad40e9083ca09a4080fbc986bb9/rpds_py-0.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d35cef91e59ebbeaa45214861874bc6f19eb35de96db73e467a8358d701a96c", size = 395552, upload-time = "2024-08-06T17:00:14.156Z" }, - { url = "https://files.pythonhosted.org/packages/af/6e/77c65ccb0d7cdc39ec2be19b918a4d4fe9e2d2a1c5cab36745b36f2c1e59/rpds_py-0.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d72278a30111e5b5525c1dd96120d9e958464316f55adb030433ea905866f4de", size = 433735, upload-time = "2024-08-06T17:00:16.395Z" }, - { url = "https://files.pythonhosted.org/packages/04/d8/e73d56b1908a6c0e3e5982365eb293170cd458cc25a19363f69c76e00fd2/rpds_py-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4c29cbbba378759ac5786730d1c3cb4ec6f8ababf5c42a9ce303dc4b3d08cda", size = 355542, upload-time = "2024-08-06T17:00:18.424Z" }, - { url = "https://files.pythonhosted.org/packages/47/df/e72c79053b0c882b818bfd8f0ed1f1ace550bc9cdba27165cb73dddb9394/rpds_py-0.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6632f2d04f15d1bd6fe0eedd3b86d9061b836ddca4c03d5cf5c7e9e6b7c14580", size = 373644, upload-time = "2024-08-06T17:00:21.421Z" }, - { url = "https://files.pythonhosted.org/packages/7f/00/3e16cb08c0cc6a233f0f61e4d009e3098cbe280ec975d14f28935bd15316/rpds_py-0.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d0b67d87bb45ed1cd020e8fbf2307d449b68abc45402fe1a4ac9e46c3c8b192b", size = 543139, upload-time = "2024-08-06T17:00:23.632Z" }, - { url = "https://files.pythonhosted.org/packages/41/71/799c6b6f6031ed535f22fcf6802601cc7f981842bd28007bb7bb4bd10b2f/rpds_py-0.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ec31a99ca63bf3cd7f1a5ac9fe95c5e2d060d3c768a09bc1d16e235840861420", size = 548007, upload-time = "2024-08-06T17:00:25.216Z" }, - { url = "https://files.pythonhosted.org/packages/53/58/ad03eb6718e814fa045198c72d45d2ae60180eb48338f22c9fa34bd89964/rpds_py-0.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:22e6c9976e38f4d8c4a63bd8a8edac5307dffd3ee7e6026d97f3cc3a2dc02a0b", size = 526102, upload-time = "2024-08-06T17:00:26.993Z" }, - { url = "https://files.pythonhosted.org/packages/78/99/a52e5b460f2311fc8ee75ff769e8d67e76208947180eacb4f153af2d9967/rpds_py-0.20.0-cp39-none-win32.whl", hash = "sha256:569b3ea770c2717b730b61998b6c54996adee3cef69fc28d444f3e7920313cf7", size = 199391, upload-time = "2024-08-06T17:00:29.001Z" }, - { url = "https://files.pythonhosted.org/packages/0c/7d/fd42a27fe392a69faf4a5e635870fc425edcb998485ee73afbc734ecef16/rpds_py-0.20.0-cp39-none-win_amd64.whl", hash = "sha256:e6900ecdd50ce0facf703f7a00df12374b74bbc8ad9fe0f6559947fb20f82364", size = 213205, upload-time = "2024-08-06T17:00:30.613Z" }, - { url = "https://files.pythonhosted.org/packages/06/39/bf1f664c347c946ef56cecaa896e3693d91acc741afa78ebb3fdb7aba08b/rpds_py-0.20.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:617c7357272c67696fd052811e352ac54ed1d9b49ab370261a80d3b6ce385045", size = 319444, upload-time = "2024-08-06T17:00:32.378Z" }, - { url = "https://files.pythonhosted.org/packages/c1/71/876135d3cb90d62468540b84e8e83ff4dc92052ab309bfdea7ea0b9221ad/rpds_py-0.20.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9426133526f69fcaba6e42146b4e12d6bc6c839b8b555097020e2b78ce908dcc", size = 311699, upload-time = "2024-08-06T17:00:34.289Z" }, - { url = "https://files.pythonhosted.org/packages/f7/da/8ccaeba6a3dda7467aebaf893de9eafd56275e2c90773c83bf15fb0b8374/rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:deb62214c42a261cb3eb04d474f7155279c1a8a8c30ac89b7dcb1721d92c3c02", size = 367825, upload-time = "2024-08-06T17:00:36.114Z" }, - { url = "https://files.pythonhosted.org/packages/04/b6/02a54c47c178d180395b3c9a8bfb3b93906e08f9acf7b4a1067d27c3fae0/rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fcaeb7b57f1a1e071ebd748984359fef83ecb026325b9d4ca847c95bc7311c92", size = 369046, upload-time = "2024-08-06T17:00:37.943Z" }, - { url = "https://files.pythonhosted.org/packages/a7/64/df4966743aa4def8727dc13d06527c8b13eb7412c1429def2d4701bee520/rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d454b8749b4bd70dd0a79f428731ee263fa6995f83ccb8bada706e8d1d3ff89d", size = 395896, upload-time = "2024-08-06T17:00:39.81Z" }, - { url = "https://files.pythonhosted.org/packages/6f/d9/7ff03ff3642c600f27ff94512bb158a8d815fea5ed4162c75a7e850d6003/rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d807dc2051abe041b6649681dce568f8e10668e3c1c6543ebae58f2d7e617855", size = 432427, upload-time = "2024-08-06T17:00:41.594Z" }, - { url = "https://files.pythonhosted.org/packages/b8/c6/e1b886f7277b3454e55e85332e165091c19114eecb5377b88d892fd36ccf/rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3c20f0ddeb6e29126d45f89206b8291352b8c5b44384e78a6499d68b52ae511", size = 355403, upload-time = "2024-08-06T17:00:43.35Z" }, - { url = "https://files.pythonhosted.org/packages/e2/62/e26bd5b944e547c7bfd0b6ca7e306bfa430f8bd298ab72a1217976a7ca8d/rpds_py-0.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b7f19250ceef892adf27f0399b9e5afad019288e9be756d6919cb58892129f51", size = 374491, upload-time = "2024-08-06T17:00:45.03Z" }, - { url = "https://files.pythonhosted.org/packages/c3/92/93c5a530898d3a5d1ce087455071ba714b77806ed9ffee4070d0c7a53b7e/rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:4f1ed4749a08379555cebf4650453f14452eaa9c43d0a95c49db50c18b7da075", size = 543622, upload-time = "2024-08-06T17:00:47.133Z" }, - { url = "https://files.pythonhosted.org/packages/01/9e/d68fba289625b5d3c9d1925825d7da716fbf812bda2133ac409021d5db13/rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:dcedf0b42bcb4cfff4101d7771a10532415a6106062f005ab97d1d0ab5681c60", size = 548558, upload-time = "2024-08-06T17:00:49.464Z" }, - { url = "https://files.pythonhosted.org/packages/bf/d6/4b2fad4898154365f0f2bd72ffd190349274a4c1d6a6f94f02a83bb2b8f1/rpds_py-0.20.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:39ed0d010457a78f54090fafb5d108501b5aa5604cc22408fc1c0c77eac14344", size = 525753, upload-time = "2024-08-06T17:00:51.131Z" }, - { url = "https://files.pythonhosted.org/packages/d2/ea/6f121d1802f3adae1981aea4209ea66f9d3c7f2f6d6b85ef4f13a61d17ef/rpds_py-0.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bb273176be34a746bdac0b0d7e4e2c467323d13640b736c4c477881a3220a989", size = 213529, upload-time = "2024-08-06T17:00:53.579Z" }, - { url = "https://files.pythonhosted.org/packages/0a/6f/7ab47005469f0d73dad89d29b733e3555d454a45146c30f5628242e56d33/rpds_py-0.20.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f918a1a130a6dfe1d7fe0f105064141342e7dd1611f2e6a21cd2f5c8cb1cfb3e", size = 320800, upload-time = "2024-08-06T17:00:55.375Z" }, - { url = "https://files.pythonhosted.org/packages/cc/a1/bef9e0ef30f89c7516559ca7acc40e8ae70397535a0b1a4535a4a01d9ed0/rpds_py-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f60012a73aa396be721558caa3a6fd49b3dd0033d1675c6d59c4502e870fcf0c", size = 312001, upload-time = "2024-08-06T17:00:57.86Z" }, - { url = "https://files.pythonhosted.org/packages/31/44/9093c5dca95ee463c3669651e710af182eb6f9cd83626b15a2ebde2247b1/rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d2b1ad682a3dfda2a4e8ad8572f3100f95fad98cb99faf37ff0ddfe9cbf9d03", size = 369279, upload-time = "2024-08-06T17:00:59.851Z" }, - { url = "https://files.pythonhosted.org/packages/6f/ac/0c36e067681fa3fe4c60a9422b011ec0ccc80c1e124f5210951f7982e887/rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:614fdafe9f5f19c63ea02817fa4861c606a59a604a77c8cdef5aa01d28b97921", size = 369716, upload-time = "2024-08-06T17:01:01.581Z" }, - { url = "https://files.pythonhosted.org/packages/6b/78/8896e08625d46ea5bfdd526ee688b91eeafecbc3cf7223612c82ed77905b/rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa518bcd7600c584bf42e6617ee8132869e877db2f76bcdc281ec6a4113a53ab", size = 396708, upload-time = "2024-08-06T17:01:05.539Z" }, - { url = "https://files.pythonhosted.org/packages/24/5f/d865ae460e47e46fd2b489f2aceed34439bd8f18a1ff414c299142e0e22a/rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0475242f447cc6cb8a9dd486d68b2ef7fbee84427124c232bff5f63b1fe11e5", size = 433356, upload-time = "2024-08-06T17:01:08.479Z" }, - { url = "https://files.pythonhosted.org/packages/bd/8b/04031937ffa565021f934a9acf44bb6b1b60ea19fa9e58950b32357e85a1/rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f90a4cd061914a60bd51c68bcb4357086991bd0bb93d8aa66a6da7701370708f", size = 356157, upload-time = "2024-08-06T17:01:10.602Z" }, - { url = "https://files.pythonhosted.org/packages/3a/64/1f0471b1e688704a716e07340b85f4145109359951feb08676a1f3b8cec4/rpds_py-0.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:def7400461c3a3f26e49078302e1c1b38f6752342c77e3cf72ce91ca69fb1bc1", size = 374826, upload-time = "2024-08-06T17:01:12.372Z" }, - { url = "https://files.pythonhosted.org/packages/73/4e/082c0c5eba463e29dff1c6b49557f6ad0d6faae4b46832fa9c1e5b69b7ba/rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:65794e4048ee837494aea3c21a28ad5fc080994dfba5b036cf84de37f7ad5074", size = 544549, upload-time = "2024-08-06T17:01:14.673Z" }, - { url = "https://files.pythonhosted.org/packages/cd/ee/f4af0a62d1ba912c4a3a7f5ec04350946ddd59017f3f3d1c227b20ddf558/rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:faefcc78f53a88f3076b7f8be0a8f8d35133a3ecf7f3770895c25f8813460f08", size = 549245, upload-time = "2024-08-06T17:01:16.4Z" }, - { url = "https://files.pythonhosted.org/packages/59/42/34601dc773be86a85a9ca47f68301a69fdb019aaae0c1426813f265f5ac0/rpds_py-0.20.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5b4f105deeffa28bbcdff6c49b34e74903139afa690e35d2d9e3c2c2fba18cec", size = 526722, upload-time = "2024-08-06T17:01:18.951Z" }, - { url = "https://files.pythonhosted.org/packages/ff/4f/280745d5180c9d78df6b53b6e8b65336f8b6adeb958a8fd19c749fded637/rpds_py-0.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fdfc3a892927458d98f3d55428ae46b921d1f7543b89382fdb483f5640daaec8", size = 214379, upload-time = "2024-08-06T17:01:21.313Z" }, +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288", size = 370490, upload-time = "2025-11-30T20:21:33.256Z" }, + { url = "https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00", size = 359751, upload-time = "2025-11-30T20:21:34.591Z" }, + { url = "https://files.pythonhosted.org/packages/cd/7c/e4933565ef7f7a0818985d87c15d9d273f1a649afa6a52ea35ad011195ea/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6", size = 389696, upload-time = "2025-11-30T20:21:36.122Z" }, + { url = "https://files.pythonhosted.org/packages/5e/01/6271a2511ad0815f00f7ed4390cf2567bec1d4b1da39e2c27a41e6e3b4de/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7", size = 403136, upload-time = "2025-11-30T20:21:37.728Z" }, + { url = "https://files.pythonhosted.org/packages/55/64/c857eb7cd7541e9b4eee9d49c196e833128a55b89a9850a9c9ac33ccf897/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324", size = 524699, upload-time = "2025-11-30T20:21:38.92Z" }, + { url = "https://files.pythonhosted.org/packages/9c/ed/94816543404078af9ab26159c44f9e98e20fe47e2126d5d32c9d9948d10a/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df", size = 412022, upload-time = "2025-11-30T20:21:40.407Z" }, + { url = "https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3", size = 390522, upload-time = "2025-11-30T20:21:42.17Z" }, + { url = "https://files.pythonhosted.org/packages/13/4e/57a85fda37a229ff4226f8cbcf09f2a455d1ed20e802ce5b2b4a7f5ed053/rpds_py-0.30.0-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221", size = 404579, upload-time = "2025-11-30T20:21:43.769Z" }, + { url = "https://files.pythonhosted.org/packages/f9/da/c9339293513ec680a721e0e16bf2bac3db6e5d7e922488de471308349bba/rpds_py-0.30.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7", size = 421305, upload-time = "2025-11-30T20:21:44.994Z" }, + { url = "https://files.pythonhosted.org/packages/f9/be/522cb84751114f4ad9d822ff5a1aa3c98006341895d5f084779b99596e5c/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff", size = 572503, upload-time = "2025-11-30T20:21:46.91Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9b/de879f7e7ceddc973ea6e4629e9b380213a6938a249e94b0cdbcc325bb66/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7", size = 598322, upload-time = "2025-11-30T20:21:48.709Z" }, + { url = "https://files.pythonhosted.org/packages/48/ac/f01fc22efec3f37d8a914fc1b2fb9bcafd56a299edbe96406f3053edea5a/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139", size = 560792, upload-time = "2025-11-30T20:21:50.024Z" }, + { url = "https://files.pythonhosted.org/packages/e2/da/4e2b19d0f131f35b6146425f846563d0ce036763e38913d917187307a671/rpds_py-0.30.0-cp310-cp310-win32.whl", hash = "sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464", size = 221901, upload-time = "2025-11-30T20:21:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/96/cb/156d7a5cf4f78a7cc571465d8aec7a3c447c94f6749c5123f08438bcf7bc/rpds_py-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169", size = 235823, upload-time = "2025-11-30T20:21:52.505Z" }, + { url = "https://files.pythonhosted.org/packages/4d/6e/f964e88b3d2abee2a82c1ac8366da848fce1c6d834dc2132c3fda3970290/rpds_py-0.30.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425", size = 370157, upload-time = "2025-11-30T20:21:53.789Z" }, + { url = "https://files.pythonhosted.org/packages/94/ba/24e5ebb7c1c82e74c4e4f33b2112a5573ddc703915b13a073737b59b86e0/rpds_py-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d", size = 359676, upload-time = "2025-11-30T20:21:55.475Z" }, + { url = "https://files.pythonhosted.org/packages/84/86/04dbba1b087227747d64d80c3b74df946b986c57af0a9f0c98726d4d7a3b/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4", size = 389938, upload-time = "2025-11-30T20:21:57.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/bb/1463f0b1722b7f45431bdd468301991d1328b16cffe0b1c2918eba2c4eee/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f", size = 402932, upload-time = "2025-11-30T20:21:58.47Z" }, + { url = "https://files.pythonhosted.org/packages/99/ee/2520700a5c1f2d76631f948b0736cdf9b0acb25abd0ca8e889b5c62ac2e3/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4", size = 525830, upload-time = "2025-11-30T20:21:59.699Z" }, + { url = "https://files.pythonhosted.org/packages/e0/ad/bd0331f740f5705cc555a5e17fdf334671262160270962e69a2bdef3bf76/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97", size = 412033, upload-time = "2025-11-30T20:22:00.991Z" }, + { url = "https://files.pythonhosted.org/packages/f8/1e/372195d326549bb51f0ba0f2ecb9874579906b97e08880e7a65c3bef1a99/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89", size = 390828, upload-time = "2025-11-30T20:22:02.723Z" }, + { url = "https://files.pythonhosted.org/packages/ab/2b/d88bb33294e3e0c76bc8f351a3721212713629ffca1700fa94979cb3eae8/rpds_py-0.30.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d", size = 404683, upload-time = "2025-11-30T20:22:04.367Z" }, + { url = "https://files.pythonhosted.org/packages/50/32/c759a8d42bcb5289c1fac697cd92f6fe01a018dd937e62ae77e0e7f15702/rpds_py-0.30.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038", size = 421583, upload-time = "2025-11-30T20:22:05.814Z" }, + { url = "https://files.pythonhosted.org/packages/2b/81/e729761dbd55ddf5d84ec4ff1f47857f4374b0f19bdabfcf929164da3e24/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7", size = 572496, upload-time = "2025-11-30T20:22:07.713Z" }, + { url = "https://files.pythonhosted.org/packages/14/f6/69066a924c3557c9c30baa6ec3a0aa07526305684c6f86c696b08860726c/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed", size = 598669, upload-time = "2025-11-30T20:22:09.312Z" }, + { url = "https://files.pythonhosted.org/packages/5f/48/905896b1eb8a05630d20333d1d8ffd162394127b74ce0b0784ae04498d32/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85", size = 561011, upload-time = "2025-11-30T20:22:11.309Z" }, + { url = "https://files.pythonhosted.org/packages/22/16/cd3027c7e279d22e5eb431dd3c0fbc677bed58797fe7581e148f3f68818b/rpds_py-0.30.0-cp311-cp311-win32.whl", hash = "sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c", size = 221406, upload-time = "2025-11-30T20:22:13.101Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5b/e7b7aa136f28462b344e652ee010d4de26ee9fd16f1bfd5811f5153ccf89/rpds_py-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825", size = 236024, upload-time = "2025-11-30T20:22:14.853Z" }, + { url = "https://files.pythonhosted.org/packages/14/a6/364bba985e4c13658edb156640608f2c9e1d3ea3c81b27aa9d889fff0e31/rpds_py-0.30.0-cp311-cp311-win_arm64.whl", hash = "sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229", size = 229069, upload-time = "2025-11-30T20:22:16.577Z" }, + { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, + { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, + { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, + { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, + { url = "https://files.pythonhosted.org/packages/86/81/dad16382ebbd3d0e0328776d8fd7ca94220e4fa0798d1dc5e7da48cb3201/rpds_py-0.30.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:68f19c879420aa08f61203801423f6cd5ac5f0ac4ac82a2368a9fcd6a9a075e0", size = 362099, upload-time = "2025-11-30T20:23:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/2b/60/19f7884db5d5603edf3c6bce35408f45ad3e97e10007df0e17dd57af18f8/rpds_py-0.30.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ec7c4490c672c1a0389d319b3a9cfcd098dcdc4783991553c332a15acf7249be", size = 353192, upload-time = "2025-11-30T20:23:29.151Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c4/76eb0e1e72d1a9c4703c69607cec123c29028bff28ce41588792417098ac/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f251c812357a3fed308d684a5079ddfb9d933860fc6de89f2b7ab00da481e65f", size = 384080, upload-time = "2025-11-30T20:23:30.785Z" }, + { url = "https://files.pythonhosted.org/packages/72/87/87ea665e92f3298d1b26d78814721dc39ed8d2c74b86e83348d6b48a6f31/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac98b175585ecf4c0348fd7b29c3864bda53b805c773cbf7bfdaffc8070c976f", size = 394841, upload-time = "2025-11-30T20:23:32.209Z" }, + { url = "https://files.pythonhosted.org/packages/77/ad/7783a89ca0587c15dcbf139b4a8364a872a25f861bdb88ed99f9b0dec985/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3e62880792319dbeb7eb866547f2e35973289e7d5696c6e295476448f5b63c87", size = 516670, upload-time = "2025-11-30T20:23:33.742Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/2882bdac942bd2172f3da574eab16f309ae10a3925644e969536553cb4ee/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e7fc54e0900ab35d041b0601431b0a0eb495f0851a0639b6ef90f7741b39a18", size = 408005, upload-time = "2025-11-30T20:23:35.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/81/9a91c0111ce1758c92516a3e44776920b579d9a7c09b2b06b642d4de3f0f/rpds_py-0.30.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e77dc9822d3ad616c3d5759ea5631a75e5809d5a28707744ef79d7a1bcfcad", size = 382112, upload-time = "2025-11-30T20:23:36.842Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8e/1da49d4a107027e5fbc64daeab96a0706361a2918da10cb41769244b805d/rpds_py-0.30.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:b4dc1a6ff022ff85ecafef7979a2c6eb423430e05f1165d6688234e62ba99a07", size = 399049, upload-time = "2025-11-30T20:23:38.343Z" }, + { url = "https://files.pythonhosted.org/packages/df/5a/7ee239b1aa48a127570ec03becbb29c9d5a9eb092febbd1699d567cae859/rpds_py-0.30.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4559c972db3a360808309e06a74628b95eaccbf961c335c8fe0d590cf587456f", size = 415661, upload-time = "2025-11-30T20:23:40.263Z" }, + { url = "https://files.pythonhosted.org/packages/70/ea/caa143cf6b772f823bc7929a45da1fa83569ee49b11d18d0ada7f5ee6fd6/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0ed177ed9bded28f8deb6ab40c183cd1192aa0de40c12f38be4d59cd33cb5c65", size = 565606, upload-time = "2025-11-30T20:23:42.186Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/ac20ba2d69303f961ad8cf55bf7dbdb4763f627291ba3d0d7d67333cced9/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ad1fa8db769b76ea911cb4e10f049d80bf518c104f15b3edb2371cc65375c46f", size = 591126, upload-time = "2025-11-30T20:23:44.086Z" }, + { url = "https://files.pythonhosted.org/packages/21/20/7ff5f3c8b00c8a95f75985128c26ba44503fb35b8e0259d812766ea966c7/rpds_py-0.30.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:46e83c697b1f1c72b50e5ee5adb4353eef7406fb3f2043d64c33f20ad1c2fc53", size = 553371, upload-time = "2025-11-30T20:23:46.004Z" }, + { url = "https://files.pythonhosted.org/packages/72/c7/81dadd7b27c8ee391c132a6b192111ca58d866577ce2d9b0ca157552cce0/rpds_py-0.30.0-cp314-cp314-win32.whl", hash = "sha256:ee454b2a007d57363c2dfd5b6ca4a5d7e2c518938f8ed3b706e37e5d470801ed", size = 215298, upload-time = "2025-11-30T20:23:47.696Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d2/1aaac33287e8cfb07aab2e6b8ac1deca62f6f65411344f1433c55e6f3eb8/rpds_py-0.30.0-cp314-cp314-win_amd64.whl", hash = "sha256:95f0802447ac2d10bcc69f6dc28fe95fdf17940367b21d34e34c737870758950", size = 228604, upload-time = "2025-11-30T20:23:49.501Z" }, + { url = "https://files.pythonhosted.org/packages/e8/95/ab005315818cc519ad074cb7784dae60d939163108bd2b394e60dc7b5461/rpds_py-0.30.0-cp314-cp314-win_arm64.whl", hash = "sha256:613aa4771c99f03346e54c3f038e4cc574ac09a3ddfb0e8878487335e96dead6", size = 222391, upload-time = "2025-11-30T20:23:50.96Z" }, + { url = "https://files.pythonhosted.org/packages/9e/68/154fe0194d83b973cdedcdcc88947a2752411165930182ae41d983dcefa6/rpds_py-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7e6ecfcb62edfd632e56983964e6884851786443739dbfe3582947e87274f7cb", size = 364868, upload-time = "2025-11-30T20:23:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/83/69/8bbc8b07ec854d92a8b75668c24d2abcb1719ebf890f5604c61c9369a16f/rpds_py-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a1d0bc22a7cdc173fedebb73ef81e07faef93692b8c1ad3733b67e31e1b6e1b8", size = 353747, upload-time = "2025-11-30T20:23:54.036Z" }, + { url = "https://files.pythonhosted.org/packages/ab/00/ba2e50183dbd9abcce9497fa5149c62b4ff3e22d338a30d690f9af970561/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d08f00679177226c4cb8c5265012eea897c8ca3b93f429e546600c971bcbae7", size = 383795, upload-time = "2025-11-30T20:23:55.556Z" }, + { url = "https://files.pythonhosted.org/packages/05/6f/86f0272b84926bcb0e4c972262f54223e8ecc556b3224d281e6598fc9268/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5965af57d5848192c13534f90f9dd16464f3c37aaf166cc1da1cae1fd5a34898", size = 393330, upload-time = "2025-11-30T20:23:57.033Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e9/0e02bb2e6dc63d212641da45df2b0bf29699d01715913e0d0f017ee29438/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a4e86e34e9ab6b667c27f3211ca48f73dba7cd3d90f8d5b11be56e5dbc3fb4e", size = 518194, upload-time = "2025-11-30T20:23:58.637Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ca/be7bca14cf21513bdf9c0606aba17d1f389ea2b6987035eb4f62bd923f25/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5d3e6b26f2c785d65cc25ef1e5267ccbe1b069c5c21b8cc724efee290554419", size = 408340, upload-time = "2025-11-30T20:24:00.2Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c7/736e00ebf39ed81d75544c0da6ef7b0998f8201b369acf842f9a90dc8fce/rpds_py-0.30.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626a7433c34566535b6e56a1b39a7b17ba961e97ce3b80ec62e6f1312c025551", size = 383765, upload-time = "2025-11-30T20:24:01.759Z" }, + { url = "https://files.pythonhosted.org/packages/4a/3f/da50dfde9956aaf365c4adc9533b100008ed31aea635f2b8d7b627e25b49/rpds_py-0.30.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:acd7eb3f4471577b9b5a41baf02a978e8bdeb08b4b355273994f8b87032000a8", size = 396834, upload-time = "2025-11-30T20:24:03.687Z" }, + { url = "https://files.pythonhosted.org/packages/4e/00/34bcc2565b6020eab2623349efbdec810676ad571995911f1abdae62a3a0/rpds_py-0.30.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe5fa731a1fa8a0a56b0977413f8cacac1768dad38d16b3a296712709476fbd5", size = 415470, upload-time = "2025-11-30T20:24:05.232Z" }, + { url = "https://files.pythonhosted.org/packages/8c/28/882e72b5b3e6f718d5453bd4d0d9cf8df36fddeb4ddbbab17869d5868616/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:74a3243a411126362712ee1524dfc90c650a503502f135d54d1b352bd01f2404", size = 565630, upload-time = "2025-11-30T20:24:06.878Z" }, + { url = "https://files.pythonhosted.org/packages/3b/97/04a65539c17692de5b85c6e293520fd01317fd878ea1995f0367d4532fb1/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:3e8eeb0544f2eb0d2581774be4c3410356eba189529a6b3e36bbbf9696175856", size = 591148, upload-time = "2025-11-30T20:24:08.445Z" }, + { url = "https://files.pythonhosted.org/packages/85/70/92482ccffb96f5441aab93e26c4d66489eb599efdcf96fad90c14bbfb976/rpds_py-0.30.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:dbd936cde57abfee19ab3213cf9c26be06d60750e60a8e4dd85d1ab12c8b1f40", size = 556030, upload-time = "2025-11-30T20:24:10.956Z" }, + { url = "https://files.pythonhosted.org/packages/20/53/7c7e784abfa500a2b6b583b147ee4bb5a2b3747a9166bab52fec4b5b5e7d/rpds_py-0.30.0-cp314-cp314t-win32.whl", hash = "sha256:dc824125c72246d924f7f796b4f63c1e9dc810c7d9e2355864b3c3a73d59ade0", size = 211570, upload-time = "2025-11-30T20:24:12.735Z" }, + { url = "https://files.pythonhosted.org/packages/d0/02/fa464cdfbe6b26e0600b62c528b72d8608f5cc49f96b8d6e38c95d60c676/rpds_py-0.30.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27f4b0e92de5bfbc6f86e43959e6edd1425c33b5e69aab0984a72047f2bcf1e3", size = 226532, upload-time = "2025-11-30T20:24:14.634Z" }, + { url = "https://files.pythonhosted.org/packages/69/71/3f34339ee70521864411f8b6992e7ab13ac30d8e4e3309e07c7361767d91/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58", size = 372292, upload-time = "2025-11-30T20:24:16.537Z" }, + { url = "https://files.pythonhosted.org/packages/57/09/f183df9b8f2d66720d2ef71075c59f7e1b336bec7ee4c48f0a2b06857653/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a", size = 362128, upload-time = "2025-11-30T20:24:18.086Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/5c2594e937253457342e078f0cc1ded3dd7b2ad59afdbf2d354869110a02/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb", size = 391542, upload-time = "2025-11-30T20:24:20.092Z" }, + { url = "https://files.pythonhosted.org/packages/49/5c/31ef1afd70b4b4fbdb2800249f34c57c64beb687495b10aec0365f53dfc4/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c", size = 404004, upload-time = "2025-11-30T20:24:22.231Z" }, + { url = "https://files.pythonhosted.org/packages/e3/63/0cfbea38d05756f3440ce6534d51a491d26176ac045e2707adc99bb6e60a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3", size = 527063, upload-time = "2025-11-30T20:24:24.302Z" }, + { url = "https://files.pythonhosted.org/packages/42/e6/01e1f72a2456678b0f618fc9a1a13f882061690893c192fcad9f2926553a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5", size = 413099, upload-time = "2025-11-30T20:24:25.916Z" }, + { url = "https://files.pythonhosted.org/packages/b8/25/8df56677f209003dcbb180765520c544525e3ef21ea72279c98b9aa7c7fb/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738", size = 392177, upload-time = "2025-11-30T20:24:27.834Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b4/0a771378c5f16f8115f796d1f437950158679bcd2a7c68cf251cfb00ed5b/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f", size = 406015, upload-time = "2025-11-30T20:24:29.457Z" }, + { url = "https://files.pythonhosted.org/packages/36/d8/456dbba0af75049dc6f63ff295a2f92766b9d521fa00de67a2bd6427d57a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877", size = 423736, upload-time = "2025-11-30T20:24:31.22Z" }, + { url = "https://files.pythonhosted.org/packages/13/64/b4d76f227d5c45a7e0b796c674fd81b0a6c4fbd48dc29271857d8219571c/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a", size = 573981, upload-time = "2025-11-30T20:24:32.934Z" }, + { url = "https://files.pythonhosted.org/packages/20/91/092bacadeda3edf92bf743cc96a7be133e13a39cdbfd7b5082e7ab638406/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4", size = 599782, upload-time = "2025-11-30T20:24:35.169Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b7/b95708304cd49b7b6f82fdd039f1748b66ec2b21d6a45180910802f1abf1/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e", size = 562191, upload-time = "2025-11-30T20:24:36.853Z" }, ] [[package]] name = "ruff" -version = "0.6.8" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/74/f9/4ce3e765a72ab8fe0f80f48508ea38b4196daab3da14d803c21349b2d367/ruff-0.6.8.tar.gz", hash = "sha256:a5bf44b1aa0adaf6d9d20f86162b34f7c593bfedabc51239953e446aefc8ce18", size = 3084543, upload-time = "2024-09-26T12:27:17.785Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/db/07/42ee57e8b76ca585297a663a552b4f6d6a99372ca47fdc2276ef72cc0f2f/ruff-0.6.8-py3-none-linux_armv6l.whl", hash = "sha256:77944bca110ff0a43b768f05a529fecd0706aac7bcce36d7f1eeb4cbfca5f0f2", size = 10404327, upload-time = "2024-09-26T12:26:31.274Z" }, - { url = "https://files.pythonhosted.org/packages/eb/51/d42571ff8156d65086acb72d39aa64cb24181db53b497d0ed6293f43f07a/ruff-0.6.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:27b87e1801e786cd6ede4ada3faa5e254ce774de835e6723fd94551464c56b8c", size = 10018797, upload-time = "2024-09-26T12:26:34.68Z" }, - { url = "https://files.pythonhosted.org/packages/c1/d7/fa5514a60b03976af972b67fe345deb0335dc96b9f9a9fa4df9890472427/ruff-0.6.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd48f945da2a6334f1793d7f701725a76ba93bf3d73c36f6b21fb04d5338dcf5", size = 9691303, upload-time = "2024-09-26T12:26:37.311Z" }, - { url = "https://files.pythonhosted.org/packages/d6/c4/d812a74976927e51d0782a47539069657ac78535779bfa4d061c4fc8d89d/ruff-0.6.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:677e03c00f37c66cea033274295a983c7c546edea5043d0c798833adf4cf4c6f", size = 10719452, upload-time = "2024-09-26T12:26:40.24Z" }, - { url = "https://files.pythonhosted.org/packages/ec/b6/aa700c4ae6db9b3ee660e23f3c7db596e2b16a3034b797704fba33ddbc96/ruff-0.6.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9f1476236b3eacfacfc0f66aa9e6cd39f2a624cb73ea99189556015f27c0bdeb", size = 10161353, upload-time = "2024-09-26T12:26:42.464Z" }, - { url = "https://files.pythonhosted.org/packages/ea/39/0b10075ffcd52ff3a581b9b69eac53579deb230aad300ce8f9d0b58e77bc/ruff-0.6.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f5a2f17c7d32991169195d52a04c95b256378bbf0de8cb98478351eb70d526f", size = 10980630, upload-time = "2024-09-26T12:26:45.157Z" }, - { url = "https://files.pythonhosted.org/packages/c1/af/9eb9efc98334f62652e2f9318f137b2667187851911fac3b395365a83708/ruff-0.6.8-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5fd0d4b7b1457c49e435ee1e437900ced9b35cb8dc5178921dfb7d98d65a08d0", size = 11768996, upload-time = "2024-09-26T12:26:47.987Z" }, - { url = "https://files.pythonhosted.org/packages/e0/59/8b1369cf7878358952b1c0a1559b4d6b5c824c003d09b0db26d26c9d094f/ruff-0.6.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8034b19b993e9601f2ddf2c517451e17a6ab5cdb1c13fdff50c1442a7171d87", size = 11317469, upload-time = "2024-09-26T12:26:50.487Z" }, - { url = "https://files.pythonhosted.org/packages/b9/6d/e252e9b11bbca4114c386ee41ad559d0dac13246201d77ea1223c6fea17f/ruff-0.6.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6cfb227b932ba8ef6e56c9f875d987973cd5e35bc5d05f5abf045af78ad8e098", size = 12467185, upload-time = "2024-09-26T12:26:52.928Z" }, - { url = "https://files.pythonhosted.org/packages/48/44/7caa223af7d4ea0f0b2bd34acca65a7694a58317714675a2478815ab3f45/ruff-0.6.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef0411eccfc3909269fed47c61ffebdcb84a04504bafa6b6df9b85c27e813b0", size = 10887766, upload-time = "2024-09-26T12:26:56.585Z" }, - { url = "https://files.pythonhosted.org/packages/81/ed/394aff3a785f171869158b9d5be61eec9ffb823c3ad5d2bdf2e5f13cb029/ruff-0.6.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:007dee844738c3d2e6c24ab5bc7d43c99ba3e1943bd2d95d598582e9c1b27750", size = 10711609, upload-time = "2024-09-26T12:26:59.23Z" }, - { url = "https://files.pythonhosted.org/packages/47/31/f31d04c842e54699eab7e3b864538fea26e6c94b71806cd10aa49f13e1c1/ruff-0.6.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ce60058d3cdd8490e5e5471ef086b3f1e90ab872b548814e35930e21d848c9ce", size = 10237621, upload-time = "2024-09-26T12:27:01.862Z" }, - { url = "https://files.pythonhosted.org/packages/20/95/a764e84acf11d425f2f23b8b78b4fd715e9c20be4aac157c6414ca859a67/ruff-0.6.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:1085c455d1b3fdb8021ad534379c60353b81ba079712bce7a900e834859182fa", size = 10558329, upload-time = "2024-09-26T12:27:04.753Z" }, - { url = "https://files.pythonhosted.org/packages/2a/76/d4e38846ac9f6dd62dce858a54583911361b5339dcf8f84419241efac93a/ruff-0.6.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:70edf6a93b19481affd287d696d9e311388d808671bc209fb8907b46a8c3af44", size = 10954102, upload-time = "2024-09-26T12:27:07.111Z" }, - { url = "https://files.pythonhosted.org/packages/e7/36/f18c678da6c69f8d022480f3e8ddce6e4a52e07602c1d212056fbd234f8f/ruff-0.6.8-py3-none-win32.whl", hash = "sha256:792213f7be25316f9b46b854df80a77e0da87ec66691e8f012f887b4a671ab5a", size = 8511090, upload-time = "2024-09-26T12:27:10.199Z" }, - { url = "https://files.pythonhosted.org/packages/4c/c4/0ca7d8ffa358b109db7d7d045a1a076fd8e5d9cbeae022242d3c060931da/ruff-0.6.8-py3-none-win_amd64.whl", hash = "sha256:ec0517dc0f37cad14a5319ba7bba6e7e339d03fbf967a6d69b0907d61be7a263", size = 9350079, upload-time = "2024-09-26T12:27:13.123Z" }, - { url = "https://files.pythonhosted.org/packages/d9/bd/a8b0c64945a92eaeeb8d0283f27a726a776a1c9d12734d990c5fc7a1278c/ruff-0.6.8-py3-none-win_arm64.whl", hash = "sha256:8d3bb2e3fbb9875172119021a13eed38849e762499e3cfde9588e4b4d70968dc", size = 8669595, upload-time = "2024-09-26T12:27:15.464Z" }, +version = "0.15.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/77/9b/840e0039e65fcf12758adf684d2289024d6140cde9268cc59887dc55189c/ruff-0.15.5.tar.gz", hash = "sha256:7c3601d3b6d76dce18c5c824fc8d06f4eef33d6df0c21ec7799510cde0f159a2", size = 4574214, upload-time = "2026-03-05T20:06:34.946Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/20/5369c3ce21588c708bcbe517a8fbe1a8dfdb5dfd5137e14790b1da71612c/ruff-0.15.5-py3-none-linux_armv6l.whl", hash = "sha256:4ae44c42281f42e3b06b988e442d344a5b9b72450ff3c892e30d11b29a96a57c", size = 10478185, upload-time = "2026-03-05T20:06:29.093Z" }, + { url = "https://files.pythonhosted.org/packages/44/ed/e81dd668547da281e5dce710cf0bc60193f8d3d43833e8241d006720e42b/ruff-0.15.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6edd3792d408ebcf61adabc01822da687579a1a023f297618ac27a5b51ef0080", size = 10859201, upload-time = "2026-03-05T20:06:32.632Z" }, + { url = "https://files.pythonhosted.org/packages/c4/8f/533075f00aaf19b07c5cd6aa6e5d89424b06b3b3f4583bfa9c640a079059/ruff-0.15.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:89f463f7c8205a9f8dea9d658d59eff49db05f88f89cc3047fb1a02d9f344010", size = 10184752, upload-time = "2026-03-05T20:06:40.312Z" }, + { url = "https://files.pythonhosted.org/packages/66/0e/ba49e2c3fa0395b3152bad634c7432f7edfc509c133b8f4529053ff024fb/ruff-0.15.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba786a8295c6574c1116704cf0b9e6563de3432ac888d8f83685654fe528fd65", size = 10534857, upload-time = "2026-03-05T20:06:19.581Z" }, + { url = "https://files.pythonhosted.org/packages/59/71/39234440f27a226475a0659561adb0d784b4d247dfe7f43ffc12dd02e288/ruff-0.15.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd4b801e57955fe9f02b31d20375ab3a5c4415f2e5105b79fb94cf2642c91440", size = 10309120, upload-time = "2026-03-05T20:06:00.435Z" }, + { url = "https://files.pythonhosted.org/packages/f5/87/4140aa86a93df032156982b726f4952aaec4a883bb98cb6ef73c347da253/ruff-0.15.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:391f7c73388f3d8c11b794dbbc2959a5b5afe66642c142a6effa90b45f6f5204", size = 11047428, upload-time = "2026-03-05T20:05:51.867Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f7/4953e7e3287676f78fbe85e3a0ca414c5ca81237b7575bdadc00229ac240/ruff-0.15.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dc18f30302e379fe1e998548b0f5e9f4dff907f52f73ad6da419ea9c19d66c8", size = 11914251, upload-time = "2026-03-05T20:06:22.887Z" }, + { url = "https://files.pythonhosted.org/packages/77/46/0f7c865c10cf896ccf5a939c3e84e1cfaeed608ff5249584799a74d33835/ruff-0.15.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1cc6e7f90087e2d27f98dc34ed1b3ab7c8f0d273cc5431415454e22c0bd2a681", size = 11333801, upload-time = "2026-03-05T20:05:57.168Z" }, + { url = "https://files.pythonhosted.org/packages/d3/01/a10fe54b653061585e655f5286c2662ebddb68831ed3eaebfb0eb08c0a16/ruff-0.15.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1cb7169f53c1ddb06e71a9aebd7e98fc0fea936b39afb36d8e86d36ecc2636a", size = 11206821, upload-time = "2026-03-05T20:06:03.441Z" }, + { url = "https://files.pythonhosted.org/packages/7a/0d/2132ceaf20c5e8699aa83da2706ecb5c5dcdf78b453f77edca7fb70f8a93/ruff-0.15.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:9b037924500a31ee17389b5c8c4d88874cc6ea8e42f12e9c61a3d754ff72f1ca", size = 11133326, upload-time = "2026-03-05T20:06:25.655Z" }, + { url = "https://files.pythonhosted.org/packages/72/cb/2e5259a7eb2a0f87c08c0fe5bf5825a1e4b90883a52685524596bfc93072/ruff-0.15.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:65bb414e5b4eadd95a8c1e4804f6772bbe8995889f203a01f77ddf2d790929dd", size = 10510820, upload-time = "2026-03-05T20:06:37.79Z" }, + { url = "https://files.pythonhosted.org/packages/ff/20/b67ce78f9e6c59ffbdb5b4503d0090e749b5f2d31b599b554698a80d861c/ruff-0.15.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d20aa469ae3b57033519c559e9bc9cd9e782842e39be05b50e852c7c981fa01d", size = 10302395, upload-time = "2026-03-05T20:05:54.504Z" }, + { url = "https://files.pythonhosted.org/packages/5f/e5/719f1acccd31b720d477751558ed74e9c88134adcc377e5e886af89d3072/ruff-0.15.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:15388dd28c9161cdb8eda68993533acc870aa4e646a0a277aa166de9ad5a8752", size = 10754069, upload-time = "2026-03-05T20:06:06.422Z" }, + { url = "https://files.pythonhosted.org/packages/c3/9c/d1db14469e32d98f3ca27079dbd30b7b44dbb5317d06ab36718dee3baf03/ruff-0.15.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b30da330cbd03bed0c21420b6b953158f60c74c54c5f4c1dabbdf3a57bf355d2", size = 11304315, upload-time = "2026-03-05T20:06:10.867Z" }, + { url = "https://files.pythonhosted.org/packages/28/3a/950367aee7c69027f4f422059227b290ed780366b6aecee5de5039d50fa8/ruff-0.15.5-py3-none-win32.whl", hash = "sha256:732e5ee1f98ba5b3679029989a06ca39a950cced52143a0ea82a2102cb592b74", size = 10551676, upload-time = "2026-03-05T20:06:13.705Z" }, + { url = "https://files.pythonhosted.org/packages/b8/00/bf077a505b4e649bdd3c47ff8ec967735ce2544c8e4a43aba42ee9bf935d/ruff-0.15.5-py3-none-win_amd64.whl", hash = "sha256:821d41c5fa9e19117616c35eaa3f4b75046ec76c65e7ae20a333e9a8696bc7fe", size = 11678972, upload-time = "2026-03-05T20:06:45.379Z" }, + { url = "https://files.pythonhosted.org/packages/fe/4e/cd76eca6db6115604b7626668e891c9dd03330384082e33662fb0f113614/ruff-0.15.5-py3-none-win_arm64.whl", hash = "sha256:b498d1c60d2fe5c10c45ec3f698901065772730b411f164ae270bb6bfcc4740b", size = 10965572, upload-time = "2026-03-05T20:06:16.984Z" }, ] [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", size = 34041, upload-time = "2021-05-05T14:18:18.379Z" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053, upload-time = "2021-05-05T14:18:17.237Z" }, + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] [[package]] name = "snowballstemmer" -version = "2.2.0" +version = "3.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/44/7b/af302bebf22c749c56c9c3e8ae13190b5b5db37a33d9068652e8f73b7089/snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1", size = 86699, upload-time = "2021-11-16T18:38:38.009Z" } +sdist = { url = "https://files.pythonhosted.org/packages/75/a7/9810d872919697c9d01295633f5d574fb416d47e535f258272ca1f01f447/snowballstemmer-3.0.1.tar.gz", hash = "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895", size = 105575, upload-time = "2025-05-09T16:34:51.843Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/dc/c02e01294f7265e63a7315fe086dd1df7dacb9f840a804da846b96d01b96/snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a", size = 93002, upload-time = "2021-11-16T18:38:34.792Z" }, + { url = "https://files.pythonhosted.org/packages/c8/78/3565d011c61f5a43488987ee32b6f3f656e7f107ac2782dd57bdd7d91d9a/snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064", size = 103274, upload-time = "2025-05-09T16:34:50.371Z" }, ] [[package]] name = "sphinx" -version = "5.3.0" +version = "8.1.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.9'", + "python_full_version < '3.11'", ] dependencies = [ - { name = "alabaster", marker = "python_full_version < '3.9'" }, - { name = "babel", marker = "python_full_version < '3.9'" }, - { name = "colorama", marker = "python_full_version < '3.9' and sys_platform == 'win32'" }, - { name = "docutils", marker = "python_full_version < '3.9'" }, - { name = "imagesize", marker = "python_full_version < '3.9'" }, - { name = "importlib-metadata", marker = "python_full_version < '3.9'" }, - { name = "jinja2", marker = "python_full_version < '3.9'" }, - { name = "packaging", marker = "python_full_version < '3.9'" }, - { name = "pygments", marker = "python_full_version < '3.9'" }, - { name = "requests", marker = "python_full_version < '3.9'" }, - { name = "snowballstemmer", marker = "python_full_version < '3.9'" }, - { name = "sphinxcontrib-applehelp", marker = "python_full_version < '3.9'" }, - { name = "sphinxcontrib-devhelp", marker = "python_full_version < '3.9'" }, - { name = "sphinxcontrib-htmlhelp", marker = "python_full_version < '3.9'" }, - { name = "sphinxcontrib-jsmath", marker = "python_full_version < '3.9'" }, - { name = "sphinxcontrib-qthelp", marker = "python_full_version < '3.9'" }, - { name = "sphinxcontrib-serializinghtml", marker = "python_full_version < '3.9'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/af/b2/02a43597980903483fe5eb081ee8e0ba2bb62ea43a70499484343795f3bf/Sphinx-5.3.0.tar.gz", hash = "sha256:51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5", size = 6811365, upload-time = "2022-10-16T09:58:25.963Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/67/a7/01dd6fd9653c056258d65032aa09a615b5d7b07dd840845a9f41a8860fbc/sphinx-5.3.0-py3-none-any.whl", hash = "sha256:060ca5c9f7ba57a08a1219e547b269fadf125ae25b06b9fa7f66768efb652d6d", size = 3183160, upload-time = "2022-10-16T09:58:21.63Z" }, + { name = "alabaster", marker = "python_full_version < '3.11'" }, + { name = "babel", marker = "python_full_version < '3.11'" }, + { name = "colorama", marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "imagesize", marker = "python_full_version < '3.11'" }, + { name = "jinja2", marker = "python_full_version < '3.11'" }, + { name = "packaging", marker = "python_full_version < '3.11'" }, + { name = "pygments", marker = "python_full_version < '3.11'" }, + { name = "requests", marker = "python_full_version < '3.11'" }, + { name = "snowballstemmer", marker = "python_full_version < '3.11'" }, + { name = "sphinxcontrib-applehelp", marker = "python_full_version < '3.11'" }, + { name = "sphinxcontrib-devhelp", marker = "python_full_version < '3.11'" }, + { name = "sphinxcontrib-htmlhelp", marker = "python_full_version < '3.11'" }, + { name = "sphinxcontrib-jsmath", marker = "python_full_version < '3.11'" }, + { name = "sphinxcontrib-qthelp", marker = "python_full_version < '3.11'" }, + { name = "sphinxcontrib-serializinghtml", marker = "python_full_version < '3.11'" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/be0b61178fe2cdcb67e2a92fc9ebb488e3c51c4f74a36a7824c0adf23425/sphinx-8.1.3.tar.gz", hash = "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927", size = 8184611, upload-time = "2024-10-13T20:27:13.93Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/60/1ddff83a56d33aaf6f10ec8ce84b4c007d9368b21008876fceda7e7381ef/sphinx-8.1.3-py3-none-any.whl", hash = "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2", size = 3487125, upload-time = "2024-10-13T20:27:10.448Z" }, ] [[package]] name = "sphinx" -version = "7.1.2" +version = "9.0.4" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.9' and python_full_version < '3.12'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", + "python_full_version == '3.11.*'", ] dependencies = [ - { name = "alabaster", marker = "python_full_version >= '3.9'" }, - { name = "babel", marker = "python_full_version >= '3.9'" }, - { name = "colorama", marker = "python_full_version >= '3.9' and sys_platform == 'win32'" }, - { name = "docutils", marker = "python_full_version >= '3.9'" }, - { name = "imagesize", marker = "python_full_version >= '3.9'" }, - { name = "importlib-metadata", marker = "python_full_version == '3.9.*'" }, - { name = "jinja2", marker = "python_full_version >= '3.9'" }, - { name = "packaging", marker = "python_full_version >= '3.9'" }, - { name = "pygments", marker = "python_full_version >= '3.9'" }, - { name = "requests", marker = "python_full_version >= '3.9'" }, - { name = "snowballstemmer", marker = "python_full_version >= '3.9'" }, - { name = "sphinxcontrib-applehelp", marker = "python_full_version >= '3.9'" }, - { name = "sphinxcontrib-devhelp", marker = "python_full_version >= '3.9'" }, - { name = "sphinxcontrib-htmlhelp", marker = "python_full_version >= '3.9'" }, - { name = "sphinxcontrib-jsmath", marker = "python_full_version >= '3.9'" }, - { name = "sphinxcontrib-qthelp", marker = "python_full_version >= '3.9'" }, - { name = "sphinxcontrib-serializinghtml", marker = "python_full_version >= '3.9'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/dc/01/688bdf9282241dca09fe6e3a1110eda399fa9b10d0672db609e37c2e7a39/sphinx-7.1.2.tar.gz", hash = "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f", size = 6828258, upload-time = "2023-08-02T02:06:09.375Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/48/17/325cf6a257d84751a48ae90752b3d8fe0be8f9535b6253add61c49d0d9bc/sphinx-7.1.2-py3-none-any.whl", hash = "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe", size = 3169543, upload-time = "2023-08-02T02:06:06.816Z" }, + { name = "alabaster", marker = "python_full_version == '3.11.*'" }, + { name = "babel", marker = "python_full_version == '3.11.*'" }, + { name = "colorama", marker = "python_full_version == '3.11.*' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "imagesize", marker = "python_full_version == '3.11.*'" }, + { name = "jinja2", marker = "python_full_version == '3.11.*'" }, + { name = "packaging", marker = "python_full_version == '3.11.*'" }, + { name = "pygments", marker = "python_full_version == '3.11.*'" }, + { name = "requests", marker = "python_full_version == '3.11.*'" }, + { name = "roman-numerals", marker = "python_full_version == '3.11.*'" }, + { name = "snowballstemmer", marker = "python_full_version == '3.11.*'" }, + { name = "sphinxcontrib-applehelp", marker = "python_full_version == '3.11.*'" }, + { name = "sphinxcontrib-devhelp", marker = "python_full_version == '3.11.*'" }, + { name = "sphinxcontrib-htmlhelp", marker = "python_full_version == '3.11.*'" }, + { name = "sphinxcontrib-jsmath", marker = "python_full_version == '3.11.*'" }, + { name = "sphinxcontrib-qthelp", marker = "python_full_version == '3.11.*'" }, + { name = "sphinxcontrib-serializinghtml", marker = "python_full_version == '3.11.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/50/a8c6ccc36d5eacdfd7913ddccd15a9cee03ecafc5ee2bc40e1f168d85022/sphinx-9.0.4.tar.gz", hash = "sha256:594ef59d042972abbc581d8baa577404abe4e6c3b04ef61bd7fc2acbd51f3fa3", size = 8710502, upload-time = "2025-12-04T07:45:27.343Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/3f/4bbd76424c393caead2e1eb89777f575dee5c8653e2d4b6afd7a564f5974/sphinx-9.0.4-py3-none-any.whl", hash = "sha256:5bebc595a5e943ea248b99c13814c1c5e10b3ece718976824ffa7959ff95fffb", size = 3917713, upload-time = "2025-12-04T07:45:24.944Z" }, ] [[package]] -name = "sphinx-autoapi" -version = "2.1.1" +name = "sphinx" +version = "9.1.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.9'", + "python_full_version >= '3.12'", ] dependencies = [ - { name = "anyascii", marker = "python_full_version < '3.9'" }, - { name = "astroid", marker = "python_full_version < '3.9'" }, - { name = "jinja2", marker = "python_full_version < '3.9'" }, - { name = "pyyaml", marker = "python_full_version < '3.9'" }, - { name = "sphinx", version = "5.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/71/6a/e9448b7bd3f892e05e538779f0c39e764457807bf08b252c19542f6d0833/sphinx-autoapi-2.1.1.tar.gz", hash = "sha256:fbadb96e79020d6b0ec45d888517bf816d6b587a2d340fbe1ec31135e300a6c8", size = 42160540, upload-time = "2023-06-10T18:03:26.623Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/33/90ed4963df94d3780fe0fd61ce834ae17dcdc507060a3fb1610a68309f2f/sphinx_autoapi-2.1.1-py2.py3-none-any.whl", hash = "sha256:d8da890477bd18e3327cafdead9d5a44a7d798476c6fa32492100e288250a5a3", size = 54197, upload-time = "2023-06-10T18:03:20.433Z" }, + { name = "alabaster", marker = "python_full_version >= '3.12'" }, + { name = "babel", marker = "python_full_version >= '3.12'" }, + { name = "colorama", marker = "python_full_version >= '3.12' and sys_platform == 'win32'" }, + { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "imagesize", marker = "python_full_version >= '3.12'" }, + { name = "jinja2", marker = "python_full_version >= '3.12'" }, + { name = "packaging", marker = "python_full_version >= '3.12'" }, + { name = "pygments", marker = "python_full_version >= '3.12'" }, + { name = "requests", marker = "python_full_version >= '3.12'" }, + { name = "roman-numerals", marker = "python_full_version >= '3.12'" }, + { name = "snowballstemmer", marker = "python_full_version >= '3.12'" }, + { name = "sphinxcontrib-applehelp", marker = "python_full_version >= '3.12'" }, + { name = "sphinxcontrib-devhelp", marker = "python_full_version >= '3.12'" }, + { name = "sphinxcontrib-htmlhelp", marker = "python_full_version >= '3.12'" }, + { name = "sphinxcontrib-jsmath", marker = "python_full_version >= '3.12'" }, + { name = "sphinxcontrib-qthelp", marker = "python_full_version >= '3.12'" }, + { name = "sphinxcontrib-serializinghtml", marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/bd/f08eb0f4eed5c83f1ba2a3bd18f7745a2b1525fad70660a1c00224ec468a/sphinx-9.1.0.tar.gz", hash = "sha256:7741722357dd75f8190766926071fed3bdc211c74dd2d7d4df5404da95930ddb", size = 8718324, upload-time = "2025-12-31T15:09:27.646Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/f7/b1884cb3188ab181fc81fa00c266699dab600f927a964df02ec3d5d1916a/sphinx-9.1.0-py3-none-any.whl", hash = "sha256:c84fdd4e782504495fe4f2c0b3413d6c2bf388589bb352d439b2a3bb99991978", size = 3921742, upload-time = "2025-12-31T15:09:25.561Z" }, ] [[package]] name = "sphinx-autoapi" -version = "3.3.2" +version = "3.8.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.9' and python_full_version < '3.12'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", -] dependencies = [ - { name = "astroid", marker = "python_full_version >= '3.9'" }, - { name = "jinja2", marker = "python_full_version >= '3.9'" }, - { name = "pyyaml", marker = "python_full_version >= '3.9'" }, - { name = "sphinx", version = "7.1.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, - { name = "stdlib-list", marker = "python_full_version == '3.9.*'" }, + { name = "astroid" }, + { name = "jinja2" }, + { name = "pyyaml" }, + { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e1/00/aeca40dec5288678df6dbe69c9fcc3fd5d53d1f94a462f4e6bb821d389a8/sphinx_autoapi-3.3.2.tar.gz", hash = "sha256:ebf8b44b2ebab5c28f0263ec6c2f8acdd156e9b2d539a58eca39d2f368445173", size = 66053, upload-time = "2024-09-25T23:55:57.832Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/25/386d851320bc306e9d7d41b8cecf113f638e205a99595c481c146622de94/sphinx_autoapi-3.8.0.tar.gz", hash = "sha256:9f8ac7d43baf28a0831ac0e392fab6a095b875af07e52d135a5f716cc3cf1142", size = 58418, upload-time = "2026-03-08T03:49:52.931Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/71/f4/73094ddb805607c5661e1b80f528e5235710e52b37a890423ad2ba5a7cee/sphinx_autoapi-3.3.2-py2.py3-none-any.whl", hash = "sha256:08afa656f7fcd45fe7dd64bf9f44698ddb8ca7c2d5cd0614c7455912ed580324", size = 34778, upload-time = "2024-09-25T23:55:56.541Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/8923a543fa2422d32be4c5311f488e4f275acde263c811e4d5d22bb544cb/sphinx_autoapi-3.8.0-py3-none-any.whl", hash = "sha256:245aefdeab85609ae4aa3576b0d99f69676aa6333dda438761bd125755b3c42d", size = 35994, upload-time = "2026-03-08T03:49:51.383Z" }, ] [[package]] name = "sphinx-rtd-theme" -version = "2.0.0" +version = "3.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "docutils" }, - { name = "sphinx", version = "5.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "sphinx", version = "7.1.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "sphinxcontrib-jquery" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fe/33/2a35a9cdbfda9086bda11457bcc872173ab3565b16b6d7f6b3efaa6dc3d6/sphinx_rtd_theme-2.0.0.tar.gz", hash = "sha256:bd5d7b80622406762073a04ef8fadc5f9151261563d47027de09910ce03afe6b", size = 2785005, upload-time = "2023-11-28T04:14:03.104Z" } +sdist = { url = "https://files.pythonhosted.org/packages/84/68/a1bfbf38c0f7bccc9b10bbf76b94606f64acb1552ae394f0b8285bfaea25/sphinx_rtd_theme-3.1.0.tar.gz", hash = "sha256:b44276f2c276e909239a4f6c955aa667aaafeb78597923b1c60babc76db78e4c", size = 7620915, upload-time = "2026-01-12T16:03:31.17Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/46/00fda84467815c29951a9c91e3ae7503c409ddad04373e7cfc78daad4300/sphinx_rtd_theme-2.0.0-py2.py3-none-any.whl", hash = "sha256:ec93d0856dc280cf3aee9a4c9807c60e027c7f7b461b77aeffed682e68f0e586", size = 2824721, upload-time = "2023-11-28T04:13:59.589Z" }, + { url = "https://files.pythonhosted.org/packages/87/c7/b5c8015d823bfda1a346adb2c634a2101d50bb75d421eb6dcb31acd25ebc/sphinx_rtd_theme-3.1.0-py2.py3-none-any.whl", hash = "sha256:1785824ae8e6632060490f67cf3a72d404a85d2d9fc26bce3619944de5682b89", size = 7655617, upload-time = "2026-01-12T16:03:28.101Z" }, ] [[package]] name = "sphinxcontrib-applehelp" -version = "1.0.4" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/32/df/45e827f4d7e7fcc84e853bcef1d836effd762d63ccb86f43ede4e98b478c/sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e", size = 24766, upload-time = "2023-01-23T09:41:54.435Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", size = 20053, upload-time = "2024-07-29T01:09:00.465Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/06/c1/5e2cafbd03105ce50d8500f9b4e8a6e8d02e22d0475b574c3b3e9451a15f/sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228", size = 120601, upload-time = "2023-01-23T09:41:52.364Z" }, + { url = "https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5", size = 119300, upload-time = "2024-07-29T01:08:58.99Z" }, ] [[package]] name = "sphinxcontrib-devhelp" -version = "1.0.2" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/98/33/dc28393f16385f722c893cb55539c641c9aaec8d1bc1c15b69ce0ac2dbb3/sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4", size = 17398, upload-time = "2020-02-29T04:14:43.378Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", size = 12967, upload-time = "2024-07-29T01:09:23.417Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c5/09/5de5ed43a521387f18bdf5f5af31d099605c992fd25372b2b9b825ce48ee/sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e", size = 84690, upload-time = "2020-02-29T04:14:40.765Z" }, + { url = "https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2", size = 82530, upload-time = "2024-07-29T01:09:21.945Z" }, ] [[package]] name = "sphinxcontrib-htmlhelp" -version = "2.0.1" +version = "2.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b3/47/64cff68ea3aa450c373301e5bebfbb9fce0a3e70aca245fcadd4af06cd75/sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff", size = 27967, upload-time = "2023-01-31T17:29:20.935Z" } +sdist = { url = "https://files.pythonhosted.org/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9", size = 22617, upload-time = "2024-07-29T01:09:37.889Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6e/ee/a1f5e39046cbb5f8bc8fba87d1ddf1c6643fbc9194e58d26e606de4b9074/sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903", size = 99833, upload-time = "2023-01-31T17:29:18.489Z" }, + { url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705, upload-time = "2024-07-29T01:09:36.407Z" }, ] [[package]] @@ -2222,8 +2303,9 @@ name = "sphinxcontrib-jquery" version = "4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "sphinx", version = "5.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "sphinx", version = "7.1.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331, upload-time = "2023-03-14T15:01:01.944Z" } wheels = [ @@ -2241,73 +2323,80 @@ wheels = [ [[package]] name = "sphinxcontrib-qthelp" -version = "1.0.3" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b1/8e/c4846e59f38a5f2b4a0e3b27af38f2fcf904d4bfd82095bf92de0b114ebd/sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72", size = 21658, upload-time = "2020-02-29T04:19:10.026Z" } +sdist = { url = "https://files.pythonhosted.org/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", size = 17165, upload-time = "2024-07-29T01:09:56.435Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/14/05f9206cf4e9cfca1afb5fd224c7cd434dcc3a433d6d9e4e0264d29c6cdb/sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6", size = 90609, upload-time = "2020-02-29T04:19:08.451Z" }, + { url = "https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb", size = 88743, upload-time = "2024-07-29T01:09:54.885Z" }, ] [[package]] name = "sphinxcontrib-serializinghtml" -version = "1.1.5" +version = "2.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b5/72/835d6fadb9e5d02304cf39b18f93d227cd93abd3c41ebf58e6853eeb1455/sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952", size = 21019, upload-time = "2021-05-22T16:07:43.043Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d", size = 16080, upload-time = "2024-07-29T01:10:09.332Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/77/5464ec50dd0f1c1037e3c93249b040c8fc8078fdda97530eeb02424b6eea/sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd", size = 94021, upload-time = "2021-05-22T16:07:41.627Z" }, + { url = "https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", size = 92072, upload-time = "2024-07-29T01:10:08.203Z" }, ] [[package]] name = "sqlalchemy" -version = "2.0.35" +version = "2.0.48" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "greenlet", marker = "(python_full_version < '3.13' and platform_machine == 'AMD64') or (python_full_version < '3.13' and platform_machine == 'WIN32') or (python_full_version < '3.13' and platform_machine == 'aarch64') or (python_full_version < '3.13' and platform_machine == 'amd64') or (python_full_version < '3.13' and platform_machine == 'ppc64le') or (python_full_version < '3.13' and platform_machine == 'win32') or (python_full_version < '3.13' and platform_machine == 'x86_64')" }, + { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64'" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/36/48/4f190a83525f5cefefa44f6adc9e6386c4de5218d686c27eda92eb1f5424/sqlalchemy-2.0.35.tar.gz", hash = "sha256:e11d7ea4d24f0a262bccf9a7cd6284c976c5369dac21db237cff59586045ab9f", size = 9562798, upload-time = "2024-09-16T20:30:05.964Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/61/19395d0ae78c94f6f80c8adf39a142f3fe56cfb2235d8f2317d6dae1bf0e/SQLAlchemy-2.0.35-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:67219632be22f14750f0d1c70e62f204ba69d28f62fd6432ba05ab295853de9b", size = 2090086, upload-time = "2024-09-16T21:29:05.376Z" }, - { url = "https://files.pythonhosted.org/packages/e6/82/06b5fcbe5d49043e40cf4e01e3b33c471c8d9292d478420b08538cae8928/SQLAlchemy-2.0.35-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4668bd8faf7e5b71c0319407b608f278f279668f358857dbfd10ef1954ac9f90", size = 2081278, upload-time = "2024-09-16T21:29:07.224Z" }, - { url = "https://files.pythonhosted.org/packages/68/d1/7fb7ee46949a5fb34005795b1fc06a8fef67587a66da731c14e545f7eb5b/SQLAlchemy-2.0.35-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb8bea573863762bbf45d1e13f87c2d2fd32cee2dbd50d050f83f87429c9e1ea", size = 3063763, upload-time = "2024-09-17T01:18:12.769Z" }, - { url = "https://files.pythonhosted.org/packages/7e/ff/a1eacd78b31e52a5073e9924fb4722ecc2a72f093ca8181ed81fc61aed2e/SQLAlchemy-2.0.35-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f552023710d4b93d8fb29a91fadf97de89c5926c6bd758897875435f2a939f33", size = 3072032, upload-time = "2024-09-16T21:23:30.311Z" }, - { url = "https://files.pythonhosted.org/packages/21/ae/ddfecf149a6d16af87408bca7bd108eef7ef23d376cc8464317efb3cea3f/SQLAlchemy-2.0.35-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:016b2e665f778f13d3c438651dd4de244214b527a275e0acf1d44c05bc6026a9", size = 3028092, upload-time = "2024-09-17T01:18:16.133Z" }, - { url = "https://files.pythonhosted.org/packages/cc/51/3e84d42121662a160bacd311cfacb29c1e6a229d59dd8edb09caa8ab283b/SQLAlchemy-2.0.35-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7befc148de64b6060937231cbff8d01ccf0bfd75aa26383ffdf8d82b12ec04ff", size = 3053543, upload-time = "2024-09-16T21:23:32.274Z" }, - { url = "https://files.pythonhosted.org/packages/3e/7a/039c78105958da3fc361887f0a82c974cb6fa5bba965c1689ec778be1c01/SQLAlchemy-2.0.35-cp310-cp310-win32.whl", hash = "sha256:22b83aed390e3099584b839b93f80a0f4a95ee7f48270c97c90acd40ee646f0b", size = 2062372, upload-time = "2024-09-16T21:03:04.722Z" }, - { url = "https://files.pythonhosted.org/packages/a2/50/f31e927d32f9729f69d150ffe47e7cf51e3e0bb2148fc400b3e93a92ca4c/SQLAlchemy-2.0.35-cp310-cp310-win_amd64.whl", hash = "sha256:a29762cd3d116585278ffb2e5b8cc311fb095ea278b96feef28d0b423154858e", size = 2086485, upload-time = "2024-09-16T21:03:06.66Z" }, - { url = "https://files.pythonhosted.org/packages/c3/46/9215a35bf98c3a2528e987791e6180eb51624d2c7d5cb8e2d96a6450b657/SQLAlchemy-2.0.35-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e21f66748ab725ade40fa7af8ec8b5019c68ab00b929f6643e1b1af461eddb60", size = 2091274, upload-time = "2024-09-16T21:07:13.344Z" }, - { url = "https://files.pythonhosted.org/packages/1e/69/919673c5101a0c633658d58b11b454b251ca82300941fba801201434755d/SQLAlchemy-2.0.35-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8a6219108a15fc6d24de499d0d515c7235c617b2540d97116b663dade1a54d62", size = 2081672, upload-time = "2024-09-16T21:07:14.807Z" }, - { url = "https://files.pythonhosted.org/packages/67/ea/a6b0597cbda12796be2302153369dbbe90573fdab3bc4885f8efac499247/SQLAlchemy-2.0.35-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:042622a5306c23b972192283f4e22372da3b8ddf5f7aac1cc5d9c9b222ab3ff6", size = 3200083, upload-time = "2024-09-16T22:45:15.766Z" }, - { url = "https://files.pythonhosted.org/packages/8c/d6/97bdc8d714fb21762f2092511f380f18cdb2d985d516071fa925bb433a90/SQLAlchemy-2.0.35-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:627dee0c280eea91aed87b20a1f849e9ae2fe719d52cbf847c0e0ea34464b3f7", size = 3200080, upload-time = "2024-09-16T21:18:19.033Z" }, - { url = "https://files.pythonhosted.org/packages/87/d2/8c2adaf2ade4f6f1b725acd0b0be9210bb6a2df41024729a8eec6a86fe5a/SQLAlchemy-2.0.35-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4fdcd72a789c1c31ed242fd8c1bcd9ea186a98ee8e5408a50e610edfef980d71", size = 3137108, upload-time = "2024-09-16T22:45:19.167Z" }, - { url = "https://files.pythonhosted.org/packages/7e/ae/ea05d0bfa8f2b25ae34591895147152854fc950f491c4ce362ae06035db8/SQLAlchemy-2.0.35-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:89b64cd8898a3a6f642db4eb7b26d1b28a497d4022eccd7717ca066823e9fb01", size = 3157437, upload-time = "2024-09-16T21:18:21.988Z" }, - { url = "https://files.pythonhosted.org/packages/fe/5d/8ad6df01398388a766163d27960b3365f1bbd8bb7b05b5cad321a8b69b25/SQLAlchemy-2.0.35-cp311-cp311-win32.whl", hash = "sha256:6a93c5a0dfe8d34951e8a6f499a9479ffb9258123551fa007fc708ae2ac2bc5e", size = 2061935, upload-time = "2024-09-16T20:54:10.564Z" }, - { url = "https://files.pythonhosted.org/packages/ff/68/8557efc0c32c8e2c147cb6512237448b8ed594a57cd015fda67f8e56bb3f/SQLAlchemy-2.0.35-cp311-cp311-win_amd64.whl", hash = "sha256:c68fe3fcde03920c46697585620135b4ecfdfc1ed23e75cc2c2ae9f8502c10b8", size = 2087281, upload-time = "2024-09-16T20:54:13.429Z" }, - { url = "https://files.pythonhosted.org/packages/2f/2b/fff87e6db0da31212c98bbc445f83fb608ea92b96bda3f3f10e373bac76c/SQLAlchemy-2.0.35-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:eb60b026d8ad0c97917cb81d3662d0b39b8ff1335e3fabb24984c6acd0c900a2", size = 2089790, upload-time = "2024-09-16T21:07:16.161Z" }, - { url = "https://files.pythonhosted.org/packages/68/92/4bb761bd82764d5827bf6b6095168c40fb5dbbd23670203aef2f96ba6bc6/SQLAlchemy-2.0.35-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6921ee01caf375363be5e9ae70d08ce7ca9d7e0e8983183080211a062d299468", size = 2080266, upload-time = "2024-09-16T21:07:18.277Z" }, - { url = "https://files.pythonhosted.org/packages/22/46/068a65db6dc253c6f25a7598d99e0a1d60b14f661f9d09ef6c73c718fa4e/SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8cdf1a0dbe5ced887a9b127da4ffd7354e9c1a3b9bb330dce84df6b70ccb3a8d", size = 3229760, upload-time = "2024-09-16T22:45:20.863Z" }, - { url = "https://files.pythonhosted.org/packages/6e/36/59830dafe40dda592304debd4cd86e583f63472f3a62c9e2695a5795e786/SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93a71c8601e823236ac0e5d087e4f397874a421017b3318fd92c0b14acf2b6db", size = 3240649, upload-time = "2024-09-16T21:18:23.996Z" }, - { url = "https://files.pythonhosted.org/packages/00/50/844c50c6996f9c7f000c959dd1a7436a6c94e449ee113046a1d19e470089/SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e04b622bb8a88f10e439084486f2f6349bf4d50605ac3e445869c7ea5cf0fa8c", size = 3176138, upload-time = "2024-09-16T22:45:22.518Z" }, - { url = "https://files.pythonhosted.org/packages/df/d2/336b18cac68eecb67de474fc15c85f13be4e615c6f5bae87ea38c6734ce0/SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1b56961e2d31389aaadf4906d453859f35302b4eb818d34a26fab72596076bb8", size = 3202753, upload-time = "2024-09-16T21:18:25.966Z" }, - { url = "https://files.pythonhosted.org/packages/f0/f3/ee1e62fabdc10910b5ef720ae08e59bc785f26652876af3a50b89b97b412/SQLAlchemy-2.0.35-cp312-cp312-win32.whl", hash = "sha256:0f9f3f9a3763b9c4deb8c5d09c4cc52ffe49f9876af41cc1b2ad0138878453cf", size = 2060113, upload-time = "2024-09-16T20:54:15.16Z" }, - { url = "https://files.pythonhosted.org/packages/60/63/a3cef44a52979169d884f3583d0640e64b3c28122c096474a1d7cfcaf1f3/SQLAlchemy-2.0.35-cp312-cp312-win_amd64.whl", hash = "sha256:25b0f63e7fcc2a6290cb5f7f5b4fc4047843504983a28856ce9b35d8f7de03cc", size = 2085839, upload-time = "2024-09-16T20:54:17.11Z" }, - { url = "https://files.pythonhosted.org/packages/da/bb/38c09ba518abc7da92d6bf638143cfe6298c12e5df0f1b37538e4ea46feb/SQLAlchemy-2.0.35-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4c31943b61ed8fdd63dfd12ccc919f2bf95eefca133767db6fbbd15da62078ec", size = 2095015, upload-time = "2024-09-16T21:23:34.897Z" }, - { url = "https://files.pythonhosted.org/packages/c2/73/7d133479bc602dfb993bafe109727cf8684b3119e9bdee8c8510ebface91/SQLAlchemy-2.0.35-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a62dd5d7cc8626a3634208df458c5fe4f21200d96a74d122c83bc2015b333bc1", size = 2085697, upload-time = "2024-09-16T21:23:37.942Z" }, - { url = "https://files.pythonhosted.org/packages/d9/54/bef04ac2ad5becdcc9f9de6f80d7bf0f679a5d288b1de95507b9823644d6/SQLAlchemy-2.0.35-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0630774b0977804fba4b6bbea6852ab56c14965a2b0c7fc7282c5f7d90a1ae72", size = 3088293, upload-time = "2024-09-16T23:13:42.08Z" }, - { url = "https://files.pythonhosted.org/packages/19/7f/95df57d4763477c23ef2c72ca2fdb0ac3dbf4cc473052b3728cd586185ea/SQLAlchemy-2.0.35-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d625eddf7efeba2abfd9c014a22c0f6b3796e0ffb48f5d5ab106568ef01ff5a", size = 3095166, upload-time = "2024-09-16T21:20:54.137Z" }, - { url = "https://files.pythonhosted.org/packages/97/38/ec497616369b9d1dabd90f80a9a7da2f5e07b8a1ea934a283cbd19a9f3eb/SQLAlchemy-2.0.35-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:ada603db10bb865bbe591939de854faf2c60f43c9b763e90f653224138f910d9", size = 3042288, upload-time = "2024-09-16T23:13:44.291Z" }, - { url = "https://files.pythonhosted.org/packages/30/99/9d8513d54b9455ebd10d6e1089e0742578e64c144f5dbbf1f8b74bb0f851/SQLAlchemy-2.0.35-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c41411e192f8d3ea39ea70e0fae48762cd11a2244e03751a98bd3c0ca9a4e936", size = 3065416, upload-time = "2024-09-16T21:20:55.573Z" }, - { url = "https://files.pythonhosted.org/packages/b3/bb/1e31ed9b69080d5d962497189628c3f695e3186949640635db5aa3190ab2/SQLAlchemy-2.0.35-cp38-cp38-win32.whl", hash = "sha256:d299797d75cd747e7797b1b41817111406b8b10a4f88b6e8fe5b5e59598b43b0", size = 2064976, upload-time = "2024-09-16T20:55:49.138Z" }, - { url = "https://files.pythonhosted.org/packages/a2/0c/9e6f99e0e7ae3e01a159b91f8adef6a32d893a8b21196d9d2d1591280ae5/SQLAlchemy-2.0.35-cp38-cp38-win_amd64.whl", hash = "sha256:0375a141e1c0878103eb3d719eb6d5aa444b490c96f3fedab8471c7f6ffe70ee", size = 2089743, upload-time = "2024-09-16T20:55:50.709Z" }, - { url = "https://files.pythonhosted.org/packages/d1/4c/3a538c077057a449441b3e10a62ff1608eaa6e0910e681b2664ce0bcf961/SQLAlchemy-2.0.35-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ccae5de2a0140d8be6838c331604f91d6fafd0735dbdcee1ac78fc8fbaba76b4", size = 2092966, upload-time = "2024-09-16T21:29:09.019Z" }, - { url = "https://files.pythonhosted.org/packages/4e/f0/ac290c05f9118cff70e48abd598bcb0dfb725a7ad0aeebaaa0d781d75367/SQLAlchemy-2.0.35-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2a275a806f73e849e1c309ac11108ea1a14cd7058577aba962cd7190e27c9e3c", size = 2084203, upload-time = "2024-09-16T21:29:10.759Z" }, - { url = "https://files.pythonhosted.org/packages/8f/a7/6ddbcefb0ada3dbc9bc9260de32f9cd85b1eb5ea35c12344472a028a606e/SQLAlchemy-2.0.35-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:732e026240cdd1c1b2e3ac515c7a23820430ed94292ce33806a95869c46bd139", size = 3078233, upload-time = "2024-09-17T01:18:18.109Z" }, - { url = "https://files.pythonhosted.org/packages/08/7b/6fae14cf33ebc54423f0e9c7de793dd2debe3ffd44b399a4905adb4b1225/SQLAlchemy-2.0.35-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:890da8cd1941fa3dab28c5bac3b9da8502e7e366f895b3b8e500896f12f94d11", size = 3086017, upload-time = "2024-09-16T21:23:35.032Z" }, - { url = "https://files.pythonhosted.org/packages/d7/0c/fa68271e608bf4a86c131044966a9f63bc7c6f44e93535be70c7562ff19e/SQLAlchemy-2.0.35-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c0d8326269dbf944b9201911b0d9f3dc524d64779a07518199a58384c3d37a44", size = 3045236, upload-time = "2024-09-17T01:18:20.183Z" }, - { url = "https://files.pythonhosted.org/packages/f1/29/65d6441a2875c9e960703fb730c651f0a62505a16e968e6f99f5dd5bb925/SQLAlchemy-2.0.35-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b76d63495b0508ab9fc23f8152bac63205d2a704cd009a2b0722f4c8e0cba8e0", size = 3071708, upload-time = "2024-09-16T21:23:37.239Z" }, - { url = "https://files.pythonhosted.org/packages/13/cb/c354d16eb4b9af27a8ef16ef476118497f61f99bf21cf177ec85d9a23d3f/SQLAlchemy-2.0.35-cp39-cp39-win32.whl", hash = "sha256:69683e02e8a9de37f17985905a5eca18ad651bf592314b4d3d799029797d0eb3", size = 2064708, upload-time = "2024-09-16T21:03:08.78Z" }, - { url = "https://files.pythonhosted.org/packages/56/0a/3025867277836c325a0f69d3e43cfd35e72f877f472d4c4791d32c264d13/SQLAlchemy-2.0.35-cp39-cp39-win_amd64.whl", hash = "sha256:aee110e4ef3c528f3abbc3c2018c121e708938adeeff9006428dd7c8555e9b3f", size = 2088933, upload-time = "2024-09-16T21:03:10.778Z" }, - { url = "https://files.pythonhosted.org/packages/0e/c6/33c706449cdd92b1b6d756b247761e27d32230fd6b2de5f44c4c3e5632b2/SQLAlchemy-2.0.35-py3-none-any.whl", hash = "sha256:2ab3f0336c0387662ce6221ad30ab3a5e6499aab01b9790879b6578fd9b8faa1", size = 1881276, upload-time = "2024-09-16T23:14:28.324Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/1f/73/b4a9737255583b5fa858e0bb8e116eb94b88c910164ed2ed719147bde3de/sqlalchemy-2.0.48.tar.gz", hash = "sha256:5ca74f37f3369b45e1f6b7b06afb182af1fd5dde009e4ffd831830d98cbe5fe7", size = 9886075, upload-time = "2026-03-02T15:28:51.474Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/67/1235676e93dd3b742a4a8eddfae49eea46c85e3eed29f0da446a8dd57500/sqlalchemy-2.0.48-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7001dc9d5f6bb4deb756d5928eaefe1930f6f4179da3924cbd95ee0e9f4dce89", size = 2157384, upload-time = "2026-03-02T15:38:26.781Z" }, + { url = "https://files.pythonhosted.org/packages/4d/d7/fa728b856daa18c10e1390e76f26f64ac890c947008284387451d56ca3d0/sqlalchemy-2.0.48-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1a89ce07ad2d4b8cfc30bd5889ec40613e028ed80ef47da7d9dd2ce969ad30e0", size = 3236981, upload-time = "2026-03-02T15:58:53.53Z" }, + { url = "https://files.pythonhosted.org/packages/5c/ad/6c4395649a212a6c603a72c5b9ab5dce3135a1546cfdffa3c427e71fd535/sqlalchemy-2.0.48-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:10853a53a4a00417a00913d270dddda75815fcb80675874285f41051c094d7dd", size = 3235232, upload-time = "2026-03-02T15:52:25.654Z" }, + { url = "https://files.pythonhosted.org/packages/01/f4/58f845e511ac0509765a6f85eb24924c1ef0d54fb50de9d15b28c3601458/sqlalchemy-2.0.48-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fac0fa4e4f55f118fd87177dacb1c6522fe39c28d498d259014020fec9164c29", size = 3188106, upload-time = "2026-03-02T15:58:55.193Z" }, + { url = "https://files.pythonhosted.org/packages/3f/f9/6dcc7bfa5f5794c3a095e78cd1de8269dfb5584dfd4c2c00a50d3c1ade44/sqlalchemy-2.0.48-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3713e21ea67bca727eecd4a24bf68bcd414c403faae4989442be60994301ded0", size = 3209522, upload-time = "2026-03-02T15:52:27.407Z" }, + { url = "https://files.pythonhosted.org/packages/d7/5a/b632875ab35874d42657f079529f0745410604645c269a8c21fb4272ff7a/sqlalchemy-2.0.48-cp310-cp310-win32.whl", hash = "sha256:d404dc897ce10e565d647795861762aa2d06ca3f4a728c5e9a835096c7059018", size = 2117695, upload-time = "2026-03-02T15:46:51.389Z" }, + { url = "https://files.pythonhosted.org/packages/de/03/9752eb2a41afdd8568e41ac3c3128e32a0a73eada5ab80483083604a56d1/sqlalchemy-2.0.48-cp310-cp310-win_amd64.whl", hash = "sha256:841a94c66577661c1f088ac958cd767d7c9bf507698f45afffe7a4017049de76", size = 2140928, upload-time = "2026-03-02T15:46:52.992Z" }, + { url = "https://files.pythonhosted.org/packages/d7/6d/b8b78b5b80f3c3ab3f7fa90faa195ec3401f6d884b60221260fd4d51864c/sqlalchemy-2.0.48-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b4c575df7368b3b13e0cebf01d4679f9a28ed2ae6c1cd0b1d5beffb6b2007dc", size = 2157184, upload-time = "2026-03-02T15:38:28.161Z" }, + { url = "https://files.pythonhosted.org/packages/21/4b/4f3d4a43743ab58b95b9ddf5580a265b593d017693df9e08bd55780af5bb/sqlalchemy-2.0.48-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e83e3f959aaa1c9df95c22c528096d94848a1bc819f5d0ebf7ee3df0ca63db6c", size = 3313555, upload-time = "2026-03-02T15:58:57.21Z" }, + { url = "https://files.pythonhosted.org/packages/21/dd/3b7c53f1dbbf736fd27041aee68f8ac52226b610f914085b1652c2323442/sqlalchemy-2.0.48-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f7b7243850edd0b8b97043f04748f31de50cf426e939def5c16bedb540698f7", size = 3313057, upload-time = "2026-03-02T15:52:29.366Z" }, + { url = "https://files.pythonhosted.org/packages/d9/cc/3e600a90ae64047f33313d7d32e5ad025417f09d2ded487e8284b5e21a15/sqlalchemy-2.0.48-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:82745b03b4043e04600a6b665cb98697c4339b24e34d74b0a2ac0a2488b6f94d", size = 3265431, upload-time = "2026-03-02T15:58:59.096Z" }, + { url = "https://files.pythonhosted.org/packages/8b/19/780138dacfe3f5024f4cf96e4005e91edf6653d53d3673be4844578faf1d/sqlalchemy-2.0.48-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e5e088bf43f6ee6fec7dbf1ef7ff7774a616c236b5c0cb3e00662dd71a56b571", size = 3287646, upload-time = "2026-03-02T15:52:31.569Z" }, + { url = "https://files.pythonhosted.org/packages/40/fd/f32ced124f01a23151f4777e4c705f3a470adc7bd241d9f36a7c941a33bf/sqlalchemy-2.0.48-cp311-cp311-win32.whl", hash = "sha256:9c7d0a77e36b5f4b01ca398482230ab792061d243d715299b44a0b55c89fe617", size = 2116956, upload-time = "2026-03-02T15:46:54.535Z" }, + { url = "https://files.pythonhosted.org/packages/58/d5/dd767277f6feef12d05651538f280277e661698f617fa4d086cce6055416/sqlalchemy-2.0.48-cp311-cp311-win_amd64.whl", hash = "sha256:583849c743e0e3c9bb7446f5b5addeacedc168d657a69b418063dfdb2d90081c", size = 2141627, upload-time = "2026-03-02T15:46:55.849Z" }, + { url = "https://files.pythonhosted.org/packages/ef/91/a42ae716f8925e9659df2da21ba941f158686856107a61cc97a95e7647a3/sqlalchemy-2.0.48-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:348174f228b99f33ca1f773e85510e08927620caa59ffe7803b37170df30332b", size = 2155737, upload-time = "2026-03-02T15:49:13.207Z" }, + { url = "https://files.pythonhosted.org/packages/b9/52/f75f516a1f3888f027c1cfb5d22d4376f4b46236f2e8669dcb0cddc60275/sqlalchemy-2.0.48-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53667b5f668991e279d21f94ccfa6e45b4e3f4500e7591ae59a8012d0f010dcb", size = 3337020, upload-time = "2026-03-02T15:50:34.547Z" }, + { url = "https://files.pythonhosted.org/packages/37/9a/0c28b6371e0cdcb14f8f1930778cb3123acfcbd2c95bb9cf6b4a2ba0cce3/sqlalchemy-2.0.48-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34634e196f620c7a61d18d5cf7dc841ca6daa7961aed75d532b7e58b309ac894", size = 3349983, upload-time = "2026-03-02T15:53:25.542Z" }, + { url = "https://files.pythonhosted.org/packages/1c/46/0aee8f3ff20b1dcbceb46ca2d87fcc3d48b407925a383ff668218509d132/sqlalchemy-2.0.48-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:546572a1793cc35857a2ffa1fe0e58571af1779bcc1ffa7c9fb0839885ed69a9", size = 3279690, upload-time = "2026-03-02T15:50:36.277Z" }, + { url = "https://files.pythonhosted.org/packages/ce/8c/a957bc91293b49181350bfd55e6dfc6e30b7f7d83dc6792d72043274a390/sqlalchemy-2.0.48-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:07edba08061bc277bfdc772dd2a1a43978f5a45994dd3ede26391b405c15221e", size = 3314738, upload-time = "2026-03-02T15:53:27.519Z" }, + { url = "https://files.pythonhosted.org/packages/4b/44/1d257d9f9556661e7bdc83667cc414ba210acfc110c82938cb3611eea58f/sqlalchemy-2.0.48-cp312-cp312-win32.whl", hash = "sha256:908a3fa6908716f803b86896a09a2c4dde5f5ce2bb07aacc71ffebb57986ce99", size = 2115546, upload-time = "2026-03-02T15:54:31.591Z" }, + { url = "https://files.pythonhosted.org/packages/f2/af/c3c7e1f3a2b383155a16454df62ae8c62a30dd238e42e68c24cebebbfae6/sqlalchemy-2.0.48-cp312-cp312-win_amd64.whl", hash = "sha256:68549c403f79a8e25984376480959975212a670405e3913830614432b5daa07a", size = 2142484, upload-time = "2026-03-02T15:54:34.072Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c6/569dc8bf3cd375abc5907e82235923e986799f301cd79a903f784b996fca/sqlalchemy-2.0.48-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e3070c03701037aa418b55d36532ecb8f8446ed0135acb71c678dbdf12f5b6e4", size = 2152599, upload-time = "2026-03-02T15:49:14.41Z" }, + { url = "https://files.pythonhosted.org/packages/6d/ff/f4e04a4bd5a24304f38cb0d4aa2ad4c0fb34999f8b884c656535e1b2b74c/sqlalchemy-2.0.48-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2645b7d8a738763b664a12a1542c89c940daa55196e8d73e55b169cc5c99f65f", size = 3278825, upload-time = "2026-03-02T15:50:38.269Z" }, + { url = "https://files.pythonhosted.org/packages/fe/88/cb59509e4668d8001818d7355d9995be90c321313078c912420603a7cb95/sqlalchemy-2.0.48-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b19151e76620a412c2ac1c6f977ab1b9fa7ad43140178345136456d5265b32ed", size = 3295200, upload-time = "2026-03-02T15:53:29.366Z" }, + { url = "https://files.pythonhosted.org/packages/87/dc/1609a4442aefd750ea2f32629559394ec92e89ac1d621a7f462b70f736ff/sqlalchemy-2.0.48-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b193a7e29fd9fa56e502920dca47dffe60f97c863494946bd698c6058a55658", size = 3226876, upload-time = "2026-03-02T15:50:39.802Z" }, + { url = "https://files.pythonhosted.org/packages/37/c3/6ae2ab5ea2fa989fbac4e674de01224b7a9d744becaf59bb967d62e99bed/sqlalchemy-2.0.48-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:36ac4ddc3d33e852da9cb00ffb08cea62ca05c39711dc67062ca2bb1fae35fd8", size = 3265045, upload-time = "2026-03-02T15:53:31.421Z" }, + { url = "https://files.pythonhosted.org/packages/6f/82/ea4665d1bb98c50c19666e672f21b81356bd6077c4574e3d2bbb84541f53/sqlalchemy-2.0.48-cp313-cp313-win32.whl", hash = "sha256:389b984139278f97757ea9b08993e7b9d1142912e046ab7d82b3fbaeb0209131", size = 2113700, upload-time = "2026-03-02T15:54:35.825Z" }, + { url = "https://files.pythonhosted.org/packages/b7/2b/b9040bec58c58225f073f5b0c1870defe1940835549dafec680cbd58c3c3/sqlalchemy-2.0.48-cp313-cp313-win_amd64.whl", hash = "sha256:d612c976cbc2d17edfcc4c006874b764e85e990c29ce9bd411f926bbfb02b9a2", size = 2139487, upload-time = "2026-03-02T15:54:37.079Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/7b17bd50244b78a49d22cc63c969d71dc4de54567dc152a9b46f6fae40ce/sqlalchemy-2.0.48-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:69f5bc24904d3bc3640961cddd2523e361257ef68585d6e364166dfbe8c78fae", size = 3558851, upload-time = "2026-03-02T15:57:48.607Z" }, + { url = "https://files.pythonhosted.org/packages/20/0d/213668e9aca61d370f7d2a6449ea4ec699747fac67d4bda1bb3d129025be/sqlalchemy-2.0.48-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd08b90d211c086181caed76931ecfa2bdfc83eea3cfccdb0f82abc6c4b876cb", size = 3525525, upload-time = "2026-03-02T16:04:38.058Z" }, + { url = "https://files.pythonhosted.org/packages/85/d7/a84edf412979e7d59c69b89a5871f90a49228360594680e667cb2c46a828/sqlalchemy-2.0.48-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:1ccd42229aaac2df431562117ac7e667d702e8e44afdb6cf0e50fa3f18160f0b", size = 3466611, upload-time = "2026-03-02T15:57:50.759Z" }, + { url = "https://files.pythonhosted.org/packages/86/55/42404ce5770f6be26a2b0607e7866c31b9a4176c819e9a7a5e0a055770be/sqlalchemy-2.0.48-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f0dcbc588cd5b725162c076eb9119342f6579c7f7f55057bb7e3c6ff27e13121", size = 3475812, upload-time = "2026-03-02T16:04:40.092Z" }, + { url = "https://files.pythonhosted.org/packages/ae/ae/29b87775fadc43e627cf582fe3bda4d02e300f6b8f2747c764950d13784c/sqlalchemy-2.0.48-cp313-cp313t-win32.whl", hash = "sha256:9764014ef5e58aab76220c5664abb5d47d5bc858d9debf821e55cfdd0f128485", size = 2141335, upload-time = "2026-03-02T15:52:51.518Z" }, + { url = "https://files.pythonhosted.org/packages/91/44/f39d063c90f2443e5b46ec4819abd3d8de653893aae92df42a5c4f5843de/sqlalchemy-2.0.48-cp313-cp313t-win_amd64.whl", hash = "sha256:e2f35b4cccd9ed286ad62e0a3c3ac21e06c02abc60e20aa51a3e305a30f5fa79", size = 2173095, upload-time = "2026-03-02T15:52:52.79Z" }, + { url = "https://files.pythonhosted.org/packages/f7/b3/f437eaa1cf028bb3c927172c7272366393e73ccd104dcf5b6963f4ab5318/sqlalchemy-2.0.48-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e2d0d88686e3d35a76f3e15a34e8c12d73fc94c1dea1cd55782e695cc14086dd", size = 2154401, upload-time = "2026-03-02T15:49:17.24Z" }, + { url = "https://files.pythonhosted.org/packages/6c/1c/b3abdf0f402aa3f60f0df6ea53d92a162b458fca2321d8f1f00278506402/sqlalchemy-2.0.48-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49b7bddc1eebf011ea5ab722fdbe67a401caa34a350d278cc7733c0e88fecb1f", size = 3274528, upload-time = "2026-03-02T15:50:41.489Z" }, + { url = "https://files.pythonhosted.org/packages/f2/5e/327428a034407651a048f5e624361adf3f9fbac9d0fa98e981e9c6ff2f5e/sqlalchemy-2.0.48-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:426c5ca86415d9b8945c7073597e10de9644802e2ff502b8e1f11a7a2642856b", size = 3279523, upload-time = "2026-03-02T15:53:32.962Z" }, + { url = "https://files.pythonhosted.org/packages/2a/ca/ece73c81a918add0965b76b868b7b5359e068380b90ef1656ee995940c02/sqlalchemy-2.0.48-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:288937433bd44e3990e7da2402fabc44a3c6c25d3704da066b85b89a85474ae0", size = 3224312, upload-time = "2026-03-02T15:50:42.996Z" }, + { url = "https://files.pythonhosted.org/packages/88/11/fbaf1ae91fa4ee43f4fe79661cead6358644824419c26adb004941bdce7c/sqlalchemy-2.0.48-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:8183dc57ae7d9edc1346e007e840a9f3d6aa7b7f165203a99e16f447150140d2", size = 3246304, upload-time = "2026-03-02T15:53:34.937Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5fb0deb13930b4f2f698c5541ae076c18981173e27dd00376dbaea7a9c82/sqlalchemy-2.0.48-cp314-cp314-win32.whl", hash = "sha256:1182437cb2d97988cfea04cf6cdc0b0bb9c74f4d56ec3d08b81e23d621a28cc6", size = 2116565, upload-time = "2026-03-02T15:54:38.321Z" }, + { url = "https://files.pythonhosted.org/packages/95/7e/e83615cb63f80047f18e61e31e8e32257d39458426c23006deeaf48f463b/sqlalchemy-2.0.48-cp314-cp314-win_amd64.whl", hash = "sha256:144921da96c08feb9e2b052c5c5c1d0d151a292c6135623c6b2c041f2a45f9e0", size = 2142205, upload-time = "2026-03-02T15:54:39.831Z" }, + { url = "https://files.pythonhosted.org/packages/83/e3/69d8711b3f2c5135e9cde5f063bc1605860f0b2c53086d40c04017eb1f77/sqlalchemy-2.0.48-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5aee45fd2c6c0f2b9cdddf48c48535e7471e42d6fb81adfde801da0bd5b93241", size = 3563519, upload-time = "2026-03-02T15:57:52.387Z" }, + { url = "https://files.pythonhosted.org/packages/f8/4f/a7cce98facca73c149ea4578981594aaa5fd841e956834931de503359336/sqlalchemy-2.0.48-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7cddca31edf8b0653090cbb54562ca027c421c58ddde2c0685f49ff56a1690e0", size = 3528611, upload-time = "2026-03-02T16:04:42.097Z" }, + { url = "https://files.pythonhosted.org/packages/cd/7d/5936c7a03a0b0cb0fa0cc425998821c6029756b0855a8f7ee70fba1de955/sqlalchemy-2.0.48-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7a936f1bb23d370b7c8cc079d5fce4c7d18da87a33c6744e51a93b0f9e97e9b3", size = 3472326, upload-time = "2026-03-02T15:57:54.423Z" }, + { url = "https://files.pythonhosted.org/packages/f4/33/cea7dfc31b52904efe3dcdc169eb4514078887dff1f5ae28a7f4c5d54b3c/sqlalchemy-2.0.48-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e004aa9248e8cb0a5f9b96d003ca7c1c0a5da8decd1066e7b53f59eb8ce7c62b", size = 3478453, upload-time = "2026-03-02T16:04:44.584Z" }, + { url = "https://files.pythonhosted.org/packages/c8/95/32107c4d13be077a9cae61e9ae49966a35dc4bf442a8852dd871db31f62e/sqlalchemy-2.0.48-cp314-cp314t-win32.whl", hash = "sha256:b8438ec5594980d405251451c5b7ea9aa58dda38eb7ac35fb7e4c696712ee24f", size = 2147209, upload-time = "2026-03-02T15:52:54.274Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d7/1e073da7a4bc645eb83c76067284a0374e643bc4be57f14cc6414656f92c/sqlalchemy-2.0.48-cp314-cp314t-win_amd64.whl", hash = "sha256:d854b3970067297f3a7fbd7a4683587134aa9b3877ee15aa29eea478dc68f933", size = 2182198, upload-time = "2026-03-02T15:52:55.606Z" }, + { url = "https://files.pythonhosted.org/packages/46/2c/9664130905f03db57961b8980b05cab624afd114bf2be2576628a9f22da4/sqlalchemy-2.0.48-py3-none-any.whl", hash = "sha256:a66fe406437dd65cacd96a72689a3aaaecaebbcd62d81c5ac1c0fdbeac835096", size = 1940202, upload-time = "2026-03-02T15:52:43.285Z" }, ] [[package]] @@ -2324,49 +2413,86 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, ] -[[package]] -name = "stdlib-list" -version = "0.10.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/39/bb/1cdbc326a5ab0026602e0489cbf02357e78140253c4b57cd866d380eb355/stdlib_list-0.10.0.tar.gz", hash = "sha256:6519c50d645513ed287657bfe856d527f277331540691ddeaf77b25459964a14", size = 59447, upload-time = "2023-11-18T07:01:42.143Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/13/d9/9085375f0d23a4896b307bf14dcc61b49ec8cc67cb33e06cf95bf3af3966/stdlib_list-0.10.0-py3-none-any.whl", hash = "sha256:b3a911bc441d03e0332dd1a9e7d0870ba3bb0a542a74d7524f54fb431256e214", size = 79814, upload-time = "2023-11-18T07:01:40.445Z" }, -] - [[package]] name = "tabulate" -version = "0.9.0" +version = "0.10.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c", size = 81090, upload-time = "2022-10-06T17:21:48.54Z" } +sdist = { url = "https://files.pythonhosted.org/packages/46/58/8c37dea7bbf769b20d58e7ace7e5edfe65b849442b00ffcdd56be88697c6/tabulate-0.10.0.tar.gz", hash = "sha256:e2cfde8f79420f6deeffdeda9aaec3b6bc5abce947655d17ac662b126e48a60d", size = 91754, upload-time = "2026-03-04T18:55:34.402Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f", size = 35252, upload-time = "2022-10-06T17:21:44.262Z" }, + { url = "https://files.pythonhosted.org/packages/99/55/db07de81b5c630da5cbf5c7df646580ca26dfaefa593667fc6f2fe016d2e/tabulate-0.10.0-py3-none-any.whl", hash = "sha256:f0b0622e567335c8fabaaa659f1b33bcb6ddfe2e496071b743aa113f8774f2d3", size = 39814, upload-time = "2026-03-04T18:55:31.284Z" }, ] [[package]] name = "tomli" -version = "2.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f", size = 15164, upload-time = "2022-02-08T10:54:04.006Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", size = 12757, upload-time = "2022-02-08T10:54:02.017Z" }, +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/30/31573e9457673ab10aa432461bee537ce6cef177667deca369efb79df071/tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c", size = 17477, upload-time = "2026-01-11T11:22:38.165Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/d9/3dc2289e1f3b32eb19b9785b6a006b28ee99acb37d1d47f78d4c10e28bf8/tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867", size = 153663, upload-time = "2026-01-11T11:21:45.27Z" }, + { url = "https://files.pythonhosted.org/packages/51/32/ef9f6845e6b9ca392cd3f64f9ec185cc6f09f0a2df3db08cbe8809d1d435/tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9", size = 148469, upload-time = "2026-01-11T11:21:46.873Z" }, + { url = "https://files.pythonhosted.org/packages/d6/c2/506e44cce89a8b1b1e047d64bd495c22c9f71f21e05f380f1a950dd9c217/tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95", size = 236039, upload-time = "2026-01-11T11:21:48.503Z" }, + { url = "https://files.pythonhosted.org/packages/b3/40/e1b65986dbc861b7e986e8ec394598187fa8aee85b1650b01dd925ca0be8/tomli-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76", size = 243007, upload-time = "2026-01-11T11:21:49.456Z" }, + { url = "https://files.pythonhosted.org/packages/9c/6f/6e39ce66b58a5b7ae572a0f4352ff40c71e8573633deda43f6a379d56b3e/tomli-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d", size = 240875, upload-time = "2026-01-11T11:21:50.755Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ad/cb089cb190487caa80204d503c7fd0f4d443f90b95cf4ef5cf5aa0f439b0/tomli-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576", size = 246271, upload-time = "2026-01-11T11:21:51.81Z" }, + { url = "https://files.pythonhosted.org/packages/0b/63/69125220e47fd7a3a27fd0de0c6398c89432fec41bc739823bcc66506af6/tomli-2.4.0-cp311-cp311-win32.whl", hash = "sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a", size = 96770, upload-time = "2026-01-11T11:21:52.647Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0d/a22bb6c83f83386b0008425a6cd1fa1c14b5f3dd4bad05e98cf3dbbf4a64/tomli-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa", size = 107626, upload-time = "2026-01-11T11:21:53.459Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6d/77be674a3485e75cacbf2ddba2b146911477bd887dda9d8c9dfb2f15e871/tomli-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614", size = 94842, upload-time = "2026-01-11T11:21:54.831Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/7389a1869f2f26dba52404e1ef13b4784b6b37dac93bac53457e3ff24ca3/tomli-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1", size = 154894, upload-time = "2026-01-11T11:21:56.07Z" }, + { url = "https://files.pythonhosted.org/packages/e9/05/2f9bf110b5294132b2edf13fe6ca6ae456204f3d749f623307cbb7a946f2/tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8", size = 149053, upload-time = "2026-01-11T11:21:57.467Z" }, + { url = "https://files.pythonhosted.org/packages/e8/41/1eda3ca1abc6f6154a8db4d714a4d35c4ad90adc0bcf700657291593fbf3/tomli-2.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a", size = 243481, upload-time = "2026-01-11T11:21:58.661Z" }, + { url = "https://files.pythonhosted.org/packages/d2/6d/02ff5ab6c8868b41e7d4b987ce2b5f6a51d3335a70aa144edd999e055a01/tomli-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1", size = 251720, upload-time = "2026-01-11T11:22:00.178Z" }, + { url = "https://files.pythonhosted.org/packages/7b/57/0405c59a909c45d5b6f146107c6d997825aa87568b042042f7a9c0afed34/tomli-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b", size = 247014, upload-time = "2026-01-11T11:22:01.238Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0e/2e37568edd944b4165735687cbaf2fe3648129e440c26d02223672ee0630/tomli-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51", size = 251820, upload-time = "2026-01-11T11:22:02.727Z" }, + { url = "https://files.pythonhosted.org/packages/5a/1c/ee3b707fdac82aeeb92d1a113f803cf6d0f37bdca0849cb489553e1f417a/tomli-2.4.0-cp312-cp312-win32.whl", hash = "sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729", size = 97712, upload-time = "2026-01-11T11:22:03.777Z" }, + { url = "https://files.pythonhosted.org/packages/69/13/c07a9177d0b3bab7913299b9278845fc6eaaca14a02667c6be0b0a2270c8/tomli-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da", size = 108296, upload-time = "2026-01-11T11:22:04.86Z" }, + { url = "https://files.pythonhosted.org/packages/18/27/e267a60bbeeee343bcc279bb9e8fbed0cbe224bc7b2a3dc2975f22809a09/tomli-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3", size = 94553, upload-time = "2026-01-11T11:22:05.854Z" }, + { url = "https://files.pythonhosted.org/packages/34/91/7f65f9809f2936e1f4ce6268ae1903074563603b2a2bd969ebbda802744f/tomli-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0", size = 154915, upload-time = "2026-01-11T11:22:06.703Z" }, + { url = "https://files.pythonhosted.org/packages/20/aa/64dd73a5a849c2e8f216b755599c511badde80e91e9bc2271baa7b2cdbb1/tomli-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e", size = 149038, upload-time = "2026-01-11T11:22:07.56Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8a/6d38870bd3d52c8d1505ce054469a73f73a0fe62c0eaf5dddf61447e32fa/tomli-2.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4", size = 242245, upload-time = "2026-01-11T11:22:08.344Z" }, + { url = "https://files.pythonhosted.org/packages/59/bb/8002fadefb64ab2669e5b977df3f5e444febea60e717e755b38bb7c41029/tomli-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e", size = 250335, upload-time = "2026-01-11T11:22:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a5/3d/4cdb6f791682b2ea916af2de96121b3cb1284d7c203d97d92d6003e91c8d/tomli-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c", size = 245962, upload-time = "2026-01-11T11:22:11.27Z" }, + { url = "https://files.pythonhosted.org/packages/f2/4a/5f25789f9a460bd858ba9756ff52d0830d825b458e13f754952dd15fb7bb/tomli-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f", size = 250396, upload-time = "2026-01-11T11:22:12.325Z" }, + { url = "https://files.pythonhosted.org/packages/aa/2f/b73a36fea58dfa08e8b3a268750e6853a6aac2a349241a905ebd86f3047a/tomli-2.4.0-cp313-cp313-win32.whl", hash = "sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86", size = 97530, upload-time = "2026-01-11T11:22:13.865Z" }, + { url = "https://files.pythonhosted.org/packages/3b/af/ca18c134b5d75de7e8dc551c5234eaba2e8e951f6b30139599b53de9c187/tomli-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87", size = 108227, upload-time = "2026-01-11T11:22:15.224Z" }, + { url = "https://files.pythonhosted.org/packages/22/c3/b386b832f209fee8073c8138ec50f27b4460db2fdae9ffe022df89a57f9b/tomli-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132", size = 94748, upload-time = "2026-01-11T11:22:16.009Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c4/84047a97eb1004418bc10bdbcfebda209fca6338002eba2dc27cc6d13563/tomli-2.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6", size = 154725, upload-time = "2026-01-11T11:22:17.269Z" }, + { url = "https://files.pythonhosted.org/packages/a8/5d/d39038e646060b9d76274078cddf146ced86dc2b9e8bbf737ad5983609a0/tomli-2.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc", size = 148901, upload-time = "2026-01-11T11:22:18.287Z" }, + { url = "https://files.pythonhosted.org/packages/73/e5/383be1724cb30f4ce44983d249645684a48c435e1cd4f8b5cded8a816d3c/tomli-2.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66", size = 243375, upload-time = "2026-01-11T11:22:19.154Z" }, + { url = "https://files.pythonhosted.org/packages/31/f0/bea80c17971c8d16d3cc109dc3585b0f2ce1036b5f4a8a183789023574f2/tomli-2.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d", size = 250639, upload-time = "2026-01-11T11:22:20.168Z" }, + { url = "https://files.pythonhosted.org/packages/2c/8f/2853c36abbb7608e3f945d8a74e32ed3a74ee3a1f468f1ffc7d1cb3abba6/tomli-2.4.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702", size = 246897, upload-time = "2026-01-11T11:22:21.544Z" }, + { url = "https://files.pythonhosted.org/packages/49/f0/6c05e3196ed5337b9fe7ea003e95fd3819a840b7a0f2bf5a408ef1dad8ed/tomli-2.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8", size = 254697, upload-time = "2026-01-11T11:22:23.058Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f5/2922ef29c9f2951883525def7429967fc4d8208494e5ab524234f06b688b/tomli-2.4.0-cp314-cp314-win32.whl", hash = "sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776", size = 98567, upload-time = "2026-01-11T11:22:24.033Z" }, + { url = "https://files.pythonhosted.org/packages/7b/31/22b52e2e06dd2a5fdbc3ee73226d763b184ff21fc24e20316a44ccc4d96b/tomli-2.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475", size = 108556, upload-time = "2026-01-11T11:22:25.378Z" }, + { url = "https://files.pythonhosted.org/packages/48/3d/5058dff3255a3d01b705413f64f4306a141a8fd7a251e5a495e3f192a998/tomli-2.4.0-cp314-cp314-win_arm64.whl", hash = "sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2", size = 96014, upload-time = "2026-01-11T11:22:26.138Z" }, + { url = "https://files.pythonhosted.org/packages/b8/4e/75dab8586e268424202d3a1997ef6014919c941b50642a1682df43204c22/tomli-2.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9", size = 163339, upload-time = "2026-01-11T11:22:27.143Z" }, + { url = "https://files.pythonhosted.org/packages/06/e3/b904d9ab1016829a776d97f163f183a48be6a4deb87304d1e0116a349519/tomli-2.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0", size = 159490, upload-time = "2026-01-11T11:22:28.399Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5a/fc3622c8b1ad823e8ea98a35e3c632ee316d48f66f80f9708ceb4f2a0322/tomli-2.4.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df", size = 269398, upload-time = "2026-01-11T11:22:29.345Z" }, + { url = "https://files.pythonhosted.org/packages/fd/33/62bd6152c8bdd4c305ad9faca48f51d3acb2df1f8791b1477d46ff86e7f8/tomli-2.4.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d", size = 276515, upload-time = "2026-01-11T11:22:30.327Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ff/ae53619499f5235ee4211e62a8d7982ba9e439a0fb4f2f351a93d67c1dd2/tomli-2.4.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f", size = 273806, upload-time = "2026-01-11T11:22:32.56Z" }, + { url = "https://files.pythonhosted.org/packages/47/71/cbca7787fa68d4d0a9f7072821980b39fbb1b6faeb5f5cf02f4a5559fa28/tomli-2.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b", size = 281340, upload-time = "2026-01-11T11:22:33.505Z" }, + { url = "https://files.pythonhosted.org/packages/f5/00/d595c120963ad42474cf6ee7771ad0d0e8a49d0f01e29576ee9195d9ecdf/tomli-2.4.0-cp314-cp314t-win32.whl", hash = "sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087", size = 108106, upload-time = "2026-01-11T11:22:34.451Z" }, + { url = "https://files.pythonhosted.org/packages/de/69/9aa0c6a505c2f80e519b43764f8b4ba93b5a0bbd2d9a9de6e2b24271b9a5/tomli-2.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd", size = 120504, upload-time = "2026-01-11T11:22:35.764Z" }, + { url = "https://files.pythonhosted.org/packages/b3/9f/f1668c281c58cfae01482f7114a4b88d345e4c140386241a1a24dcc9e7bc/tomli-2.4.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4", size = 99561, upload-time = "2026-01-11T11:22:36.624Z" }, + { url = "https://files.pythonhosted.org/packages/23/d1/136eb2cb77520a31e1f64cbae9d33ec6df0d78bdf4160398e86eec8a8754/tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a", size = 14477, upload-time = "2026-01-11T11:22:37.446Z" }, ] [[package]] name = "tornado" -version = "6.4.1" +version = "6.5.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/66/398ac7167f1c7835406888a386f6d0d26ee5dbf197d8a571300be57662d3/tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9", size = 500623, upload-time = "2024-06-06T18:36:29.93Z" } +sdist = { url = "https://files.pythonhosted.org/packages/37/1d/0a336abf618272d53f62ebe274f712e213f5a03c0b2339575430b8362ef2/tornado-6.5.4.tar.gz", hash = "sha256:a22fa9047405d03260b483980635f0b041989d8bcc9a313f8fe18b411d84b1d7", size = 513632, upload-time = "2025-12-15T19:21:03.836Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/d9/c33be3c1a7564f7d42d87a8d186371a75fd142097076767a5c27da941fef/tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8", size = 435924, upload-time = "2024-06-06T18:36:10.575Z" }, - { url = "https://files.pythonhosted.org/packages/2e/0f/721e113a2fac2f1d7d124b3279a1da4c77622e104084f56119875019ffab/tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14", size = 433883, upload-time = "2024-06-06T18:36:13.13Z" }, - { url = "https://files.pythonhosted.org/packages/13/cf/786b8f1e6fe1c7c675e79657448178ad65e41c1c9765ef82e7f6f765c4c5/tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4", size = 437224, upload-time = "2024-06-06T18:36:14.657Z" }, - { url = "https://files.pythonhosted.org/packages/e4/8e/a6ce4b8d5935558828b0f30f3afcb2d980566718837b3365d98e34f6067e/tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842", size = 436597, upload-time = "2024-06-06T18:36:17.093Z" }, - { url = "https://files.pythonhosted.org/packages/22/d4/54f9d12668b58336bd30defe0307e6c61589a3e687b05c366f804b7faaf0/tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3", size = 436797, upload-time = "2024-06-06T18:36:19.265Z" }, - { url = "https://files.pythonhosted.org/packages/cf/3f/2c792e7afa7dd8b24fad7a2ed3c2f24a5ec5110c7b43a64cb6095cc106b8/tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f", size = 437516, upload-time = "2024-06-06T18:36:20.813Z" }, - { url = "https://files.pythonhosted.org/packages/71/63/c8fc62745e669ac9009044b889fc531b6f88ac0f5f183cac79eaa950bb23/tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4", size = 436958, upload-time = "2024-06-06T18:36:22.679Z" }, - { url = "https://files.pythonhosted.org/packages/94/d4/f8ac1f5bd22c15fad3b527e025ce219bd526acdbd903f52053df2baecc8b/tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698", size = 436882, upload-time = "2024-06-06T18:36:24.124Z" }, - { url = "https://files.pythonhosted.org/packages/4b/3e/a8124c21cc0bbf144d7903d2a0cadab15cadaf683fa39a0f92bc567f0d4d/tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d", size = 438092, upload-time = "2024-06-06T18:36:25.881Z" }, - { url = "https://files.pythonhosted.org/packages/d9/2f/3f2f05e84a7aff787a96d5fb06821323feb370fe0baed4db6ea7b1088f32/tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7", size = 438532, upload-time = "2024-06-06T18:36:28.494Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a9/e94a9d5224107d7ce3cc1fab8d5dc97f5ea351ccc6322ee4fb661da94e35/tornado-6.5.4-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d6241c1a16b1c9e4cc28148b1cda97dd1c6cb4fb7068ac1bedc610768dff0ba9", size = 443909, upload-time = "2025-12-15T19:20:48.382Z" }, + { url = "https://files.pythonhosted.org/packages/db/7e/f7b8d8c4453f305a51f80dbb49014257bb7d28ccb4bbb8dd328ea995ecad/tornado-6.5.4-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2d50f63dda1d2cac3ae1fa23d254e16b5e38153758470e9956cbc3d813d40843", size = 442163, upload-time = "2025-12-15T19:20:49.791Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b5/206f82d51e1bfa940ba366a8d2f83904b15942c45a78dd978b599870ab44/tornado-6.5.4-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1cf66105dc6acb5af613c054955b8137e34a03698aa53272dbda4afe252be17", size = 445746, upload-time = "2025-12-15T19:20:51.491Z" }, + { url = "https://files.pythonhosted.org/packages/8e/9d/1a3338e0bd30ada6ad4356c13a0a6c35fbc859063fa7eddb309183364ac1/tornado-6.5.4-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50ff0a58b0dc97939d29da29cd624da010e7f804746621c78d14b80238669335", size = 445083, upload-time = "2025-12-15T19:20:52.778Z" }, + { url = "https://files.pythonhosted.org/packages/50/d4/e51d52047e7eb9a582da59f32125d17c0482d065afd5d3bc435ff2120dc5/tornado-6.5.4-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5fb5e04efa54cf0baabdd10061eb4148e0be137166146fff835745f59ab9f7f", size = 445315, upload-time = "2025-12-15T19:20:53.996Z" }, + { url = "https://files.pythonhosted.org/packages/27/07/2273972f69ca63dbc139694a3fc4684edec3ea3f9efabf77ed32483b875c/tornado-6.5.4-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9c86b1643b33a4cd415f8d0fe53045f913bf07b4a3ef646b735a6a86047dda84", size = 446003, upload-time = "2025-12-15T19:20:56.101Z" }, + { url = "https://files.pythonhosted.org/packages/d1/83/41c52e47502bf7260044413b6770d1a48dda2f0246f95ee1384a3cd9c44a/tornado-6.5.4-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:6eb82872335a53dd063a4f10917b3efd28270b56a33db69009606a0312660a6f", size = 445412, upload-time = "2025-12-15T19:20:57.398Z" }, + { url = "https://files.pythonhosted.org/packages/10/c7/bc96917f06cbee182d44735d4ecde9c432e25b84f4c2086143013e7b9e52/tornado-6.5.4-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6076d5dda368c9328ff41ab5d9dd3608e695e8225d1cd0fd1e006f05da3635a8", size = 445392, upload-time = "2025-12-15T19:20:58.692Z" }, + { url = "https://files.pythonhosted.org/packages/0c/1a/d7592328d037d36f2d2462f4bc1fbb383eec9278bc786c1b111cbbd44cfa/tornado-6.5.4-cp39-abi3-win32.whl", hash = "sha256:1768110f2411d5cd281bac0a090f707223ce77fd110424361092859e089b38d1", size = 446481, upload-time = "2025-12-15T19:21:00.008Z" }, + { url = "https://files.pythonhosted.org/packages/d6/6d/c69be695a0a64fd37a97db12355a035a6d90f79067a3cf936ec2b1dc38cd/tornado-6.5.4-cp39-abi3-win_amd64.whl", hash = "sha256:fa07d31e0cd85c60713f2b995da613588aa03e1303d75705dca6af8babc18ddc", size = 446886, upload-time = "2025-12-15T19:21:01.287Z" }, + { url = "https://files.pythonhosted.org/packages/50/49/8dc3fd90902f70084bd2cd059d576ddb4f8bb44c2c7c0e33a11422acb17e/tornado-6.5.4-cp39-abi3-win_arm64.whl", hash = "sha256:053e6e16701eb6cbe641f308f4c1a9541f91b6261991160391bfc342e8a551a1", size = 445910, upload-time = "2025-12-15T19:21:02.571Z" }, ] [[package]] @@ -2378,54 +2504,28 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, ] -[[package]] -name = "types-pillow" -version = "10.2.0.20240822" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/4a/4495264dddaa600d65d68bcedb64dcccf9d9da61adff51f7d2ffd8e4c9ce/types-Pillow-10.2.0.20240822.tar.gz", hash = "sha256:559fb52a2ef991c326e4a0d20accb3bb63a7ba8d40eb493e0ecb0310ba52f0d3", size = 35389, upload-time = "2024-08-22T02:32:48.15Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/66/23/e81a5354859831fcf54d488d33b80ba6133ea84f874a9c0ec40a4881e133/types_Pillow-10.2.0.20240822-py3-none-any.whl", hash = "sha256:d9dab025aba07aeb12fd50a6799d4eac52a9603488eca09d7662543983f16c5d", size = 54354, upload-time = "2024-08-22T02:32:46.664Z" }, -] - [[package]] name = "types-protobuf" -version = "5.28.0.20240924" +version = "6.32.1.20260221" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/90/c3/217fe2c6a4b8ed75c5ecbd27ae8dedd7bc8e8728ac4b29d16005d3a3aba2/types-protobuf-5.28.0.20240924.tar.gz", hash = "sha256:d181af8a256e5a91ce8d5adb53496e880efd9144c7d54483e3653332b60296f0", size = 54324, upload-time = "2024-09-24T02:43:19.296Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/e2/9aa4a3b2469508bd7b4e2ae11cbedaf419222a09a1b94daffcd5efca4023/types_protobuf-6.32.1.20260221.tar.gz", hash = "sha256:6d5fb060a616bfb076cbb61b4b3c3969f5fc8bec5810f9a2f7e648ee5cbcbf6e", size = 64408, upload-time = "2026-02-21T03:55:13.916Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/2b/98bfe67a73b15964513b471ce10b610ab0df28825900e0e7517b2bf23952/types_protobuf-5.28.0.20240924-py3-none-any.whl", hash = "sha256:5cecf612ccdefb7dc95f7a51fb502902f20fc2e6681cd500184aaa1b3931d6a7", size = 68761, upload-time = "2024-09-24T02:43:18.005Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e8/1fd38926f9cf031188fbc5a96694203ea6f24b0e34bd64a225ec6f6291ba/types_protobuf-6.32.1.20260221-py3-none-any.whl", hash = "sha256:da7cdd947975964a93c30bfbcc2c6841ee646b318d3816b033adc2c4eb6448e4", size = 77956, upload-time = "2026-02-21T03:55:12.894Z" }, ] [[package]] name = "typing-extensions" -version = "4.12.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321, upload-time = "2024-06-07T18:52:15.995Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438, upload-time = "2024-06-07T18:52:13.582Z" }, -] - -[[package]] -name = "urllib3" -version = "2.2.3" +version = "4.15.0" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.9'", -] -sdist = { url = "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", size = 300677, upload-time = "2024-09-12T10:52:18.401Z" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", size = 126338, upload-time = "2024-09-12T10:52:16.589Z" }, + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] [[package]] name = "urllib3" version = "2.6.3" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.9' and python_full_version < '3.12'", - "python_full_version == '3.12.*'", - "python_full_version >= '3.13'", -] sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } wheels = [ { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, @@ -2444,9 +2544,8 @@ dependencies = [ [package.optional-dependencies] mlmodel = [ - { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "numpy", version = "1.26.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.13'" }, - { name = "numpy", version = "2.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.13'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "packaging" }, ] @@ -2454,69 +2553,62 @@ mlmodel = [ dev = [ { name = "coverage" }, { name = "mypy-protobuf" }, - { name = "myst-nb", version = "0.17.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "myst-nb", version = "1.1.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "myst-nb" }, { name = "nbmake" }, - { name = "numpy", version = "1.24.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "numpy", version = "1.26.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.13'" }, - { name = "numpy", version = "2.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.13'" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.4.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pillow" }, { name = "pyright" }, { name = "pytest" }, { name = "pytest-asyncio" }, { name = "ruff" }, - { name = "sphinx-autoapi", version = "2.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" }, - { name = "sphinx-autoapi", version = "3.3.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" }, + { name = "sphinx-autoapi" }, { name = "sphinx-rtd-theme" }, - { name = "types-pillow" }, ] [package.metadata] requires-dist = [ - { name = "googleapis-common-protos", specifier = ">=1.65.0" }, - { name = "grpclib", specifier = ">=0.4.7" }, + { name = "googleapis-common-protos", specifier = ">=1.73.0" }, + { name = "grpclib", specifier = ">=0.4.9" }, { name = "numpy", marker = "extra == 'mlmodel'" }, { name = "packaging", marker = "extra == 'mlmodel'" }, - { name = "protobuf", specifier = "==5.29.6" }, + { name = "protobuf", specifier = "==6.33.5" }, { name = "pymongo", specifier = ">=4.10.1" }, - { name = "typing-extensions", specifier = ">=4.12.2" }, + { name = "typing-extensions", specifier = ">=4.15.0" }, ] provides-extras = ["mlmodel"] [package.metadata.requires-dev] dev = [ - { name = "coverage", specifier = ">=7.6.1" }, - { name = "mypy-protobuf", specifier = ">=3.6.0" }, - { name = "myst-nb", marker = "python_full_version < '3.9'", specifier = "<1.0.0" }, - { name = "myst-nb", marker = "python_full_version >= '3.9'", specifier = ">=1.0.0" }, - { name = "nbmake", specifier = ">=1.5.4" }, - { name = "numpy", marker = "python_full_version < '3.9'", specifier = "<1.25.0" }, - { name = "numpy", marker = "python_full_version >= '3.9'", specifier = ">=1.26.2" }, - { name = "pillow", specifier = ">=10.4.0" }, - { name = "pyright", specifier = ">=1.1.382.post1" }, - { name = "pytest", specifier = ">=8.3.3" }, - { name = "pytest-asyncio", specifier = ">=0.24.0" }, - { name = "ruff", specifier = ">=0.6.8" }, - { name = "sphinx-autoapi", marker = "python_full_version < '3.9'", specifier = "<3.0.0" }, - { name = "sphinx-autoapi", marker = "python_full_version >= '3.9'", specifier = ">=3.0.0" }, - { name = "sphinx-rtd-theme", specifier = ">=2.0.0" }, - { name = "types-pillow", specifier = ">=10.2.0.20240822" }, + { name = "coverage", specifier = ">=7.13.4" }, + { name = "mypy-protobuf", specifier = ">=5.0.0" }, + { name = "myst-nb", specifier = ">=1.4.0" }, + { name = "nbmake", specifier = ">=1.5.5" }, + { name = "numpy", marker = "python_full_version < '3.11'", specifier = "<2.3.0" }, + { name = "numpy", marker = "python_full_version >= '3.11'", specifier = ">=1.3.0" }, + { name = "pillow", specifier = ">=12.1.1" }, + { name = "pyright", specifier = ">=1.1.401" }, + { name = "pytest", specifier = ">=9.0.2" }, + { name = "pytest-asyncio", specifier = ">=1.3.0" }, + { name = "ruff", specifier = ">=0.15.5" }, + { name = "sphinx-autoapi", specifier = ">=3.7.0" }, + { name = "sphinx-rtd-theme", specifier = ">=3.1.0" }, ] [[package]] name = "wcwidth" -version = "0.2.13" +version = "0.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301, upload-time = "2024-01-06T02:10:57.829Z" } +sdist = { url = "https://files.pythonhosted.org/packages/35/a2/8e3becb46433538a38726c948d3399905a4c7cabd0df578ede5dc51f0ec2/wcwidth-0.6.0.tar.gz", hash = "sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159", size = 159684, upload-time = "2026-02-06T19:19:40.919Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166, upload-time = "2024-01-06T02:10:55.763Z" }, + { url = "https://files.pythonhosted.org/packages/68/5a/199c59e0a824a3db2b89c5d2dade7ab5f9624dbf6448dc291b46d5ec94d3/wcwidth-0.6.0-py3-none-any.whl", hash = "sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad", size = 94189, upload-time = "2026-02-06T19:19:39.646Z" }, ] [[package]] name = "zipp" -version = "3.20.2" +version = "3.23.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/54/bf/5c0000c44ebc80123ecbdddba1f5dcd94a5ada602a9c225d84b5aaa55e86/zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29", size = 24199, upload-time = "2024-09-13T13:44:16.101Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/8b/5ba542fa83c90e09eac972fc9baca7a88e7e7ca4b221a89251954019308b/zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350", size = 9200, upload-time = "2024-09-13T13:44:14.38Z" }, + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, ]